Criar ou unir ramificações paralelas com ações de fluxo de trabalho nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Por padrão, suas ações no fluxo de trabalho de um aplicativo lógico são executadas sequencialmente. Para organizar ações em ramificações separadas e executar essas ramificações simultaneamente, você pode criar ramificações paralelas e, em seguida, unir essas ramificações posteriormente no seu fluxo de trabalho.

Este guia mostra como criar ramificações paralelas em um fluxo de trabalho e reunir essas ramificações, conforme mostrado neste diagrama de alto nível:

Screenshot shows high-level conceptual diagram with parallel branches that later join in workflow.

Dica

Se o gatilho do seu fluxo de trabalho receber uma matriz e você quiser executar uma instância de fluxo de trabalho para cada item na matriz, em vez de criar ramificações paralelas, poderá retirar de lote essa matriz usando a propriedade de gatilho SplitOn.

Pré-requisitos

  • Uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure.

  • Um fluxo de trabalho de aplicativo lógico que começa com um gatilho e as ações desejadas. Verifique se seu fluxo de trabalho inclui as ações no local em que você deseja adicionar uma ramificação paralela.

Considerações para trabalhar com ramificações paralelas

  • Uma ramificação paralela é executada somente quando o valor da propriedade runAfter corresponde ao status concluído da ação pai. Por exemplo, as ramificações que começam com branchAction1 e branchAction2 são executadas somente quando parentAction é concluída com status Bem-sucedido.

  • O fluxo de trabalho aguarda a conclusão de todas as ramificações paralelas no mesmo nível antes de executar a ação que une essas ramificações.

Adicionar uma ação de ramificação paralela

  1. No portal do Azure, abra o fluxo de trabalho e o aplicativo lógico Standard no designer.

  2. Entre as ações nas quais você deseja adicionar uma ramificação paralela, mova o ponteiro sobre a seta de conexão.

  3. Selecione o sinal de adição (+) que aparece e então selecione Adicionar uma ramificação paralela.

    Screenshot shows Standard workflow with selected plus sign and selected option, Add a parallel branch.

  4. Agora, adicione a ação que você deseja executar na ramificação paralela. No painel e caixa de pesquisa Adicionar uma ação, localize e selecione a ação desejada.

    Screenshot shows Standard workflow with search box named Choose an operation.

    Sua ação selecionada agora aparece na ramificação paralela, por exemplo:

    Screenshot shows Standard workflow, parallel branch, and previously selected action.

  5. Para adicionar outra ação para a ramificação paralela, na ação em que você deseja adicionar a nova ação, selecione o sinal de adição (+) e selecione Adicionar uma ação.

    Screenshot shows Standard workflow and how to add another action to the same parallel branch.

  6. Na caixa de pesquisa Escolher uma operação, localize e selecione a ação desejada.

    A ação selecionada agora aparece dentro da ramificação atual, por exemplo:

    Screenshot shows Standard workflow with added sequential action.

Para mesclar de volta os branches, una seus branches paralelos.

Definição de branch paralelo (JSON)

Se você estiver trabalhando na exibição de código, você pode definir uma estrutura paralela na definição JSON do fluxo de trabalho do aplicativo lógico, por exemplo:

{
  "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": {}
}

Unir branches paralelos

Para mesclar as ramificações paralelas, abaixo de todas as ramificações, adicione outra ação. Esta ação é executada somente depois que todos as ramificações paralelas anteriores terminarem de ser executadas.

  1. No portal do Azure, abra o aplicativo lógico Standard e o fluxo de trabalho com as ramificações paralelas que você deseja unir no designer.

  2. Em qualquer uma das ramificações paralelas que você deseja unir, selecione o sinal de adição (+) e, em seguida, selecione Adicionar uma ação.

    Screenshot shows Standard workflow with selected plus sign.

  3. No painel e caixa de pesquisa Adicionar uma ação, localize e selecione a ação a ser usada para unir as ramificações.

    Screenshot shows Standard workflow, search box named Choose an operation, and available actions for joining parallel branches.

  4. No designer, selecione a ação adicionada anteriormente. Quando o painel de informações da ação abrir, selecione Configurações.

  5. No painel Configurações, em Executar após, abra a lista Selecionar Ações e selecione a última ação em cada ramificação que deve ser concluída antes da execução da ação de união.

    Você está especificando efetivamente que a ação de união é executada somente depois que todas as ações selecionadas terminarem de ser executadas.

    Screenshot shows Standard workflow, the action that joins preceding parallel branches, and selected actions to first finish running.

    Quando você terminar, a ação selecionada agora será exibida nas ramificações paralelas que você deseja unir, por exemplo:

    Screenshot shows Standard workflow with the action that joins the preceding parallel branches.

Definição de união (JSON)

Se você estiver trabalhando na exibição de código, será possível definir uma ação de união na definição JSON do fluxo de trabalho do aplicativo lógico, por exemplo:

{
  "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": {}
}

Próximas etapas