Usar expresiones en condiciones para comprobar varios valores

En este tutorial, aprenderá a utilizar expresiones y condiciones para comparar varios valores en modo avanzado.

Cuando se crea un flujo de nube, puede usar la tarjeta Condición en modo básico para comparar rápidamente un valor individual con otro. Sin embargo, hay veces en las que necesita comparar varios valores. Por ejemplo, puede comprobar el valor de varias columnas de una hoja de cálculo o de una tabla de base de datos.

En las condiciones puede usar cualquier combinación de las siguientes expresiones lógicas.

Expression Descripción Ejemplo
and Toma dos argumentos y devuelve true si ambos valores son true.
Nota: ambos argumentos deben ser valores booleanos.
Esta expresión devuelve false:
and(greater(1,10),equals(0,0))
or Toma dos argumentos y devuelve true si cualquiera de los dos argumentos es true.
Nota: ambos argumentos deben ser valores booleanos.
Esta expresión devuelve true:
or(greater(1,10),equals(0,0))
equals Devuelve true si los dos valores son iguales. Por ejemplo, si el valor de parameter1 es someValue, esta expresión devuelve true:
equals(parameters('parameter1'), 'someValue')
less Toma dos argumentos y devuelve true si el primer argumento es menor que el segundo.
Nota: los tipos admitidos son integer, float y string.
Esta expresión devuelve true:
less(10,100)
lessOrEquals Toma dos argumentos y devuelve true si el primer argumento es menor o igual que el segundo.
Nota: los tipos admitidos son integer, float y string.
Esta expresión devuelve true:
lessOrEquals(10,10)
greater Toma dos argumentos y devuelve true si el primero es mayor que el segundo.
Nota: los tipos admitidos son integer, float y string.
Esta expresión devuelve false:
greater(10,10)
greaterOrEquals Toma dos argumentos y devuelve true si el primer argumento es mayor o igual que el segundo.
Nota: los tipos admitidos son integer, float y string.
Esta expresión devuelve false:
greaterOrEquals(10,100)
empty Devuelve true si el objeto, matriz o cadena están vacíos. Esta expresión devuelve true:
empty('')
not Devuelve el opuesto de un valor booleano. Esta expresión devuelve true:
not(contains('200 Success','Fail'))
if Devuelve un valor específico si el resultado de la expresión es true o false. Esta expresión devuelve "yes":
if(equals(1, 1), 'yes', 'no')

Requisitos previos

Esto es lo que necesitará para completar este tutorial.

  • Obtenga acceso a Power Automate.
  • Su propia hoja de cálculo con las tablas que se describirán más adelante en este tutorial. Asegúrese de guardar la hoja de cálculo en una ubicación como Dropbox o Microsoft OneDrive para que Power Automate pueda acceder a ella.
  • Microsoft 365 Outlook (aunque aquí se usa Outlook, se puede utilizar cualquier servicio de correo electrónico compatible en los flujos).

Usar la expresión "or"

En ocasiones un flujo de trabajo debe realizar una acción si el valor de un elemento es valueA o valueB. Por ejemplo, puede hacer un seguimiento del estado de las tareas de una tabla de una hoja de cálculo. Suponga que la tabla tiene una columna denominada Estado, cuyos valores posibles en esta columna son:

  • completado
  • bloqueado
  • no necesario
  • sin iniciar

A continuación se muestra un ejemplo del aspecto que podría tener la hoja de cálculo:

Captura de pantalla de una hoja de cálculo de muestra con una columna Estado

Dada la hoja de cálculo anterior, es posible que desea usar Power Automate para quitar todas las filas con una columna Estado que se establece en completado o no necesario.

Vamos a crear el flujo.

Comience con un flujo en blanco

  1. Inicie sesión en Power Automate.

  2. En el panel de la izquierda, seleccione Mis flujos.

  3. Seleccione Nuevo flujo>Flujo de nube programado.

