Tutorial: Creación de flujos de trabajo de automatización periódicos basados en programación con Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo)

En este tutorial se muestra cómo crear una aplicación lógica que automatiza un flujo de trabajo que se ejecuta según una programación periódica. En concreto, esta aplicación lógica de ejemplo comprueba el tiempo de desplazamiento, incluido el tráfico, entre dos lugares y se ejecuta cada día por la mañana. Si el tiempo supera un límite específico, la aplicación lógica envía un correo electrónico con el tiempo de desplazamiento y el tiempo adicional necesario para llegar al destino. El flujo de trabajo incluye varios pasos, que se inician con un desencadenador basado en una programación seguido de una acción de Mapas de Bing, una acción de operaciones de datos, una acción de flujo de control y una acción de notificación por correo electrónico.

En este tutorial, aprenderá a:

  • Crear una aplicación lógica en blanco.
  • Agregar un desencadenador de periodicidad que especifique la programación de la aplicación lógica.
  • Agregar una acción de Bing Maps que obtenga el tiempo de desplazamiento para una ruta.
  • Agregar una acción que cree una variable, convierta el tiempo de desplazamiento de segundos a minutos y guarde ese resultado en la variable.
  • Agregar una condición que compara el tiempo de desplazamiento con un límite especificado.
  • Agregar una acción que envíe un correo electrónico si el tiempo de desplazamiento supera el límite.

Cuando haya terminado, la aplicación lógica se parecerá a este flujo de trabajo, en un alto nivel:

Screenshot that shows the high-level overview for an example logic app workflow.

Requisitos previos

Creación de una aplicación lógica

  1. Inicie sesión en Azure Portal con sus credenciales de su cuenta de Azure. En la página principal de Azure, seleccione Crear un recurso.

  2. En el menú de Azure Marketplace, seleccione Integración>Logic App.

    Screenshot that shows Azure Marketplace menu with

  3. En el panel de Logic App, proporcione la información que se describe aquí sobre la aplicación lógica que desea crear.

    Screenshot that shows the Logic App creation pane and the info to provide for the new logic app.

    Propiedad Valor Descripción
    Suscripción <Azure-subscription-name> El nombre de la suscripción de Azure. En este ejemplo se usa Pay-As-You-Go.
    Grupos de recursos LA-TravelTime-RG El nombre del grupo de recursos de Azure que se utiliza para organizar recursos relacionados. En este ejemplo se crea un nuevo grupo de recursos llamado LA-TravelTime-RG.
    Nombre LA TravelTime El nombre de la aplicación lógica, que solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis ((, )) y puntos (.). En este ejemplo se usa LA-TravelTime.
    Ubicación Oeste de EE. UU. La región en la que desea almacenar la información de la aplicación lógica. En este ejemplo se usa West US.
    Log Analytics Off Mantenga el valor Off para el registro de diagnóstico.
  4. Seleccione Revisar y crear cuando haya terminado. Una vez que Azure valide la información sobre la aplicación lógica, seleccione Crear.

  5. Una vez que Azure implemente la aplicación, seleccione Ir al recurso.

    Azure abre el panel de selección de plantillas de aplicaciones lógicas, que muestra un vídeo de introducción, los desencadenadores usados frecuentemente y los patrones de plantillas de aplicaciones lógicas.

  6. Desplácese hacia abajo más allá del vídeo y de los desencadenadores frecuentes hasta la sección Plantillasy seleccione Aplicación lógica en blanco.

    Screenshot that shows the Logic Apps template selection pane with

A continuación, agregue el desencadenador Periodicidad, que ejecuta el flujo de trabajo en función de una programación especificada. Cada aplicación lógica debe comenzar con un desencadenador, que se activa cuando sucede un evento específico o cuando hay nuevos datos que cumplen una condición determinada. Para más información, consulte Creación de una nueva aplicación lógica.

