Compartir vía


Crear o combinar ramas paralelas con las acciones de los flujos de trabajo en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

De forma predeterminada, las acciones en flujos de trabajo de aplicaciones lógicas se ejecutan simultáneamente. Para organizar las acciones en ramas separadas y ejecutar esas ramas al mismo tiempo, puede crear ramas paralelas, y después unir esas ramas más adelante en su flujo de trabajo.

En esta guía se muestra cómo crear ramas paralelas en un flujo de trabajo y volver a unir esas ramas, como se muestra en este diagrama de alto nivel:

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

Sugerencia

Si su desencadenador de flujo de trabajo recibe una matriz, y quiere ejecutar una instancia de flujo de trabajo para cada elemento de la matriz, en lugar de crear ramas paralelas, puede descomponer esa matriz en su lugar usando la propiedad de desencadenador SplitOn.

Requisitos previos

  • Suscripción a Azure. Si aún no tiene una, regístrese para obtener una cuenta de Azure gratuita.

  • Flujo de trabajo de aplicación lógica que comienza con un desencadenador y las acciones que desee. Asegúrese de que el flujo de trabajo incluye las acciones entre las que desea agregar una rama paralela.

Consideraciones para trabajar con ramas paralelas

  • Una rama paralela se ejecuta solo cuando el valor de su propiedad runAfter coincide con el estado de finalización de la acción principal. Por ejemplo, las dos ramas que comienzan con branchAction1 y branchAction2 se ejecutan solo cuando parentAction finaliza con el estado de Succeeded.

  • Su flujo de trabajo espera a que finalicen todas las ramas paralelas del mismo nivel antes de ejecutar la acción que une estas ramas.

Agregar una acción de rama paralela

  1. En Azure Portal, abra su aplicación lógica estándar y el flujo de trabajo en el diseñador.

  2. Entre las acciones en las que desea agregar una rama paralela, mueva el puntero sobre la flecha de conexión.

  3. Seleccione el signo más (+) que aparece y después seleccione Agregar una rama paralela.

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

  4. Ahora, agregue la acción que desea ejecutar en la rama paralela. En el panel Agregar una acción y en el cuadro de búsqueda, busque y seleccione la acción que desee.

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

    La acción seleccionada ahora aparece en la rama paralela, por ejemplo:

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

  5. Para agregar otra acción a la rama paralela, debajo de la acción en la que desea agregar una nueva acción, seleccione el signo más (+), y después seleccione Añadir una acción.

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

  6. En el cuadro de búsqueda Elegir una operación, busque y seleccione la acción que desee.

    La acción seleccionada ahora aparece en la rama actual, por ejemplo:

    Screenshot shows Standard workflow with added sequential action.

Para volver a combinar ramas una las ramas paralelas.

Definición de la rama paralela (JSON)

Si está trabajando en la vista de código, puede definir en su lugar la estructura paralela en la definición JSON del flujo de trabajo de su aplicación lógica, por ejemplo:

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

Unión de ramas paralelas

Para combinar ramas paralelas, en todas las ramas, basta con agregar otra acción. Esta acción solo se ejecuta después de que todas las ramas paralelas anteriores terminen de ejecutarse.

  1. En Azure Portal, abra su aplicación lógica Estándar y el flujo de trabajo con las ramas paralelas que quiera combinar en el diseñador.

  2. Bajo cualquiera de las ramas paralelas que quiera agregar, seleccione el signo más (+), y después seleccione Añadir una acción.

    Screenshot shows Standard workflow with selected plus sign.

  3. En el panel Añadir una acción y en el cuadro de búsqueda, busque y seleccione la acción que quiera usar para combinar las ramas.

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

  4. En el diseñador, seleccione la acción agregada anteriormente. Una vez que se abra el panel de información de la acción, seleccione Configuración.

  5. En el panel Configuración, en Ejecutar después de, abra la lista Seleccionar acciones y seleccione la última acción de cada rama que debe finalizar antes de que se ejecute la acción de combinar.

    Está especificando eficazmente que la acción de combinación solo se ejecuta después de que todas las acciones seleccionadas terminen de ejecutarse.

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

    Cuando termine, la acción seleccionada aparece ahora en las ramas paralelas que desea combinar, por ejemplo:

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

Definición de la unión (JSON)

Si está trabajando en la vista de código, puede definir en su lugar la acción de combinar en la definición JSON del flujo de trabajo de su aplicación lógica, por ejemplo:

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

Pasos siguientes