Använda uttryck i villkor för att kontrollera flera värden
I den här självstudien lär du dig att använda uttryck och villkor för att jämföra flera värden i Avancerat läge.
När du skapar ett molnflöde, kan du använda kortet Villkoret i grundläggande läge för att snabbt jämföra ett värde med ett annat. Det finns dock tillfällen när du behöver jämföra flera värden. Du kanske vill kontrollera värdet för flera kolumner i ett kalkylblad eller databastabell.
Du kan använda en valfri kombination av följande logiska uttryck i dina villkor.
Uttryck | Beskrivning | Exempel |
---|---|---|
and | Tar två argument och returnerar true om båda värdena är sanna. Obs: båda argument måste vara booleska värden. |
Detta uttryck returnerar värdet false: and(greater(1,10),equals(0,0)) |
or | Tar två argument och returnerar true om något av värdena är sanna. Obs: båda argument måste vara booleska värden. |
Det här uttrycket returnerar värdet true:or(greater(1,10),equals(0,0)) |
equals | Returnerar true om de båda värdena är likvärdiga. | Om parameter1 t.ex. är someValue, så returneras true:equals(parameters('parameter1'), 'someValue') |
less | Tar två argument och returnerar true om det första argumentet är mindre än det andra argumentet. Obs: typer som stöds är heltal, flyttal och sträng. |
Det här uttrycket returnerar värdet true:less(10,100) |
lessOrEquals | Tar två argument och returnerar true om det första argumentet är mindre än eller lika med det andra argumentet. Obs: typer som stöds är heltal, flyttal och sträng. |
Det här uttrycket returnerar värdet true:lessOrEquals(10,10) |
greater | Tar två argument och returnerar true om det första argumentet är större än det andra argumentet. Obs: typer som stöds är heltal, flyttal och sträng. |
Det här uttrycket returnerar värdet false:greater(10,10) |
greaterOrEquals | Tar två argument och returnerar true om det första argumentet är större än eller lika med det andra argumentet. Obs: typer som stöds är heltal, flyttal och sträng. |
Det här uttrycket returnerar värdet false:greaterOrEquals(10,100) |
empty | Returnerar true om objektet, matrisen eller strängen är tom. | Det här uttrycket returnerar värdet true:empty('') |
inte | Returnerar motsatsen till ett booleskt värde. | Det här uttrycket returnerar värdet true:not(contains('200 Success','Fail')) |
if | Returnerar ett värde om uttrycket resulterar i true eller false. | Det här uttrycket returnerar värdet yes:if(equals(1, 1), 'yes', 'no') |
Förutsättningar
För att slutföra den här genomgången, behöver du:
- Åtkomst till Power Automate.
- Ditt eget kalkylblad med tabeller beskrivs senare i den här genomgången. Glöm inte att spara kalkylbladet på en plats som Dropbox eller Microsoft OneDrive så att Power Automate kan komma åt den.
- Microsoft 365 Outlook (medan vi använder Outlook kan vi använda alla tjänster som stöds för e-post i din flöden.)
Använd uttrycket ”or”
Ibland behöver ditt arbetsflöde välja en åtgärd om värdet för ett objekt är värdeA eller värdeB. Du kanske vill spåra statusen för uppgifter i ett kalkylblad. Anta att tabellen har en kolumn med namnet Status och att de möjliga värdena i kolumnen:
- slutfört
- blockerad
- onödig
- har inte startat
Här är ett exempel på hur kalkylbladet kan se ut:
I detta kalkylblad vill du använda Power Automate att ta bort alla rader med en Status-kolumn som har angetts som slutförd eller onödig.
Nu ska vi skapa flödet.
Börja med ett tomt flöde
Logga in i Power Automate.
Välj Mina flöden i det vänstra fönstret.
Välj Nytt flöde>Schemalagt molnflöde.
Lägg till en utlösare i ditt flöde
Ge flödet ett namn.
Ställ in schemat på att köra flödet en gång om dagen.
Gå vidare till nästa steg genom att markera knappen Skapa.
Kommentar
Power Automate använder antingen den klassiska molnflödesdesignern eller molnflödesdesignern med Copilot. För att identifiera vilken designer du använder, gå till Anteckning i Förstå den molnflödesdesignern med Copilot-funktioner.
Välj kalkylbladet och hämta alla rader
Välj Nytt steg.
Sök efter rader och välj sedan Excel Online (företag).
Välj åtgärden hämta en rad som motsvarar det kalkylblad som du använder. Till exempel, om du använder Google Sheets, väljer du Google Sheets – hämta rader.
Välj åtgärden Lista rader närvarande i en tabell.
Välj den Plats, Dokumentbibliotek, Fil och Tabell som innehåller dina.
Kontrollera i statuskolumnen för varje rad
Välj Nytt steg.
Sök efter tillämpa på varje och välj sedan Tillämpa för varje – kontroll.
Lägg till värde-token i rutan Välj utdata från föregående steg.
Detta värde token representerar kalkylbladstabellen och alla data.
Välj Lägg till en åtgärd på Tillämpa för varje kort.
Sök efter villkor och välj kontrollen Villkor.
Lägg till följande Or-uttryck. Det här Or uttrycket kontrollerar värdet för varje rad i tabellen. Om värdet för kolumnen Status är slutfördellerkrävs ej tolkas uttrycket Eller som "true".
Här är ett exempel på kortet villkor.
Ta bort matchande rader i kalkylbladet
Välj Lägg till en åtgärd i Om ja-grenen av villkoret.
Om ja-grenen körs om OR villkoret beräknas som sant.
Sök efter Ta bort en rad, välj Excel Online (företag)och markera sedan Ta bort en rad.
På kortet Ta bort en rad ange Plats, Dokumentbibliotek, Fil och Tabell rutor precis som du ställer in dessa rutor på korten Lista rader som finns i en tabell tidigare i denna självstudie.
I listrutan Nyckelkolumn väljer du _PowerAppsId_.
I fältet Nyckelvärde infogar du det dynamiska värdet _PowerAppsId_.
Spara ditt flöde.
Kör flödet med or-uttrycket
Flödet körs när du sparar det. Om du har skapat kalkylblad som visas tidigare i den här självstudien ser det ut så här när körningen har slutförts.
Observera att alla data från rader som har slutförd eller onödig i status kolumnen har tagits bort.
Använd and-uttrycket
Anta att du har en kalkylbladtabell med två kolumner. Kolumnnamnen är Status och Tilldelad. Anta också att du vill ta bort alla rader om värdet i Status-kolumnen är blockerad och värdet i Tilldelad-kolumnen är John Wonder. Följ att kunna utföra den här uppgiften, så följ alla tidigare steg i självstudien. När du redigerar kortet Villkor i avancerat läge använder så använd uttrycket and så som visas här.
@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))
Här är ett exempel på kortet villkor.
Kör flödet med and-uttrycket
Om du har följt stegen i den här självstudien bör kalkylbladet se ut ungefär på följande skärmbild.
När flödet har köras bör kalkylbladet se ut ungefär på följande skärmbild.
Använd empty-uttrycket
Observera att det finns flera tomma rader i kalkylbladet nu. Ta bort dem genom att använda empty-uttrycket för att identifiera alla rader som inte har någon text i kolumnerna Tilldelad och Status.
För att utföra denna uppgift, följ alla steg som anges i Använd uttrycket 'and' tidigare i den här självstudien. När du redigerar kortet Villkor i avancerat läge använder du följande empty-uttryck.
@and(empty(item()?['Status']), empty(item()?['Assigned']))
Ditt kort för villkor bör se ut som följande skärmbild.
När flödet har köras bör kalkylbladet se ut ungefär på följande skärmbild.
Observera att extra rader tas bort från tabellen.
Använd uttrycket greater
Anta att du har köpt fotbollsbiljetter för dina medarbetare och du använder ett kalkylblad för att se till att har fått betalt av alla. Du kan snabbt skapa ett molnflöde som skickar ett dagligt e-postmeddelande till varje person som inte har betalat.
Identifiera de medarbetare som inte har betalat hela beloppet med hjälp av uttrycket greater. Du kan sedan automatiskt skicka en påminnelse via e-post till dem som inte har betalat.
Så här ser kalkylbladet ut.
Här är implementeringen av uttrycket greater som identifierar alla personer som har betalat mindre än det förfallna beloppet.
@greater(item()?['Due'], item()?['Paid'])
Använda uttrycket less
Anta att du har köpt fotbollsbiljetter för dina medarbetare och du använder ett kalkylblad för att se till att har fått betalt av alla i tid. Du kan skapa ett molnflöde som skickar en påminnelse via e-post till varje person som inte har betalat om det aktuella datumet är mindre än en dag före förfallodatumet.
Använd uttrycket and med uttrycket less eftersom det finns två villkor som ska verifieras.
Villkor att validera | Uttryck som ska användas | Exempel |
---|---|---|
Har hela beloppet betalats? | greater | @greater(item()?['Due'], item()?['Paid']) |
Är datumet mindre än en dag bort? | less | @less(item()?['DueDate'], addDays(utcNow(),1)) |
Kombinera uttrycken greater och less i ett and-uttryck
Använd uttrycket greater om du vill identifiera de anställda som har betalat mindre än det fullständiga förfallna beloppet, och använd uttrycket less för att fastställa om betalningens förfallodatum ligger mindre än dag från aktuellt datum. Du kan sedan använda en åtgärd för att skicka ett e-postmeddelande för att skicka ett e-postmeddelande till de anställda som inte har betalat i tid.
Så här ser kalkylbladet ut.
Här är implementeringen av uttrycket and som identifierar alla anställda som har betalat mindre än det förfallna beloppet och där förfallodatumet infaller mindre än en dag från det aktuella datumet:
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
Använda funktioner i uttryck
Vissa uttryck får sina värden från runtime-åtgärder som kanske inte finns än när ett molnflöde börjar köras. För att referera till eller arbeta med dessa värden i uttryck kan du använda funktioner som arbetsflödesdefinitionsspråket tillhandahåller. Mer information. Mer information finns i Referensguide till arbetsflödesuttrycksfunktioner i Azure Logic Apps och Power Automate.
Relaterad information
Utbildning: Introduktion till uttryck i Power Automate (modul)