Programación y ejecución de flujos de trabajo periódicos con el desencadenador de periodicidad de Azure Logic Apps

Para iniciar y ejecutar el flujo de trabajo conforme a una programación, puede usar el desencadenador de periodicidad genérico como primer paso. Puede establecer una fecha, hora y zona horaria para iniciar el flujo de trabajo y una periodicidad para la repetición de ese flujo de trabajo. La siguiente lista muestra algunos patrones compatibles con este desencadenador junto con periodicidades más avanzadas y programaciones complejas:

  • Ejecutar en una fecha y hora específicas, y después repetir cada n segundos, minutos, horas, días, semanas o meses.

  • Ejecutar inmediatamente y repetir cada n segundos, minutos, horas, días, semanas o meses.

  • Ejecutar de inmediato y repetir cada día a una o varias horas concretas, como 8:00 y 17:00.

  • Ejecutar de inmediato y repetir cada semana en días concretos, como el sábado y el domingo.

  • Ejecutar de inmediato y repetir cada semana en días y a horas concretos, como de lunes a viernes a las 8:00 y a las 17:00.

Nota:

Para iniciar y ejecutar el flujo de trabajo solo una vez en el futuro, use la plantilla de flujo de trabajo con el nombre Scheduler: Run Once Jobs. Esta plantilla usa el desencadenador de solicitud y la acción HTTP en lugar del desencadenador de periodicidad, que no admite este patrón de periodicidad. Para más información, vea Ejecución de solo una vez.

El desencadenador de periodicidad no está asociado a ningún servicio específico, por lo que se puede usar prácticamente con cualquier flujo de trabajo, como flujos de trabajo de aplicación lógica de consumo y flujos de trabajo con estado de aplicación lógica estándar. Este desencadenador no está disponible actualmente para flujos de trabajo sin estado de aplicación lógica estándar.

El desencadenador de periodicidad forma parte del conector de programación integrado y se ejecuta de forma nativa en el runtime de Azure Logic Apps. Para obtener más información sobre los desencadenadores y las acciones de programación integrados, consulte Programar y ejecutar tareas y flujos de trabajo automatizados y periódicos con Azure Logic Apps.

Requisitos previos

