Lógica

La función if evalúa una condición (algo que es verdadero o falso) y devuelve un valor distinto dependiendo del resultado. Es el equivalente a decir: «Si pasa esto, haz aquello; de lo contrario, haz esto otro». Es la herramienta más común para asignar valores por defecto o personalizar mensajes de forma dinámica.

Parámetros requeridos

Requiere exactamente tres parámetros:

  1. expression (Lógica): La condición que quieres validar (usualmente usando equals, greater, contains, etc.).
  2. valueIfTrue (Cualquier tipo): El resultado que quieres si la condición se cumple.
  3. valueIfFalse (Cualquier tipo): El resultado que quieres si la condición no se cumple.

Ejemplos prácticos

Ejemplo 1: Asignar un valor por defecto Si el campo «Ciudad» viene vacío, queremos que diga «No especificado».

  • Expresión: if(empty(variables(‘vCiudad’)), ‘No especificado’, variables(‘vCiudad’))
  • Resultado: «No especificado» (si la variable estaba vacía).

Ejemplo 2: Clasificar montos de facturas Si una factura supera los 1000, etiquetarla como «Prioridad Alta».

  • Expresión: if(greater(variables(‘vMonto’), 1000), ‘Prioridad Alta’, ‘Normal’)
  • Resultado: «Prioridad Alta» (si el monto es 1500).

Ejemplo 3: Saludo personalizado según el género

  • Expresión: if(equals(variables(‘vGenero’), ‘M’), ‘Bienvenido’, ‘Bienvenida’)
  • Resultado: «Bienvenida» (si el género es ‘F’).

La función and evalúa dos o más condiciones y devuelve true únicamente si todas y cada una de ellas son verdaderas. Si tan solo una de las condiciones es falsa, el resultado final será false. Es la herramienta perfecta para validaciones complejas donde no puedes permitirte excepciones.

Parámetros requeridos

Requiere al menos dos parámetros (pero puedes añadir muchos más):

  1. expression1 (Lógica): La primera condición a evaluar.
  2. expression2 (Lógica): La segunda condición a evaluar.
  3. …expressionN: Puedes seguir agregando condiciones separadas por comas.

Ejemplos prácticos

Ejemplo 1: Validar inventario y precio Solo queremos procesar pedidos que sean de la categoría «Electrónica» y que cuesten más de 500 USD.

  • Expresión: and(equals(variables(‘vCategoria’), ‘Electrónica’), greater(variables(‘vPrecio’), 500))
  • Resultado: true (solo si ambas se cumplen).

Ejemplo 2: Verificar fechas de un proyecto Saber si hoy estamos dentro del rango de ejecución (Hoy es después del inicio Y antes del fin).

  • Expresión: and(greater(utcNow(), variables(‘vFechaInicio’)), less(utcNow(), variables(‘vFechaFin’)))
  • Resultado: true (si estamos «a tiempo»).

Ejemplo 3: Validación de usuario VIP

  • Expresión: and(equals(variables(‘vRol’), ‘Admin’), equals(variables(‘vEstado’), ‘Activo’))

La función or evalúa dos o más condiciones y devuelve true (verdadero) si al menos una de ellas es verdadera. Solo devolverá false si todas las condiciones que le pusiste resultan ser falsas. Es la herramienta ideal para cuando necesitas que un proceso se dispare por varios motivos diferentes.

Parámetros requeridos

Requiere al menos dos parámetros:

  1. expression1 (Lógica): La primera condición a evaluar.
  2. expression2 (Lógica): La segunda condición a evaluar.
  3. …expressionN: Puedes seguir agregando condiciones extra separadas por comas.

Ejemplos prácticos

Ejemplo 1: Aprobar por departamento Queremos que el flujo siga si el empleado pertenece al equipo de «Ventas» o al de «Marketing».

  • Expresión: or(equals(variables(‘vDepto’), ‘Ventas’), equals(variables(‘vDepto’), ‘Marketing’))
  • Resultado: true (si el usuario está en cualquiera de los dos).

