Escribir expresiones complejas

Completado

Las expresiones complejas consisten en combinar más de una función para obtener el resultado deseado. Ya habrá podido ver algunos ejemplos de estas expresiones en las secciones Funciones matemáticas y Funciones de fecha y hora. Habrá podido ver que, para sumar tres números, debe combinar dos funciones add de esta manera:

add(add(12,13),15)

El resultado de la combinación fue 40.

A continuación, pudo ver el uso de la función utcNow para obtener la fecha y hora actuales, y el uso posterior de convertFromUtc para cambiarlas a la zona horaria de la Hora estándar del Este, como se muestra a continuación:

convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )

El resultado de estas funciones fue 09-02-2024 11:28 a. m.

Las expresiones complejas no son solo una función en una expresión en la que usa la salida de una función como entrada de otra. No tiene sintaxis, operadores ni consideraciones especiales.

Para ver el ejemplo final de una expresión compleja, imagine que hay un par de entradas como parte de su desencadenador Desencadenar un flujo manualmente y, luego, esa entrada se utiliza en una fórmula para calcular una nueva hora. Puede utilizar el flujo de ejemplo que ha utilizado para probar sus expresiones o crear un nuevo flujo que se parezca a este.

Captura de pantalla de Desencadenar un flujo manualmente, con la entrada Redactar

Ahora seleccione Agregar una entrada en Desencadenar un flujo manualmente y agregue un número. A continuación, seleccione Agregar una entrada de nuevo y agregue una fecha. Su desencadenador ahora debería tener este aspecto:

Captura de pantalla de Activar manualmente un flujo, con Número y Fecha de activación

Ahora, en el paso Redactar, agregará una expresión para agregar el número de días transcurridos desde el desencadenador hasta la fecha.

addDays(triggerBody()?['date'], triggerBody()?['number'])

Esta expresión usa la función de Fecha y hora addDays y la función de Referencia triggerBody.

Nota

Si se pregunta "¿Cómo puedo saber qué corresponde al cuerpo del desencadenador?", se está planteando la pregunta correcta. El secreto es que puede combinar contenido dinámico en sus expresiones. Para hacerlo, comience su expresión escribiendo addDays() y después, con el cursor entre (), seleccione Contenido dinámico. A continuación, puede elegir sus campos. Es un método fantástico para hacer referencia a ese contenido y, al mismo tiempo, dejar que Power Automate haga el trabajo más complejo de escribir la fórmula.

Si prueba su flujo e introduce la fecha 2024-02-09 y el número 2, su salida es 2024-02-11T00:00:00.0000000. Este es el formato UTC para el 11 de febrero de 2024.

Ahora puede establecer a qué día de la semana corresponde esa fecha con otra acción Redactar con la siguiente expresión:

dayOfWeek(outputs('Compose'))

Los resultados de la acción Redactar es 2024-02-11T00:00:00.000000. Los resultados de Compose1 es 0, que representa domingo. Domingo es 0 y cada día aumenta 1. Esta es una captura de pantalla del flujo actual para validar lo que ha desarrollado.

Captura de pantalla de validación de flujo creado con Desencadenar un flujo manualmente, Redactar y Redactar 2.

Ahora, agregue otro paso Redactar para comprobar si la fecha seleccionada es jueves. Introduzca la siguiente expresión:

if(equals(outputs('Compose_1'),4), 'You chose a Thursday', 'You didn't choose a Thursday')

Para el 9 de febrero de 2024, devolverá la cadena "No eligió un jueves".

Este ejemplo es un patrón de creación típico para una expresión compleja, en el que se crea pieza por pieza en pasos separados. Ahora que ya tiene todas las funciones necesarias, agregue otro paso Redacción. En Redactar agregado, escriba una expresión grande que lo haga todo en un solo paso. La expresión podría parecerse a esta:

if(equals(dayOfWeek(addDays(triggerBody()['date'], triggerBody()['number'])),4), 'You chose a Thursday', 'You did not choose a Thursday' )

El resultado para el 9 de febrero de 2024 será la cadena "No eligió un jueves". Enhorabuena. Ha escrito una expresión compleja dando pequeños pasos y juntándolo todo al final.