Поделиться через


Создание и присоединение параллельных ветвей с действиями рабочего процесса в Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

По умолчанию действия в рабочем процессе приложения логики выполняются последовательно. Чтобы упорядочить действия в отдельные ветви и запустить эти ветви одновременно, можно создать параллельные ветви, а затем присоединиться к этим ветвям позже в рабочем процессе.

В этом руководстве показано, как создать параллельные ветви в рабочем процессе и повторно присоединиться к этим ветвям, как показано на этой высокоуровневой схеме:

Снимок экрана: высокоуровневая концептуальная схема с параллельными ветвями, которые позже присоединяются к рабочему процессу.

Совет

Если триггер рабочего процесса получает массив, и вы хотите запустить экземпляр рабочего процесса для каждого элемента в массиве, а не создавать параллельные ветви, вместо этого можно расстроить этот массив с помощью свойства триггера SplitOn.

Необходимые компоненты

Рекомендации по работе с параллельными ветвями

  • Параллельная ветвь выполняется только в том случае, если значение свойства runAfter соответствует завершенным состоянием родительского действия. Например, обе ветви, начиная с branchAction1 и branchAction2, выполняются только после завершения parentAction с состоянием Succeeded.

  • Рабочий процесс ожидает завершения всех параллельных ветвей на одном уровне перед выполнением действия, присоединенного к этим ветвям.

Добавление действия параллельной ветви

  1. В портал Azure откройте приложение логики "Стандартный" и рабочий процесс в конструкторе.

  2. Между действиями, в которых требуется добавить параллельную ветвь, переместите указатель на стрелку подключения.

  3. Выберите знак плюса (+), который появится, и нажмите кнопку "Добавить параллельную ветвь".

    Снимок экрана: стандартный рабочий процесс с выбранным знаком плюса и выбранным параметром

  4. Теперь добавьте действие, которое необходимо выполнить в параллельной ветви. В области действий и поле поиска найдите и выберите нужное действие.

    Снимок экрана: стандартный рабочий процесс с полем поиска с именем

    Выбранное действие теперь отображается в параллельной ветви, например:

    Снимок экрана: стандартный рабочий процесс, параллельная ветвь и ранее выбранное действие.

  5. Чтобы добавить другое действие в параллельную ветвь, в действии, в котором нужно добавить новое действие, выберите знак плюса (+) и нажмите кнопку "Добавить действие".

    Снимок экрана: стандартный рабочий процесс и добавление другого действия в ту же параллельную ветвь.

  6. В поле "Выбор операции" найдите и выберите нужное действие.

    Теперь выбранное действие отображается в текущей ветви, как показано ниже:

    Снимок экрана: стандартный рабочий процесс с добавленным последовательным действием.

Для выполнения обратного слияния ветвей соедините параллельные ветви.

Определение параллельной ветви (JSON)

Если вы работаете в представлении кода, можно определить параллельную структуру в определении JSON рабочего процесса приложения логики, например:

{
  "triggers": {
    "myTrigger": {}
  },
  "actions": {
    "parentAction": {
      "type": "<action-type>",
      "inputs": {},
      "runAfter": {}
    },
    "branchAction1": {
      "type": "<action-type>",
      "inputs": {},
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    },
    "branchAction2": {
      "type": "<action-type>",
      "inputs": {},
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    }
  },
  "outputs": {}
}

Соединение параллельных ветвей

Чтобы объединить параллельные ветви вместе во всех ветвях, просто добавьте другое действие. Это действие выполняется только после завершения выполнения всех предыдущих параллельных ветвей.

  1. В портал Azure откройте приложение логики уровня "Стандартный" и рабочий процесс с параллельными ветвями, которые необходимо присоединить к конструктору.

  2. В любой из параллельных ветвей, которые вы хотите присоединить, выберите знак плюса (+), а затем нажмите кнопку "Добавить действие".

    Снимок экрана: стандартный рабочий процесс с выбранным знаком плюса.

  3. В области действий и поле поиска найдите и выберите действие, которое вы хотите использовать для присоединения к ветвям.

    Снимок экрана: стандартный рабочий процесс, поле поиска с именем

  4. В конструкторе выберите ранее добавленное действие. После открытия области сведений о действии выберите "Параметры".

  5. На панели "Параметры" в разделе "Запуск после" откройте список "Выбор действий" и выберите последнее действие в каждой ветви, которая должна завершиться до запуска действия соединения.

    Вы фактически указываете, что действие соединения выполняется только после завершения выполнения всех выбранных действий.

    Снимок экрана: стандартный рабочий процесс, действие, присоединенное к предыдущим параллельным ветвям, и выбранные действия для первого завершения выполнения.

    После завершения выбранное действие теперь отображается в параллельных ветвях, которые вы хотите присоединить, например:

    Снимок экрана: стандартный рабочий процесс с действием, которое присоединяет предыдущие параллельные ветви.

Определение соединения (JSON)

Если вы работаете в представлении кода, можно определить действие соединения в определении JSON рабочего процесса приложения логики, например:

{
  "triggers": {
    "myTrigger": { }
  },
  "actions": {
    "parentAction": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {}
    },
    "branchAction1": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    },
    "branchAction2": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {
        "parentAction": [
          "Succeeded"
        ]
      }
    },
    "joinAction": {
      "type": "<action-type>",
      "inputs": { },
      "runAfter": {
        "branchAction1": [
          "Succeeded"
        ],
        "branchAction2": [
          "Succeeded"
        ]
      }
    }
  },
  "outputs": {}
}

Следующие шаги