Ejemplo 2: Validar estados de un archivo Procesar el documento si su estado es «Pendiente» o si es «Revisado».

  • Expresión: or(equals(triggerBody()?[‘Status’], ‘Pendiente’), equals(triggerBody()?[‘Status’], ‘Revisado’))
  • Resultado: true (en ambos casos).

Ejemplo 3: Detectar archivos críticos

  • Expresión: or(contains(variables(‘vNombre’), ‘URGENTE’), contains(variables(‘vNombre’), ‘INMEDIATO’))

La función not toma un valor booleano o una expresión lógica y devuelve el valor opuesto. Es fundamental cuando quieres que un flujo se ejecute solo cuando una condición no se cumple, o para simplificar lógicas negativas que de otro modo serían muy enredadas.

Parámetros requeridos

Requiere exactamente un parámetro:

  1. expression (Lógica): La condición o valor booleano que deseas invertir.

Ejemplos prácticos

Ejemplo 1: Validar que un campo NO esté vacío Es quizás el uso más común. Quieres avanzar solo si el usuario escribió algo.

  • Expresión: not(empty(variables(‘vComentarios’)))
  • Resultado: true (si la variable tiene texto).

Ejemplo 2: Excluir un valor específico Quieres procesar a todos los empleados, excepto a los del departamento de «IT».

  • Expresión: not(equals(variables(‘vDepartamento’), ‘IT’))
  • Resultado: true (para cualquier departamento que no sea IT).

Ejemplo 3: Invertir una bandera (Flag)

  • Expresión: not(true)
  • Resultado: false

La función equals compara dos valores (objetos, cadenas, números, etc.) y devuelve true si son idénticos o false si existe alguna diferencia. A diferencia del operador de «igualdad» en otros lenguajes, en Power Automate es una función que envuelve a los dos elementos que quieres comparar.

Parámetros requeridos

Requiere exactamente dos parámetros:

  1. object1 (Cualquier tipo): El primer valor a comparar.
  2. object2 (Cualquier tipo): El segundo valor a comparar.

Ejemplos prácticos

Ejemplo 1: Comparar estados de aprobación

  • Expresión: equals(outputs(‘Estado_Aprobacion’), ‘Aprobado’)
  • Resultado: true (si el texto coincide exactamente).

Ejemplo 2: Validar un código numérico

  • Expresión: equals(variables(‘vCodigoSeguridad’), 1234)
  • Resultado: true (si la variable es el número 1234).

Ejemplo 3: Comparar con un valor booleano

  • Expresión: equals(variables(‘vEsPrioritario’), true)

La función less compara dos valores y devuelve true (verdadero) si el primer valor es estrictamente menor que el segundo. Es fundamental para alertas de inventario, validación de fechas de vencimiento o para aplicar descuentos automáticos si una cantidad es pequeña.

Parámetros requeridos

Requiere exactamente dos parámetros:

  1. value1 (Número, Cadena o Fecha): El valor que quieres comprobar.
  2. value2 (Número, Cadena o Fecha): El límite contra el que comparas.

Ejemplos prácticos

Ejemplo 1: Alerta de Stock Bajo Si te quedan menos de 5 unidades de un producto.

  • Expresión: less(variables(‘vStockActual’), 5)
  • Resultado: true (si el stock es 4 o menos).

Ejemplo 2: Comprobar fechas (¿Es antes de hoy?) Ideal para saber si una tarea está vencida.

  • Expresión: less(variables(‘vFechaEntrega’), utcNow())
  • Resultado: true (si la fecha de entrega ya pasó).

Ejemplo 3: Comparación alfabética

  • Expresión: less(‘A’, ‘B’)
  • Resultado: true (porque en el alfabeto la ‘A’ va antes/es «menor» que la ‘B’).

