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

Se aplica a: Azure Logic Apps (consumo)

En este tutorial se muestra cómo crear un ejemplo de flujo de trabajo de aplicación lógica que automatiza una programación periódica. En concreto, este flujo de trabajo de ejemplo comprueba el tiempo de desplazamiento, incluido el tráfico, entre dos lugares y se ejecuta cada mañana de los días entre semana. Si el tiempo supera un límite específico, el flujo de trabajo le envía un correo electrónico que incluye 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:

  • Cree una aplicación lógica en blanco y un flujo de trabajo.
  • Agregue un desencadenador de periodicidad que especifique la programación con que se ejecutará el flujo de trabajo.
  • 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ía un correo electrónico si el tiempo de desplazamiento supera el límite.

Cuando haya terminado, su flujo de trabajo tendrá una apariencia similar a la del siguiente ejemplo de nivel superior:

Captura de pantalla que muestra la información general de alto nivel de un flujo de trabajo de aplicación lógica de ejemplo.

Requisitos previos

Creación de un flujo de trabajo de aplicación lógica de consumo

  1. Inicie sesión en Azure Portal con su cuenta de Azure.

  2. En la página principal de Azure, seleccione Crear un recurso.

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

    Captura de pantalla que muestra el menú de Azure Marketplace con las opciones

  4. En el panel Crear aplicación lógica, en la pestaña Aspectos básicos, proporcione la siguiente información sobre el recurso de su aplicación lógica:

    Captura de pantalla que muestra Azure Portal, el panel de creación de aplicaciones lógicas e información sobre el recurso de la nueva aplicación lógica.

    Propiedad Obligatorio Value Descripción
    Suscripción <Azure-subscription-name> El nombre de la suscripción de Azure. En este ejemplo se usa pago por uso.
    Grupo de recursos LA-TravelTime-RG El grupo de recursos de Azure en el que se crea el recurso de la aplicación lógica y los recursos relacionados. Este nombre debe ser único entre las regiones y solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis ((, )) y puntos (.).
    Nombre LA TravelTime El nombre del recurso de la aplicación lógica, que debe ser exclusivo entre las regiones y solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis ((, )) y puntos (.).
  5. Antes de continuar haciendo las selecciones, vaya a la sección Plan. En Tipo de plan, seleccione Consumo para mostrar solo la configuración de un flujo de trabajo de aplicación lógica de consumo, que se ejecuta en Azure Logic Apps multiinquilino.

    La propiedad Tipo de plan también especifica el modelo de facturación que se usará.

    Tipo de plan Descripción
    Estándar Este tipo de aplicación lógica es la selección por defecto y se ejecuta en Azure Logic Apps de un solo inquilino y utiliza el modelo de facturación Estándar.
    Consumo Este tipo de aplicación lógica se ejecuta en Azure Logic Apps global y multi-inquilino y utiliza el modelo de facturación por consumo.
  6. Ahora, continúe realizando las siguientes selecciones:

    Propiedad Obligatorio Value Descripción
    Región Oeste de EE. UU. La región del centro de datos de Azure donde se almacenará la información de la aplicación. En este ejemplo se implementa la aplicación lógica de ejemplo en la región Oeste de EE. UU. en Azure.

    Nota: Si la suscripción está asociada con un entorno de servicio de integración, esta lista incluye esos entornos.
    Habilitación de análisis de registros No Esta opción aparece y solo se aplica cuando se selecciona el tipo de aplicación lógica de consumo. Cambie esta opción solo cuando desee habilitar el registro de diagnóstico. En este tutorial, conserve la selección predeterminada.
  7. Seleccione Revisar y crear cuando haya terminado. Una vez que Azure valide la información sobre el recurso de su aplicación lógica, seleccione Crear.

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

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

  9. 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.

    Captura de pantalla que muestra el panel de selección de plantilla de flujo de trabajo con la opción

A continuación, agregue el desencadenador Periodicidad, que ejecuta el flujo de trabajo en función de una programación especificada. Cada flujo de trabajo 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 un ejemplo de flujo de trabajo de aplicación lógica de Consumo en Azure Logic Apps multiinquilino.

Adición del desencadenador Periodicidad

  1. En el diseñador del flujo de trabajo, debajo del cuadro de búsqueda, seleccione Integrado.

  2. En el cuadro de búsqueda, escriba periodicidad y seleccione el desencadenador denominado Periodicidad.

    Captura de pantalla que muestra el Azure Portal, el diseñador del flujo de trabajo, el cuadro de búsqueda con la periodicidad ingresada y el desencadenador Periodicidad seleccionado.

  3. 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

    Captura de pantalla que muestra el botón de puntos suspensivos seleccionado, la lista

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

    Captura de pantalla que muestra los cambios en el intervalo y la frecuencia del desencadenador.

    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.
  5. 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

    Captura de pantalla que muestra la lista

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

    Captura de pantalla que muestra las propiedades adicionales establecidas en los valores tal y como se describe en la tabla siguiente.

    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.

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

    Captura de pantalla que muestra la forma de desencadenador contraída.

  8. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

El flujo de trabajo de la aplicación lógica ahora está activo en Azure Portal, pero no hace nada, aparte de ejecutar el desencadenador con base 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. Azure Logic Apps proporciona un conector para la API de Bing Maps, 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 flujo de trabajo, bajo el desencadenador Periodicidad, seleccione 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).

    Captura de pantalla que muestra la lista

  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).

    Captura de pantalla que muestra el cuadro conexión de Mapas de Bing con el nombre de conexión y la clave de API de Mapas de Bing especificados.

    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)

    Captura de pantalla que muestra la acción

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

    Captura de pantalla que muestra valores de propiedades adicionales para la acción

    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 del flujo de trabajo.

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).

    Captura de pantalla que muestra la acción

  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.

      Captura de pantalla que muestra la acción

      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)

      Captura de pantalla que muestra el editor de expresiones con la expresión

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

      Captura de pantalla que muestra dónde colocar el cursor en la expresión

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

      Captura de pantalla que muestra el valor de la propiedad

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

      Captura de pantalla que muestra el botón Aceptar seleccionado.

      El campo Valor aparece ahora como se muestra aquí:

      Captura de pantalla que muestra la propiedad

  5. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

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).

    Captura de pantalla que muestra la acción

  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.

      Captura de pantalla que muestra el cuadro

    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:

      Captura de pantalla que muestra la condición finalizada para comparar el tiempo de desplazamiento con el límite especificado.

  5. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

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 (enviar correo electrónico). 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.

    Captura de pantalla que muestra la lista

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

    Captura de pantalla que muestra la acción

  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.

      Captura de pantalla que muestra la lista de contenido dinámico con la sección

      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.

      Captura de pantalla que muestra la lista de contenido dinámico con la variable

  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.

      Captura de pantalla que muestra la lista de contenido dinámico con la opción

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

      Captura de pantalla que muestra el editor de expresiones con la expresión

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

      Captura de pantalla que muestra dónde colocar el cursor en la expresión

    5. En Variables, seleccione travelTime.

      Captura de pantalla que muestra la lista de contenido dinámico con la variable

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

      Captura de pantalla que muestra la lista de contenido dinámico con la opción Aceptar seleccionada.

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

      Captura de pantalla que muestra la lista de contenido dinámico con la expresión resuelta en la propiedad

  9. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

A continuación, pruebe y ejecute su flujo de trabajo, que ahora es similar a este ejemplo:

Captura de pantalla que muestra el flujo de trabajo de aplicación lógica de ejemplo finalizado.

Ejecución del flujo de trabajo

Para iniciar manualmente el flujo de trabajo, en la barra de herramientas del diseñador seleccione Run Trigger>Run (Ejecutar desencadenador y Ejecutar).

  • Si el tiempo de desplazamiento actual permanece debajo del límite, el flujo de trabajo 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 el flujo de trabajo envía:

    Captura de pantalla que muestra un correo electrónico de ejemplo que informa del tiempo de desplazamiento actual y del tiempo de desplazamiento adicional que supera el límite especificado.

    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. De lo contrario, si no está seguro de que el flujo de trabajo se ejecutara correctamente, consulte Solución de problemas del flujo de trabajo.

Enhorabuena, acaba de crear y ejecutar un flujo de trabajo periódico basada en programación.

Para crear otros flujos de trabajo que usen el desencadenador Periodicidad, consulte estas plantillas, que están disponibles tras crear un nuevo recurso de aplicación lógica:

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

Limpieza de recursos

Su flujo de trabajo continúa ejecutándose hasta que deshabilite o elimine el recurso de la aplicación lógica. Cuando ya no necesite el flujo de trabajo de muestra, elimine el grupo de recursos que contiene el recurso de 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.

    Captura de pantalla que muestra el cuadro de búsqueda de Azure con

    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.

    Captura de pantalla que muestra el panel

  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 un flujo de trabajo de aplicación lógica que comprueba el tráfico con base en una programación definida (por las mañanas los días de entre semana) y realiza alguna acción (el envío de un correo electrónico) cuando el tiempo de desplazamiento supera un límite especificado. Ahora, aprenda a compilar un flujo de trabajo que envíe solicitudes a una lista de correos electrónicos para su aprobación mediante la integración de servicios de Azure, servicios de Microsoft y otras aplicaciones de software como servicio (SaaS).