Compartir a través de


Usar expresiones en condiciones para comprobar varios valores

En este tutorial, aprenderá a utilizar expresiones y condiciones para comparar varios valores en el 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 desee usar Power Automate para quitar todas las filas con una columna Status establecida en completed o unnecessary.

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 usa el diseñador de flujos de nube clásico o el nuevo diseñador moderno con capacidades de Copilot. Para identificar qué diseñador está usando, vaya a la sección Nota en Explorar el diseñador de flujos de nube.
  • Al cambiar entre el diseñador clásico y el nuevo, se le pide que guarde el flujo. No puede guardar y cambiar hasta que se resuelvan todos los errores.

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

Puede usar Copilot para crear el flujo automáticamente o crearlo manualmente.

Crear un flujo con Copilot

  1. Pídale a Copilot que cree un flujo para usted. Escriba el siguiente mensaje en Copilot:

    Cada semana, enumere las filas de una tabla de Excel y, si la columna Estado es igual a Succeeded o el correo electrónico del administrador de reclamaciones es jake@contoso.com, elimine la fila de Excel.

  2. Seleccione EnviarCaptura de pantalla del botón Enviar..

    Después de enviar la solicitud, Copilot crea el flujo para usted. Debe completar los detalles para que el flujo funcione, como los parámetros de varias acciones agregadas por Copilot.

Creación de un flujo manualmente

Alternativamente, puede realizar el siguiente procedimiento para crear el mismo flujo manualmente:

  1. Agregue un nuevo paso seleccionando el signo más (+) >Agregar una acción.

  2. Busque filas>Excel Online (Empresa)> la acción Obtener una fila que corresponda 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 en Copilot.

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

    Captura de pantalla de los parámetros de las filas de la lista presentes en una tabla en Copilot.

Comprobar la columna de estado de cada fila

  1. Agregue un nuevo paso seleccionando el signo más (+) >Agregar una acción.

  2. En la pantalla Agregar una acción, busque aplicar a cada y luego seleccione Aplicar a cada bajo Control.

  3. Agregue el token valor al cuadro Seleccionar una salida de los pasos seleccionando el icono del pararrayos.

    Captura de pantalla seleccionando el valor del paso anterior.

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

  4. En la tarjeta Aplicar a cada, agregue un nuevo paso seleccionando el signo más (+) >Agregar una acción.

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

  6. Agregue la siguiente expresión O. Esta expresión O comprueba el valor de cada fila de la tabla.

    Si el valor de la columna Estado es completadoono necesario, la expresión O se evalúa como true.

    Este es un ejemplo de una tarjeta Condición.

    Captura de pantalla seleccionando el valor del paso anterior.

Eliminar filas coincidentes de la hoja de cálculo

  1. Seleccione el símbolo más (+) para agregar una acción en la rama Verdadero de la condición.

    La bifurcación Verdadero se ejecuta si la condición Or se evalúa como true.

  2. Busque Excel Online (Empresas) y después seleccione Eliminar una fila.

    Captura de pantalla de la eliminación de una fila

  3. En el panel Eliminar una fila, configure los cuadros Ubicación, Biblioteca de documentos, Archivo y Tabla exactamente de la misma forma que lo hizo en la tarjeta Enumerar filas presentes en una tabla anterior de 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 todos aquellos que no hayan pagado el importe total.

Use la expresión greater para identificar los empleados que no hayan pagado la cantidad total. A continuación, puede enviarles automáticamente un recordatorio por correo electrónico.

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

Captura de pantalla de la hoja de cálculo de los empleados 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 falta menos de un día para 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 el importe íntegro que se debe y la expresión less para determinar si falta menos de un día para la fecha de vencimiento del pago. 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.

Aprendizaje: Introducción a expresiones en Power Automate (módulo)