Adición del desencadenador Periodicidad

  1. En el cuadro de búsqueda del diseñador de Logic Apps, escriba recurrence y seleccione el desencadenador denominado Periodicidad.

    Screenshot that shows the Logic Apps Designer search box that contains the

  2. En la forma Periodicidad, seleccione el botón de puntos suspensivos ( ... ) y luego Cambiar de nombre. Cambie el nombre del desencadenador por esta descripción:Check travel time every weekday morning

    Screenshot that shows the ellipses button selected, the

  3. En el desencadenador, cambie estas propiedades como se muestra a continuación.

    Screenshot that shows the changes to the trigger's interval and frequency.

    Propiedad Obligatorio Value Descripción
    Intervalo 1 Número de intervalos que se espera entre comprobaciones
    Frecuencia Semana Unidad de tiempo que se usa para la periodicidad.
  4. En Intervalo y Frecuencia, abra la lista Agregar nuevo parámetro y seleccione estas propiedades para agregarlas al desencadenador.

    • En estos días
    • A estas horas
    • En estos minutos

    Screenshot that shows the opened

  5. Ahora, establezca los valores de las propiedades adicionales como se muestra y se describe aquí.

    Screenshot that shows the additional properties set to the values as described in the following table.

    Propiedad Valor Descripción
    En estos días Lunes,Martes,Miércoles,Jueves,Viernes Este valor solo está disponible cuando se establece la Frecuencia en Semana.
    A estas horas 7,8,9 Este valor solo está disponible cuando se establece la Frecuencia en Semana o Día. Para esta periodicidad, seleccione las horas del día. En este ejemplo, la ejecución se realiza a las marcas de hora 7, 8 y 9.
    En estos minutos 0,15,30,45 Este valor solo está disponible cuando se establece la Frecuencia en Semana o Día. Para esta periodicidad, seleccione los minutos del día. Este ejemplo se inicia en la marca de hora cero y se ejecuta cada 15 minutos.

    Este desencadenador se activa los días de entre semana cada 15 minutos, a partir de las 7:00 a.m. y hasta las 9:45 p.m. El cuadro Vista previa muestra la programación de periodicidad. Para más información, consulte Programación de tareas y flujos de trabajo y Acciones y desencadenadores de flujos de trabajo.

  6. Para ocultar por ahora los detalles del desencadenador, contraiga la forma haciendo clic dentro de la barra de título de la forma.

    Screenshot that shows the collapsed trigger shape.

  7. Guarde la aplicación lógica. En la barra de herramientas del diseñador, seleccione Save (Guardar).

La aplicación lógica ahora está activa en Azure Portal pero no hace nada, aparte de ejecutar el desencadenador basado en la programación especificada. Por lo tanto, agregue una acción que responda cuando se active el desencadenador.

Obtención del tiempo de desplazamiento para una ruta

Ahora que ya tiene un desencadenador, agregue una acción que obtenga el tiempo de desplazamiento entre dos lugares. Logic Apps proporciona un conector para la API de Mapas de Bing de forma que pueda obtener fácilmente esta información. Antes de iniciar esta tarea, asegúrese de tener una clave de la API de Mapas de Bing tal como se describe en los requisitos previos de este tutorial.

  1. En el diseñador de Logic Apps, seleccione New step (Nuevo paso).

  2. En Choose an operation (Elegir una operación), seleccione Standar (Estándar). En el cuadro de búsqueda, escriba bing maps y seleccione la acción Get Route (Obtener ruta).

    Screenshot that shows the

  3. Si no tiene una conexión de Mapas de Bing, se le solicitará que cree una conexión. Proporcione los detalles de conexión tal y como se describe y, a continuación, seleccione Create (Crear).

    Screenshot that shows the Bing Maps connection box with the specified connection name and Bing Maps API key.

    Propiedad Obligatorio Value Descripción
    Nombre de la conexión BingMapsConnection Proporcione un nombre para la conexión. En este ejemplo se usa BingMapsConnection.
    Clave de API <Bing-Maps-API-key> Escriba la clave de API de Mapas de Bing recibida previamente. Si no tiene una clave de Mapas de Bing, consulte Getting a Bing Maps Key (Obtención de una clave de Mapas de Bing).
  4. Cambie el nombre de la acción por esta descripción: Get route and travel time with traffic.

  5. En la acción, abra la lista Add new parameter (Agregar nuevo parámetro) y seleccione estas propiedades:

    • Optimize (Optimizar)
    • Distance unit (Unidad de distancia)
    • Travel mode (Modo de desplazamiento)

    Screenshot that shows the

  6. Ahora, escriba los valores de las propiedades como se muestra y se describe aquí.

    Screenshot that shows additional property values for the

    Propiedad Obligatorio Value Descripción
    Waypoint 1 (Punto de referencia 1) <ubicación-inicial> Origen de la ruta. En este ejemplo se especifica una dirección inicial de ejemplo.
    Waypoint 2 (Punto de referencia 2) <ubicación-final> Destino de la ruta. En este ejemplo se especifica una dirección de destino de ejemplo.
    Optimize (Optimizar) No timeWithTraffic Parámetro para optimizar la ruta, como distancia, tiempo de desplazamiento con tráfico actual, etc. Seleccione el valor del parámetro, timeWithTraffic.
    Distance unit (Unidad de distancia) No <su preferencia> Unidad de distancia para la ruta. En este ejemplo se utiliza Mile (Milla) como unidad.
    Travel mode (Modo de desplazamiento) No Conducción Modo de desplazamiento para la ruta. Seleccione el modo de conducción.

    Para más información acerca de estos parámetros y valores, consulte Calcular una ruta.

  7. En la barra de herramientas del diseñador, seleccione Save (Guardar).

