Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Crea y usa un subflujo de trabajo

Puedes usar subflujos de trabajo para definir una lógica o un conjunto de pasos que deseas llamar varias veces, lo que simplifica la definición del flujo de trabajo. Los subflujos de trabajo son similares a una función o rutina en un lenguaje de programación. Pueden aceptar parámetros y mostrar valores, lo que te permite crear flujos de trabajo más complejos con una mayor variedad de aplicaciones.

En esta página, se describe la definición de un subflujo de trabajo y la llamada desde un flujo de trabajo. Para obtener información sobre las tareas básicas de flujo de trabajo, consulta Crea y actualiza un flujo de trabajo existente y Cómo ejecutar un flujo de trabajo.

Crea un flujo de trabajo que use un subflujo de trabajo

Para crear un subflujo de trabajo:

  1. Agrega un bloque main a la parte superior de la definición del flujo de trabajo:

    main:
       steps:
           - step_name:
               ...
           ...
    

    Si un flujo de trabajo tiene un subflujo de trabajo, el flujo de trabajo principal debe colocarse en un bloque main.

  2. Define el subflujo de trabajo debajo de los pasos principales del flujo de trabajo:

    main:
       steps:
           - step_name:
               ...
           ...
    [SUBWORKFLOW_NAME]:
        params: [PARAMETER_1[: DEFAULT_VALUE1], PARAMETER_2[: DEFAULT_VALUE2]...]
        steps:
            - step_name:
            ...
    

    Reemplaza lo siguiente:

    • SUBWORKFLOW_NAME: Obligatorio. Nombre del subflujo de trabajo.
    • PARAMETER_1, PARAMETER_2: Opcional. Parámetros que usa el subflujo de trabajo.
    • DEFAULT_VALUE1, DEFAULT_VALUE2: Opcional. Valores predeterminados para los parámetros respectivos.

    Si no necesitas pasar parámetros al subflujo de trabajo, borra el bloque params.

  3. Dentro del subflujo de trabajo, define los pasos como lo harías en el flujo de trabajo principal.

  4. Para llamar al subflujo de trabajo principal, agrega una sección call dentro de un paso en el flujo de trabajo principal y, de manera opcional, proporciona argumentos para pasar al subflujo de trabajo:

    main:
       - [STEP_NAME]:
           call: [SUBWORKFLOW_NAME]
           [args:
               ARG_1: VALUE
               ARG_2: VALUE
               ...]
           [result: OUTPUT_VARIABLE]
    [SUBWORKFLOW_NAME]:
        params: [PARAMETER_1,PARAMETER_2...]
        steps:
            - step_1:
            ...
    

    Reemplaza lo siguiente:

    • SUBWORKFLOW_NAME: Obligatorio. Nombre del subflujo de trabajo.
    • ARG_1, ARG_2: Opcional. Los argumentos que se pasan al subflujo de trabajo, si el subflujo de trabajo acepta parámetros.
    • VALUE: Opcional Los valores en los que se establecen los argumentos.
    • OUTPUT_VARIABLE: Opcional La variable en la que el flujo de trabajo almacena los datos que muestra el subflujo de trabajo, si el subflujo de trabajo muestra algún resultado.

Ejemplo

En este ejemplo, se muestra cómo definir un subflujo de trabajo llamado name_message y llamarlo desde el flujo de trabajo principal:

main:
    steps:
        - call_subworkflow:
            call: name_message
            args:
                first_name: "Sherlock"
                last_name: "Holmes"
            result: output
        - call_subworkflow2:
            call: name_message
            args:
                first_name: "Ada"
                last_name: "Lovelace"
            result: output2
        - return_message:
            return: ${output + output2}

name_message:
    params: [first_name, last_name, country: "England"]
    steps:
        - prepareMessage:
            return: ${"Hello " + first_name + " " + last_name + " from " + country + "."}

Esta definición de flujo de trabajo hace lo siguiente:

  • El flujo de trabajo principal llama dos veces el subflujo de name_message, desde los pasos call_subworkflow y call_subworkflow2.
  • Los dos pasos proporcionan diferentes entradas para los argumentos first_name y last_name, que luego se pasan al subflujo de trabajo.
  • El subflujo de trabajo name_message toma los argumentos que se le pasaron y construye un mensaje simple, lo que proporciona el valor predeterminado de England para la variable country.
  • El subflujo de trabajo muestra el mensaje que construye al flujo de trabajo principal.
  • En los pasos del flujo de trabajo principal, los resultados se almacenan como output y output2, de forma respectiva.
  • El flujo de trabajo principal combina output y output2 en un solo mensaje y muestra el resultado: Hello Sherlock Holmes from England. Hello Ada Lovelace from England.

¿Qué sigue?