Agregue un desencadenador al flujo

  1. Asigne un nombre al flujo.

  2. Configure la programación para que se ejecute el flujo una vez al día.

  3. Selecciona el botón Crear para ir al siguiente paso.

Nota

Power Automate utiliza el diseñador de flujos de nube clásico o el diseñador de flujos de nube con Copilot. Para identificar qué diseñador está utilizando, vaya a la sección Nota en Comprenda el diseñador de flujos de nube con capacidades de Copilot.

Seleccionar la hoja de cálculo y obtenga todas las filas

  1. Seleccione Nuevo paso.

  2. Busque filas y seleccione Excel Online (Business).

    Seleccione la acción obtener fila correspondiente a la hoja de cálculo que esté usando. Por ejemplo, si va a utilizar Hojas de cálculo de Google, seleccione Hojas de cálculo de Google - Obtener filas.

  3. Seleccione la acción Enumerar las filas de una tabla.

    Captura de pantalla de una lista de filas en una tabla.

  4. Seleccione la Ubicación, Biblioteca de documentos, Archivo y Tabla que contiene sus datos.

    Captura de pantalla de los campos Ubicación, Biblioteca de documentos, Archivo y Tabla en las filas de lista presentes en una tarjeta de tabla

Comprobar la columna de estado de cada fila

  1. Seleccione Nuevo paso.

  2. Busque aplicar a cada y luego seleccione el control Aplicar a cada: control.

  3. Agregue el token valor al cuadro Seleccionar una salida de los pasos.

    Este token de valor representa la tabla de la hoja de cálculo y todos sus datos.

  4. Seleccione Agregar una acción en la tarjeta Aplicar a cada.

  5. Busque condición y luego seleccione el control Condición.

  6. Agregue la siguiente expresión or. Esta expresión or comprueba el valor de cada fila de la tabla. Si el valor de la columna Estado es completadoono necesario, la expresión or se evalúa como "true".

    Este es un ejemplo de una tarjeta Condición.

    Captura de pantalla de una expresión

Eliminar filas coincidentes de la hoja de cálculo

  1. Seleccione Agregar una acción en la rama En caso afirmativo de la condición.

    La rama En caso afirmativo se ejecuta si la condición O se evalúa como true.

  2. Busque Eliminar una fila, seleccione Excel Online (Business) y luego seleccione Eliminar una fila.

  3. En la tarjeta Eliminar una fila, configure los cuadros Ubicación, Biblioteca de documentos, Archivo y Tabla exactamente como las puso en la tarjeta Enumerar filas presentes en una tabla anteriormente en este tutorial.

  4. En la lista desplegable Columna de clave, seleccione _PowerAppsId_.

  5. En el campo Valor de clave, inserte el valor dinámico _PowerAppsId_.

  6. Guarde su flujo.

Ejecutar el flujo con la expresión "or"

El flujo se ejecuta después de que se guarda. Si ha creado la hoja de cálculo que se ha mostrado anteriormente en el tutorial, así debería ser una vez que se complete la ejecución.

Captura de pantalla de la hoja de cálculo cuando se completa la expresión

Observe que se han eliminado todos los datos de las filas en los que aparece completado o no necesario en la columna Estado.

Usar la expresión "and"

Suponga que tiene una tabla de hoja de cálculo con dos columnas, cuyos nombres son Estado y Asignado. Suponga también que desea eliminar todas las filas si el valor de la columna Estado es bloqueado y el valor de la columna Assigned es John Wonder. Para realizar esta tarea, siga todos los pasos indicados anteriormente en este tutorial, pero cuando edite la tarjeta Condición en modo avanzado, use la expresión and que se muestra aquí:

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

Este es un ejemplo de una tarjeta Condición.

Captura de pantalla de la expresión

Ejecución del flujo con la expresión "and"

Si ha seguido los pasos de este tutorial, su hoja de cálculo debería tener un aspecto similar a la siguiente captura de pantalla.

Captura de pantalla de la hoja de cálculo antes de que se ejecute el flujo