A continuación, cree una variable para que pueda convertir y almacenar el tiempo de desplazamiento actual en minutos, en lugar de en segundos. De este modo, puede evitar repetir la conversión y utilizar el valor más fácilmente en pasos posteriores.

Creación de una variable para almacenar el tiempo de desplazamiento

Tal vez desee realizar operaciones en los datos del flujo de trabajo y usar los resultados en acciones posteriores. Para guardar estos resultados, de forma que pueda volver a utilizarlos o hacer referencia a ellos fácilmente, puede crear variables para almacenar los resultados después de procesarlos. Solo puede crear variables en el nivel superior de la aplicación lógica.

De forma predeterminada, la acción Get route (Obtener ruta) devuelve el tiempo de desplazamiento actual con el tráfico en segundos mediante la propiedad Travel Duration Traffic (Tráfico de duración del desplazamiento). Al convertir y almacenar este valor en minutos, facilita volver a utilizar el valor más adelante sin necesidad de convertirlo de nuevo.

  1. En el diseñador, en la acción Get route (Obtener ruta), seleccione New step (Nuevo paso).

  2. En Choose an operation (Elegir una operación), seleccione Built-in (Integrada). En el cuadro de búsqueda, escriba variables y seleccione la acción Initialize variable (Inicializar variable).

    Screenshot that shows the

  3. Cambie el nombre de esta acción por esta descripción: Create variable to store travel time

  4. Proporcione esta información para la variable tal y como se muestra en esta tabla y en los pasos posteriores:

    Propiedad Obligatorio Value Descripción
    Nombre travelTime El nombre de la variable. En este ejemplo se usa travelTime.
    Tipo Entero Tipo de datos de la variable
    Valor No Expresión que convierte el tiempo de desplazamiento actual de segundos a minutos (consulte los pasos a continuación de esta tabla). Valor inicial de la variable
    1. Para crear la expresión para el campo Valor, haga clic en el campo para que aparezca la lista de contenido dinámico. Si es necesario, amplíe el explorador hasta que aparezca la lista dinámica. En la lista de contenido dinámico, seleccione Expression (Expresión), que muestra el editor de expresiones.

      Screenshot that shows the

      La lista de contenido dinámico muestra las salidas de las acciones anteriores que están disponibles para seleccionarse como entradas para las acciones posteriores del flujo de trabajo. La lista de contenido dinámico incluye un editor de expresiones que puede usar para seleccionar las funciones que realizan operaciones en la expresión. Este editor de expresiones solo está disponible en la lista de contenido dinámico.

    2. En el editor de expresiones, escriba esta expresión: div(,60)

      Screenshot that shows the expression editor with the

    3. En la expresión, coloque el cursor entre el paréntesis de apertura ( ( ) y la coma ( , ) y seleccione Dynamic content (Contenido dinámico).

      Screenshot that shows where to put the cursor in the

    4. En la lista de contenido dinámico, seleccione el valor de la propiedad Travel Duration Traffic (Tráfico de duración del desplazamiento).

      Screenshot that shows the

    5. Una vez que el valor de la propiedad se resuelva dentro de la expresión, seleccione Aceptar.

      Screenshot that shows the

      El campo Valor aparece ahora como se muestra aquí:

      Screenshot that shows the

  5. Guarde la aplicación lógica.

A continuación, agregue una condición que compruebe si el tiempo de desplazamiento actual es mayor que un límite específico.

Comparación del tiempo de desplazamiento con límite

  1. En la acción Create variable to store travel time (Creación de una variable para almacenar el tiempo de desplazamiento), seleccione New step (Nuevo paso).

  2. En Choose an operation (Elegir una operación), seleccione Built-in (Integrada). En el cuadro de búsqueda, escriba condition. En la lista de acciones, seleccione la acción Condition (Condición).

    Screenshot that shows the

  3. Cambie el nombre de la condición por esta descripción: If travel time exceeds limit

  4. Cree una condición que compruebe si el valor de la propiedad travelTime (tiempo de desplazamiento) supera el límite especificado tal y como se describe aquí:

    1. En el lado izquierdo de la condición, haga clic en el cuadro Choose a value (Elegir un valor).

    2. En la lista de contenido dinámico que aparece, en Variables, seleccione la propiedad travelTime.

      Screenshot that shows the

    3. En el cuadro de comparación central, seleccione el operador is greater than (es mayor que).

    4. En el lado derecho de la condición, en el cuadro Choose a value (Elegir un valor), escriba este límite: 15.

      Una vez que haya terminado, la condición debe ser parecida a la de este ejemplo:

      Screenshot that shows the finished condition for comparing the travel time to the specified limit.

  5. Guarde la aplicación lógica.

A continuación, agregue la acción que desea ejecutar cuando el tiempo de desplazamiento supere el límite.

Envío de un correo electrónico cuando se supere el límite

Ahora, agregue una acción que le enviará un correo electrónico cuando el tiempo de desplazamiento supere el límite. Este correo electrónico incluye el tiempo de desplazamiento actual y el tiempo adicional necesario para desplazarse por la ruta especificada.

  1. En la rama True (Verdadero) de la condición, seleccione Add an action (Agregar una acción).

  2. En Choose an operation (Elegir una operación), seleccione Standard (Estándar). En el cuadro de búsqueda, escriba send email. La lista devuelve muchos resultados, por lo que para filtrarla primero debe seleccionar el conector de correo electrónico que desee.

    Por ejemplo, si tiene una cuenta de correo electrónico de Outlook, seleccione el conector para su tipo de cuenta:

    • Para las cuentas profesionales o educativas de Azure, seleccione Office 365 Outlook.
    • Para las cuentas de Microsoft personales, seleccione Outlook.com.

    En este ejemplo se selecciona Office 365 Outlook.

    Screenshot that shows the

  3. Cuando aparezcan las acciones del conector, seleccione la acción que envía correo electrónico, por ejemplo:

    Screenshot that shows the

  4. Si aún no tiene una conexión, inicie sesión y autentique el acceso a su cuenta de correo electrónico cuando se le solicite.

    Azure Logic Apps crea una conexión a la cuenta de correo electrónico.

  5. Cambie el nombre de la acción por esta descripción: Send email with travel time

  6. En la propiedad To (Para), escriba la dirección de correo electrónico del destinatario. Para realizar pruebas, puede usar su dirección de correo electrónico.

  7. En el cuadro Subject (Asunto), especifique el asunto del correo electrónico e incluya la variable travelTime mediante estos pasos:

    1. Escriba el texto Current travel time (minutes): con un espacio final. Mantenga el cursor en el cuadro Subject (Asunto) para que la lista de contenido dinámico permanezca abierta.

    2. En la lista de contenido dinámico, en el encabezado Variables, seleccione See more (Ver más) para que aparezca la variable denominada travelTime.

      Screenshot that shows the dynamic content list with the

      Nota

      La lista de contenido dinámico no muestra automáticamente la variable travelTime porque la propiedad Subject (Asunto) espera un valor de cadena, mientras que travelTime es un valor entero.

      Screenshot that shows the dynamic content list with the

  8. Para la propiedad Body (Cuerpo), especifique el contenido del cuerpo del correo electrónico siguiendo estos pasos:

    1. Escriba el texto Add extra travel time (minutes): con un espacio final. Mantenga el cursor en el cuadro Body (Cuerpo) para que la lista de contenido dinámico permanezca abierta.

    2. En la lista de contenido dinámico, seleccione Expression (Expresión), que muestra el editor de expresiones.

      Screenshot that shows the dynamic content list with

    3. En el editor de expresiones, escriba sub(,15) para que pueda calcular el número de minutos que superen el límite:

      Screenshot that shows the expression editor with the

    4. En la expresión, coloque el cursor entre el paréntesis de apertura ( ( ) y la coma ( , ) y seleccione Dynamic content (Contenido dinámico).

      Screenshot that shows where to put the cursor in the

    5. En Variables, seleccione travelTime.

      Screenshot that shows the dynamic content list with

    6. Una vez que la propiedad se resuelva dentro de la expresión, seleccione Aceptar.

      Screenshot that shows the dynamic content list and

      La propiedad Body (Cuerpo) aparece ahora como se muestra aquí:

      Screenshot that shows the dynamic content list with the expression resolved in the email action's

  9. Guarde la aplicación lógica.

A continuación, pruebe y ejecute la aplicación lógica, que ahora es similar a este ejemplo:

Screenshot that shows the finished example logic app workflow

Ejecución de la aplicación lógica

Para iniciar manualmente la aplicación lógica, seleccione Ejecutar en la barra de herramientas del diseñador.

  • Si el tiempo de desplazamiento actual permanece en el límite, la aplicación lógica no hace nada más y espera al siguiente intervalo antes de volver a comprobar.

  • Pero, si el tiempo de desplazamiento actual supera el límite, recibirá un correo electrónico con el tiempo de desplazamiento actual y el número de minutos por encima del límite. Este es un correo electrónico de ejemplo que la aplicación lógica envía:

    Screenshot that shows an example email that reports the current travel time and the extra travel time that exceeds your specified limit.

    Sugerencia

    Si no recibe ningún correo electrónico, compruebe la carpeta de correo electrónico no deseado. El filtro de correo electrónico no deseado podría redirigir esta clase de correo. Si tampoco aparece allí y no está seguro de que la aplicación lógica se ejecutara correctamente, consulte el artículo de solución de problemas en la aplicación lógica.

Enhorabuena, acaba de crear y ejecutar una aplicación lógica periódica basada en programación.

Para crear otras aplicaciones lógicas que usen el desencadenador Periodicidad, consulte estas plantillas, que están disponibles tras crear una aplicación lógica:

  • Enviarle recordatorios diarios.
  • Eliminar blobs de Azure anteriores.
  • Agregar mensaje a una cola de Azure Storage.

Limpieza de recursos

La aplicación lógica continúa ejecutándose hasta que la deshabilite o elimine la aplicación. Cuando ya no necesite el ejemplo de aplicación lógica, elimine el grupo de recursos que contiene la aplicación lógica y los recursos relacionados.

  1. En el cuadro de búsqueda de Azure Portal, escriba el nombre del grupo de recursos que creó. En los resultados, en Grupos de recursos, seleccione el grupo de recursos.

    En este ejemplo se ha creado un grupo de recursos llamado LA-TravelTime-RG.

    Screenshot that shows the Azure search box with

    Sugerencia

    Si la página principal de Azure muestra el grupo de recursos en Recursos recientes, puede seleccionar el grupo desde la página principal.

  2. En el menú del grupo de recursos, compruebe que se ha seleccionado Información general. En la barra de herramientas del panel Información general, elija Eliminar grupo de recursos.

    Screenshot that shows the resource group's

  3. En el panel de confirmación que aparece, escriba el nombre del grupo de recursos y seleccione Eliminar.

Pasos siguientes

En este tutorial ha creado una aplicación de lógica que comprueba el tráfico según una programación definida (por las mañanas los días de entre semana) y realiza alguna acción (envío de correo electrónico) cuando el tiempo de desplazamiento supera un límite especificado. Ahora, aprenda a crear una aplicación lógica que envía solicitudes de lista de correo para su aprobación mediante la integración de servicios de Azure, servicios de Microsoft y otras aplicaciones de software como servicio (SaaS).