La función greater compara dos valores y devuelve true si el primer valor es estrictamente mayor que el segundo. Es la herramienta por excelencia para la toma de decisiones basada en umbrales (thresholds), como aprobaciones automáticas por monto o alertas de saturación.

Parámetros requeridos

Requiere exactamente dos parámetros:

  1. value1 (Número, Cadena o Fecha): El valor que quieres evaluar.
  2. value2 (Número, Cadena o Fecha): El límite o valor de referencia.

Ejemplos prácticos

Ejemplo 1: Control de presupuesto Si un gasto supera los 5,000 USD, necesitamos enviarlo a la dirección para aprobación.

  • Expresión: greater(variables(‘vGastoTotal’), 5000)
  • Resultado: true (si el gasto es 5001 o más).

Ejemplo 2: Validación de volumen de ítems Si una lista de SharePoint trae más de 100 elementos, queremos enviar un aviso de «Carga pesada».

  • Expresión: greater(length(outputs(‘Obtener_elementos’)?[‘body/value’]), 100)
  • Resultado: true (si hay 101 elementos o más).

Ejemplo 3: Comparación de fechas futuras

  • Expresión: greater(variables(‘vFechaVencimiento’), utcNow())
  • Resultado: true (si la fecha aún no ha llegado).

La función empty comprueba si un objeto, una matriz o una cadena de texto está vacía o es nula. Devuelve true si no contiene nada y false si tiene al menos un carácter, un elemento o un valor. Es el primer filtro que debes poner antes de intentar procesar cualquier dato que venga de fuera (formularios, correos, Excel).

Parámetros requeridos

Requiere exactamente un parámetro:

  1. collection (Cadena, Matriz u Objeto): Lo que quieres revisar.

Ejemplos prácticos

Ejemplo 1: Validar un campo de texto opcional Si el usuario no escribió nada en el campo «Comentarios» de un formulario.

  • Expresión: empty(triggerBody()?[‘Comentarios’])
  • Resultado: true (si dejó el campo en blanco).

Ejemplo 2: Verificar si una lista de Excel tiene filas Antes de intentar enviar un correo con una tabla, revisas si hay datos.

  • Expresión: empty(outputs(‘Listar_filas’)?[‘body/value’])
  • Resultado: true (si la tabla de Excel está vacía).

Ejemplo 3: Evitar el error de valor nulo (null)

  • Expresión: empty(null)
  • Resultado: true

La función coalesce evalúa una lista de valores y devuelve el primer valor que no sea nulo (null). Si el primer elemento es nulo, pasa al segundo; si el segundo es nulo, pasa al tercero, y así sucesivamente. Es la forma más limpia de manejar valores opcionales o de proporcionar «respaldos» (fallbacks) sin tener que escribir tres funciones if anidadas.

Parámetros requeridos

Requiere dos o más parámetros:

  1. value1 (Cualquier tipo): El valor principal que quieres usar.
  2. value2 (Cualquier tipo): El valor de respaldo si el primero es nulo.
  3. …valueN: Puedes agregar tantos respaldos como necesites.

Ejemplos prácticos

Ejemplo 1: Proveer un nombre por defecto Si el campo «Nombre» de un perfil es nulo, queremos que el flujo use la palabra «Usuario».

  • Expresión: coalesce(variables(‘vNombre’), ‘Usuario’)
  • Resultado: «Usuario» (si la variable es null).

Ejemplo 2: Buscar contacto en múltiples campos Imagina que un cliente puede darte su Teléfono de Oficina, su Celular o su Teléfono de Casa. Quieres el primero que esté disponible.

  • Expresión: coalesce(item()?[‘Oficina’], item()?[‘Celular’], item()?[‘Casa’], ‘No hay contacto’)
  • Escenario: Si no tiene oficina pero sí celular, el resultado será el número de celular.

Ejemplo 3: Limpiar salidas de una base de datos

  • Expresión: coalesce(outputs(‘Obtener_fila’)?[‘body/Comentarios’], ‘Sin comentarios’)

Deja una respuesta

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo