Tipos de funciones
Las funciones se agrupan en diez categorías diferentes, como las matemáticas, las de lógica o las de tipo cadena. Las categorías están organizadas para facilitar la búsqueda de una función en particular. A continuación, podrá ver una descripción general de cada categoría y algunos ejemplos.
Tenga en cuenta que, durante la revisión de los distintos ejemplos, usamos texto y valores estáticos. Lo hacemos para permitirle probar y reproducir los ejemplos con la mayor facilidad posible. En sus flujos, puede sustituir estos datos estáticos por contenido dinámico. Sin embargo, recuerde que los datos dinámicos deben tener el formato correcto para la función.
En esta captura de pantalla, el editor de expresiones muestra algunas de las funciones de cadena disponibles. Si lo desea, puede desplazarse por esta lista: tras las funciones de cadena, verá las funciones de colección, etc. Como puede ver, también hay una entrada de búsqueda. Si sabe a qué función desea hacer referencia en la fórmula, puede introducirla aquí y omitir el desplazamiento. Al seleccionar cualquiera de estas fórmulas, se añaden al campo de entrada de fórmulas, donde puede añadir entradas para completar la fórmula y poder guardarla.
Sin embargo, no es necesario seleccionar una función. Si conoce la función, solo tiene que empezar a escribirla. Además, si no sabe qué expresión usar o si desea ayuda para actualizar una expresión existente, tenga en cuenta que puede utilizar Copilot para que le ayude a crear una expresión proporcionando entradas en lenguaje natural.
Funciones de cadena
Las funciones de cadena (texto) se utilizan para modificar cadenas, encontrar caracteres en una cadena, formatear cadenas, etc. La manipulación de texto es una habilidad básica que se usa a menudo cuando se intenta formatear o modificar mejor los datos recibidos desde otro lugar.
Un ejemplo de función de cadena es formatNumber. Esta función puede convertir un número en una cadena con un formato determinado. Una solicitud habitual es hacer que un número parezca una divisa. Para cambiar el número 12,5 a 12,50 $, utilice la fórmula siguiente:
formatNumber(12.5,'C')
La "C" representa la cadena de formato numérico Divisa. No se preocupe, hay una lista con otras opciones disponibles en Cadenas de formato numérico estándar. ¿A lo mejor se pregunta qué pasaría si quisiera mostrar el número como divisa pero con el símbolo del yen? Existe un parámetro opcional donde puede pasar la configuración regional.
formatNumber(12.5,'C','ja-JP')
Esta fórmula devolverá 13 ¥.
Funciones de colección
Estas funciones se utilizan para matrices y cadenas. Pueden usarlas para comprobar si una matriz está vacía, para tomar el primer elemento o el último o para operaciones de combinación, unión e intersección.
Un ejemplo de función de colección útil es length. Puede utilizar length para devolver el número de elementos en una cadena o una matriz. El siguiente ejemplo se usaría para contar el número de caracteres de la cadena "I love Power Automate".
length('I love Power Automate.')
El resultado sería 22. Observe que los espacios cuentan como caracteres. Puede utilizar este tipo de función para la validación o con las funciones de cadena para manipular cadenas.
Funciones lógicas
Estas funciones se utilizan para trabajar con condiciones, comparar valores y realizar otras evaluaciones basadas en la lógica. Suelen emplearse como instrucciones If; por ejemplo, cuando desea comparar si un número es mayor que otro. Power Automate admite todas las comparaciones lógicas que cabría esperar.
En el siguiente ejemplo, una expresión comparará si 12 es mayor que 10 y generará la cadena apropiada. Esta también será la primera expresión que utilice más de una función. Combinaremos las funciones lógicas if y greater.
If(greater(12,10),'Yes','No')
El resultado de esta expresión sería la cadena Sí. Para entender la expresión, trabaje desde dentro hacia fuera. Greater(12,10) devuelve true o false dependiendo de si 12 es mayor que 10. En este caso, la fórmula se evalúa como verdadera (es decir, 12 es mayor que 10).
El primer valor después de la expresión mayor ("Sí") es el valor que se devuelve si la expresión se evalúa como verdadera, y el siguiente valor ("No") es el valor devuelto si la expresión se evalúa como falsa. Dado que Greater(12, 10) se evalúa como verdadero, se devuelve el primer valor después de la expresión (o "Sí").
Importante
Si bien puede escribir expresiones lógicas como se muestra anteriormente, también hay una acción llamada Condición que permite escribir instrucciones If sin una expresión. Puede insertar un nuevo paso en su flujo pidiéndole a Copilot que inserte una condición o seleccionando el icono de suma y buscando la acción llamada Condición.
Puede buscar una condición o puede pedirle ayuda a Copilot para añadir una en su flujo.
A continuación, encontrará la misma lógica, pero escrita con una acción condicional en lugar de una expresión.
Sugerencia
Durante el trabajo con Copilot, vaya comprobando si el resultado es el esperado. Puede usar Copilot como punto de inicio y, a partir de ahí, añadir o modificar cosas para obtener exactamente lo que necesite.
Con el tiempo, acabará usando una combinación de expresiones y condiciones, según sus necesidades.
Funciones de conversión
Estas funciones se utilizan para cambiar el tipo de datos. Puede tratarse de algo sencillo, como convertir un número de texto en un entero, o funciones más complejas, como cambiar la codificación de un archivo de base64 a binaria. Saber que estas funciones están disponibles le ayudará a superar los problemas que tenga que resolver para modelar sus datos correctamente.
Un escenario habitual es la necesidad de utilizar int o float para cambiar un número de texto por un número real. Esto es común al importar datos al flujo desde un origen de datos. El número 12 o 12,4, se puede almacenar como texto. Para utilizar ese número en una función lógica o escribirlo en una ubicación que espere un número, deberá convertirlo. En el siguiente ejemplo, la cadena "12" se cambia por el entero 12.
Int('12')
Eso genera el entero 12. Si la cadena hubiera sido "12,4", tendría que haberla convertido en float debido al decimal. En ese caso, utilizaría
Float('12.4')
Ahora puede usar los números de texto que acaba de crear para volver a crear el ejemplo de función lógica anterior.
If(greater(Int('12'), Float('12.4')),'Yes','No')
Esto generaría la cadena "No", porque 12 no es mayor que 12,4. La combinación de funciones como esta es habitual y es un patrón que conviene aprender.
Funciones matemáticas
Las funciones matemáticas hacen exactamente lo que cabría esperar. Permiten sumar, restar, multiplicar y realizar otros cálculos similares. Además, las funciones matemáticas permiten encontrar los números menores y mayores de un conjunto de datos u obtener un número aleatorio comprendido en un intervalo especificado, entre otras cosas. Para obtener un número aleatorio del 1 al 10, use esta expresión:
rand(1,10)
Algo que debe tener en cuenta es que hay distintas funciones para sumar números (add) y para restarlos (sub). Muchos lenguajes de fórmulas agregan números negativos para producir restas, pero Power Automate no lo hace. Para sumar dos números, utilice esta expresión:
add(12, 13)
El resultado sería 25. Si quisiera sumar tres números, tendría que agregar una segunda función, como esta:
add(add(12,13),15)
El resultado sería 40. Como ha visto antes, puede usar funciones de anidamiento para obtener los resultados deseados.
Funciones de fecha y hora
Estas funciones se utilizan para devolver la fecha y hora actuales, cambiar las zonas horarias, encontrar información específica sobre una fecha y una hora y realizar otras manipulaciones de fecha u hora. Si tiene valores de fecha y hora en sus datos, necesitará estas funciones.
Al explorar las funciones de fecha y hora en Power Automate, es importante recordar que a menudo se basan en la hora UTC. La mayoría de los orígenes de datos pasan datos de ida y vuelta con Power Automate en formato UTC. Además, si usa la función UTCNow(), devolverá la hora actual en formato UTC. Si desea usar esto para compararlo con los datos del usuario que se encuentran actualmente en Horario del este de América del Norte, deberá usar la siguiente fórmula para la conversión:
convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )
El resultado será 09-02-2024 11:28 a. m. Para obtener una lista completa de las opciones de formato de fecha y hora, consulte Cadenas de formato de fecha y hora personalizadas.
Funciones de referencia
Las funciones de referencia se utilizan para trabajar con los resultados de sus acciones y desencadenadores. Lo mejor es que, la mayoría de las veces, Power Automate escribirá estas funciones automáticamente. Cuando añade contenido dinámico en un flujo, está utilizando funciones de referencia sin saberlo. Si añade contenido dinámico y se desplaza por la parte superior de ese contenido, podrá ver la función de referencia en acción.
En esta captura de pantalla, puede ver esto en la acción Compose añadiendo el contenido dinámico User name en las Entradas para Compose.
Al pasar el cursor sobre Nombre de usuario, podrá ver
triggerOutputs()?['headers']?['x-ms-user-name-encoded']
Power Automate creó la expresión utilizando triggerOutputs por usted. Está extrayendo la propiedad x-ms-user-name-encoded de la propiedad Headers. La mayor parte del tiempo, en Power Automate, hará referencia a estas propiedades mediante contenido dinámico. Pero es posible escribir sus propias expresiones para reproducir esto si es necesario. Cada desencadenador y cada acción tendrán diferentes formatos para la recuperación de datos.
Explore estas funciones agregando varios desencadenadores, acciones, orígenes de datos y bucles de aplicación a cada uno en su flujo. A continuación, utilice sus propiedades como datos dinámicos para ver más ejemplos. La buena noticia es que no es habitual escribir este tipo de expresiones.
Funciones de flujo de trabajo
Las funciones de flujo de trabajo se utilizan para recuperar información sobre su flujo y están estrechamente relacionadas con las funciones de referencia. Una de las funciones se llama flujo de trabajo. Puede usarla como se muestra aquí.
workflow().run.id
El resultado será el id. de la ejecución de flujo actual. Puede utilizar este error para informes o registros de errores si es necesario. Estas funciones no se suelen utilizar.
Funciones de análisis de URI
Estas funciones se utilizan para diseccionar un URI que se pasa como una cadena. Puede utilizar estas funciones para encontrar el host, la ruta, la cadena de consulta u otras partes del URI. El siguiente ejemplo muestra cómo usar uriQuery para obtener la parte de la cadena de consulta del URI dado.
uriQuery('https://flow.microsoft.com/fakeurl?Test=Yes')
El resultado sería la cadena ?Test=Yes que luego podría analizar con funciones de cadena para obtener el valor pasado desde el URI.
Funciones de manipulación
Las funciones de manipulación se utilizan para trabajar con objetos específicos en su flujo. Puede hacer cosas como buscar el primer valor que no esté en blanco, trabajar con propiedades o buscar coincidencias de xpath. Estas funciones se suelen utilizar en evaluaciones de nodos JSON o XML.
Una función que puede resultarle útil es coalesce. Esta función le permitirá encontrar el primer valor no nulo de un conjunto específico de valores. Utilice la función como se muestra en la siguiente fórmula:
coalesce(null, 'Power Automate', 'Power Apps')
Esta fórmula devolvería la cadena Power Automate. Es útil cuando se pasan varios valores y es necesario encontrar el primero que no sea null.