Después de que se ejecute su flujo, su hoja de cálculo debería tener un aspecto similar a la siguiente captura de pantalla.

Captura de pantalla de la hoja de cálculo después de que se ejecute el flujo

Utilizar la expresión "empty"

Observe que ahora hay varias filas vacías en la hoja de cálculo. Para quitarlas, utilice la expresión empty para identificar todas las filas que no tengan texto en las columnas Asignado y Estado.

Para realizar esta tarea, siga todos los pasos enumerados en la sección Usar la expresión "y" anterior en este tutorial. Cuando edita la tarjeta Condición en modo avanzado, use la siguiente expresión empty.

@and(empty(item()?['Status']), empty(item()?['Assigned']))

La tarjeta Condición debería tener un aspecto similar a la siguiente captura de pantalla.

Captura de pantalla de la expresión

Después de que se ejecute su flujo, la hoja de cálculo debería tener un aspecto similar a la siguiente captura de pantalla.

Captura de pantalla de la hoja de cálculo después de ejecutar

Tenga en cuenta que las líneas adicionales se quitan de la tabla.

Usar la expresión "greater"

Imagine que ha comprado entradas para un partido de béisbol para sus compañeros de trabajo y que usa una hoja de cálculo para asegurarse de que todos se las pagan. Puede crear rápidamente un flujo de nube que envíe un correo electrónico diario a cada persona que no haya pagado la cantidad total.

Use la expresión greater para identificar los empleados que no hayan pagado la cantidad total. Posteriormente, puede enviar automáticamente un recordatorio por correo electrónico a quienes no hayan pagado la totalidad.

Esta es una vista de la hoja de cálculo.

Captura de pantalla de la hoja de cálculo de los que no han realizado el pago íntegro

Esta es la implementación de la expresión greater que identifica a todas las personas que han pagado menos de lo que deben.

@greater(item()?['Due'], item()?['Paid'])

Usar de la expresión "less"

Suponga que ha comprado entradas para un partido de béisbol para sus compañeros de trabajo y que usa una hoja de cálculo para asegurarse de que todos se las pagan antes de la fecha acordada. Puede crear un flujo de nube que envíe un recordatorio por correo electrónico a todos aquellos que no hayan pagado el importe íntegro si la fecha actual es menos de un día antes de la fecha de vencimiento.

Use la expresión and junto con la expresión less, ya que se deben validar dos condiciones.

Condición que se valida Expresión que se usa Ejemplo
¿Se ha pagado el importe total que se debe? greater @greater(item()?['Due'], item()?['Paid'])
¿Es el fecha de vencimiento inferior a un día? less @less(item()?['DueDate'], addDays(utcNow(),1))

Combinar las expresiones "greater" y "less" en una expresión "and"

Utilice la expresión greater para identificar a los empleados que han pagado menos que la cantidad total que se debe y la expresión less para determinar si la fecha de vencimiento del pago sea inferior a un día desde la fecha actual. Luego puede usar la acción Enviar un correo electrónico para enviar correos electrónicos de recordatorio a los empleados que no hayan pagado la totalidad cuando la fecha de vencimiento sea inferior a un día.

Esta es una vista de la tabla de la hoja de cálculo.

Captura de pantalla de la tabla de la hoja de cálculo

Esta es la implementación de la expresión and que identifica a todos los empleados que han pagado una cantidad inferior a la que debe y cuya fecha de vencimiento sea inferior a un día desde la fecha actual.

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

Usar funciones en expresiones

Algunas expresiones obtienen sus valores de acciones en tiempo de ejecución que es posible que aún no existan cuando un flujo de nube empiece a ejecutarse. Para hacer referencia a estos valores o trabajar con ellos en expresiones, puede usar las funciones que proporciona el lenguaje de definición de flujo de trabajo. Más información. Para obtener más información, vaya a Guía de referencia de funciones en expresiones de flujo de trabajo en Azure Logic Apps y Power Automate.