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 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 06-07-2021 05:39 p. m.

Al pensar en expresiones complejas, considere que se trata de más de 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 un ejemplo final de una expresión compleja, considere el escenario en el que exista un par de entradas como parte de su desencadenador Desencadenar un flujo manualmente y luego se utilice esa entrada 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 al siguiente.

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'])

La expresión utilizará 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 como se muestra a continuación. Esta es una manera excelente de hacer referencia a ese contenido, a la vez que se deja que Power Automate realice el trabajo más complejo de escribir la fórmula.

Captura de pantalla animada que muestra cómo agregar una expresión.

Si prueba su flujo e introduce la fecha 2021-06-01 y el número 2, su salida será 2021-06-03T00:00:00.0000000, que es el formato UTC para el 3 de junio de 2021.

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

La expresión devuelve un valor de 4, que representa el jueves, ya que cuenta a partir del domingo, que sería el 0. Esta es una captura de pantalla del flujo actual para validar lo que ha desarrollado. Tenga en cuenta que las expresiones se han colocado en una nota para facilitar su lectura.

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

Ahora agregue otro paso Redactar para comprobar si la fecha que se ha seleccionado es un jueves. Haga esto con la siguiente expresión en Redactar 3.

if(equals(outputs('Compose_2'),4), 'You chose a Thursday', 'You did not choose a Thursday')

Para el 3 de junio de 2021, devolverá la cadena "Ha elegido 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 4, 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 3 de junio de 2021 será la cadena "Ha elegido un jueves". Enhorabuena. Ha escrito una expresión compleja dando pequeños pasos y juntándolo todo al final.