Adición del desencadenador Periodicidad

  1. En Azure Portal, cree una aplicación lógica en blanco y un flujo de trabajo.

    Nota:

    Si ha creado un flujo de trabajo de aplicación lógica estándar, asegúrese de crear un flujo de trabajo con estado. El desencadenador de periodicidad no está disponible actualmente para flujos de trabajo sin estado.

  2. En el diseñador, siga los pasos correspondientes, en función de si el flujo de trabajo de aplicación lógica es de consumo o estándar.

    Consumo

    1. En el diseñador, en el cuadro de búsqueda, seleccione Integrado.

    2. En el cuadro de búsqueda, escriba periodicidad.

    3. En la lista de desencadenadores seleccione el desencadenador con el nombre Periodicidad.

      Screenshot for Consumption logic app workflow designer with

    Estándar

    1. En el diseñador seleccione Elegir operación.

    2. En el panel Agregar un desencadenador, en el cuadro de búsqueda, seleccione Integrado.

    3. En el cuadro de búsqueda, escriba periodicidad.

    4. En la lista de desencadenadores seleccione el desencadenador con el nombre Periodicidad.

      Screenshot for Standard logic app workflow designer with

  3. Defina el intervalo y la frecuencia de periodicidad. En este ejemplo, establezca estas propiedades para ejecutar el flujo de trabajo todas las semanas, por ejemplo:

    Consumo

    Screenshot for Consumption workflow designer with

    Estándar

    Screenshot for Standard workflow designer with

    Propiedad Nombre JSON Obligatorio Tipo Descripción
    Intervalo interval Entero Entero positivo que describe la frecuencia con la que se ejecuta el flujo de trabajo. Estos son los intervalos mínimo y máximo:

    - Mes: 1-16 meses
    - Semana: 1-71 semanas
    - Día: 1-500 días
    - Hora: 1-12 000 horas
    - Minuto: 1-72 000 minutos
    - Segundo: 1-9 999 999 segundos

    Por ejemplo, si el intervalo es 6 y la frecuencia es "month", la periodicidad es cada 6 meses.
    Frecuencia frequency String Unidad de tiempo que se usa para la periodicidad: Segundo, Minuto, Hora, Día, Semana o Mes

    Importante

    Si usa la frecuencia Día, Semana o Mes y especifica una fecha y hora futuras, asegúrese de configurar la periodicidad de antemano. De lo contrario, el flujo de trabajo podría omitir la primera periodicidad.

    • Día: Configure la periodicidad diaria con al menos 24 horas de antelación.

    • Semana: Configure la periodicidad semanal con al menos 7 días de antelación.

    • Mes: configure la periodicidad mensual con al menos un mes de antelación.

    Si una periodicidad no especifica una fecha y hora de inicio específicas, la primera periodicidad se ejecuta inmediatamente al guardar o implementar la aplicación lógica, independientemente de la configuración de periodicidad del desencadenador. Para evitar este comportamiento, proporcione una fecha y hora de inicio para cuando quiera que se ejecute la primera periodicidad.

    Si una periodicidad no especifica ninguna otra opción de programación avanzada, como horas específicas para ejecutar futuras repeticiones, esas repeticiones se basan en la hora de la última ejecución. Como resultado, las horas de inicio de estas periodicidades pueden cambiar debido a factores como la latencia durante las llamadas de almacenamiento. Para asegurarse de que la aplicación lógica no pierda una repetición, especialmente si la frecuencia se especifica en días o unidades superiores, pruebe las siguientes opciones:

    • Proporcione una fecha y hora de inicio para la periodicidad y las horas específicas para ejecutar las repeticiones posteriores. Puede usar las propiedades A estas horas y En estos minutos, que solo están disponibles en las frecuencias Día y Semana.

    • En los flujos de trabajo de aplicación lógica de consumo, use el desencadenador de ventana deslizante en lugar del desencadenador de periodicidad.

  4. Para definir opciones de programación avanzadas, abra la lista Agregar nuevo parámetro. Las opciones que seleccione aparecerán en el desencadenador después de la selección.

    Consumo

    Screenshot for Consumption workflow designer and

    Estándar

    Screenshot for Standard workflow designer and

    Propiedad Nombre JSON Obligatorio Tipo Descripción
    Zona horaria timeZone No String Solo se aplica cuando se especifica una hora de inicio porque este desencadenador no acepta diferencia horaria con UTC. Seleccione la zona horaria que desea aplicar.
    Hora de inicio startTime No String Proporciona una fecha y hora de inicio, que tiene un máximo de 49 años en el futuro y debe seguir la especificación de fecha y hora ISO 8601 en formato de fecha y hora UTC, pero sin una diferencia horaria con UTC:

    AAAA-MM-DDThh:mm:ss si selecciona una zona horaria

    O bien

    AAAA-MM-DDThh:mm:ssZ si no selecciona una zona horaria

    Por ejemplo, si desea la fecha del 18 de septiembre de 2020 a las 14:00, especifique entonces "2020-09-18T14:00:00" y especifique una zona horaria como "Hora estándar del Pacífico". O bien, especifique "2020-09-18T14:00:00Z" sin una zona horaria.

    Importante: Si no se selecciona una zona horaria, debe agregar la letra "Z" al final sin espacios. Esta "Z" se refiere al equivalente de hora náutica. Si selecciona un valor de zona horaria, no es necesario agregar una "Z" al final del valor de Hora de inicio. Si lo hace, Logic Apps omite el valor de zona horaria porque "Z" implica un formato de hora UTC.

    Para las programaciones simples, la hora de inicio es la primera aparición, mientras que para programaciones complejas, el desencadenador no se activa antes de la hora de inicio. ¿De qué formas puedo usar la fecha y hora de inicio?
    En estos días weekDays No Cadena o matriz de cadenas Si selecciona "Semana", puede seleccionar uno o más días que desee ejecutar el flujo de trabajo: Lunes, Martes, Miércoles, Jueves, Viernes, Sábado y Domingo
    A estas horas hours No Entero o matriz de enteros Si selecciona "Day" o "Week", puede especificar uno o varios enteros de 0 a 23 como las horas del día en las que desea ejecutar el flujo de trabajo.

    Por ejemplo, si especifica "10", "12" y "14", obtendrá las 10:00, las 12:00 y las 14:00 para las horas del día, pero los minutos del día se calcularán en función del momento en el que se inicie la periodicidad. Para establecer minutos específicos del día (por ejemplo, las 10:00, las 12:00 y las 14:00), especifique esos valores mediante la propiedad denominada En estos minutos.
    En estos minutos minutes No Entero o matriz de enteros Si selecciona "Day" o "Week", puede seleccionar uno o varios enteros de 0 a 59 como los minutos de la hora en los que desea ejecutar el flujo de trabajo.

    Por ejemplo, puede especificar "30" como la marca de minuto y, utilizando el ejemplo anterior para las horas del día, obtendrá 10:30 a. m., 12:30 p. m. y las 2:30 p. m.

    Nota: A veces, la marca de tiempo de la ejecución desencadenada puede variar hasta 1 minuto con respecto a la hora programada. Si tiene que pasar la marca de tiempo exactamente como está programada a las acciones posteriores, puede usar expresiones de plantilla para cambiar la marca de tiempo en consecuencia. Para obtener más información, vea Funciones de fecha y hora para expresiones.

    Por ejemplo, supongamos que hoy es viernes, 4 de septiembre de 2020. El siguiente desencadenador de periodicidad no se inicia antes de la fecha y hora de inicio especificadas, que es el viernes, 18 de septiembre de 2020, a las 8:00, hora del Pacífico. Sin embargo, la programación de periodicidad está establecida para las 10:30 a. m., las 12:30 p. m. y las 2:30 p. m., solo los lunes. La primera vez que el desencadenador se inicia y crea una instancia de flujo de trabajo es el lunes a las 10:30. Para más información sobre cómo funcionan las horas de inicio, vea estos ejemplos de hora de inicio.

    Las futuras ejecuciones se realizan a las 12:30 p. m. y a las 2:30 p. m. ese mismo día. Cada periodicidad crea su propia instancia de flujo de trabajo. Después de eso, toda la programación se repite el próximo lunes. ¿Qué otros ejemplos se hay?

    Nota

    El desencadenador muestra una vista previa de la periodicidad especificada solo si selecciona la frecuencia "Day" o "Week".

    Consumo

    Screenshot showing Consumption workflow and

    Estándar

    Screenshot showing Standard workflow and

  5. Ahora siga compilando el flujo de trabajo con otras acciones. Para ver más acciones que se puedan agregar, consulte Conectores para Azure Logic Apps.

Definición de flujo de trabajo: periodicidad

Puede ver cómo aparece la definición del desencadenador de periodicidad con las opciones elegidas si revisa la definición JSON subyacente del flujo de trabajo en las aplicaciones lógicas de consumo y las aplicaciones lógicas estándar (solo con estado).

En función de si la aplicación lógica es de consumo o estándar, elija una de las siguientes opciones:

  • Consumo: en la barra de herramientas del diseñador, seleccione vista Código. Para volver al diseñador, en la barra de herramientas del editor de la vista de código, seleccione Diseñador.

  • Estándar: en el menú del flujo de trabajo, seleccione vista Código. Para volver al diseñador, en el menú del flujo de trabajo, seleccione Diseñador.

En el ejemplo siguiente se muestra cómo puede aparecer una definición de desencadenador de periodicidad en la definición JSON subyacente del flujo de trabajo:

"triggers": {
   "Recurrence": {
      "type": "Recurrence",
      "recurrence": {
         "frequency": "Week",
         "interval": 1,
         "schedule": {
            "hours": [
               10,
               12,
               14
            ],
            "minutes": [
               30
            ],
            "weekDays": [
               "Monday"
            ]
         },
         "startTime": "2020-09-07T14:00:00Z",
         "timeZone": "Pacific Standard Time"
      }
   }
}

En el ejemplo siguiente se muestra cómo actualizar la definición del desencadenador para que el desencadenador se ejecute solo una vez el último día de cada mes:

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

Desencadenamiento de desplazamientos y desfases en la periodicidad (horario de verano)

Al programar trabajos, Azure Logic Apps pone en cola el mensaje que será procesado y especifica cuándo estará disponible. Esto se determina en función de la hora UTC de la ejecución del último trabajo y la hora UTC programada para la ejecución del siguiente. Si especifica una hora de inicio con una periodicidad personalizada, asegúrese de seleccionar la zona horaria correspondiente para que el flujo de trabajo de la aplicación lógica se ejecute a la hora especificada. De este modo, la hora UTC de la aplicación lógica también se cambia para contrarrestar el cambio horario estacional. Los desencadenadores periódicos respetarán la programación que establezca. Esto incluye cualquier zona horaria que especifique.

Tenga en cuenta que, si no selecciona una zona horaria, los eventos de horario de verano (DST) podrían alterar la hora a la que se ejecutan los desencadenadores. Es decir, la hora de inicio se retrasará una hora cuando se use el horario de verano y se adelantará una hora cuando este deje de usarse. Sin embargo, algunas ventanas de tiempo pueden causar problemas cuando se cambia la hora. Para obtener más información y ejemplos, consulte Periodicidad de horario de verano y hora estándar.

Pasos siguientes