Použití výrazů v podmínkách ke kontrole více hodnot

V tomto tutoriálu se dozvíte, jak používat výrazy a podmínky k porovnávání více hodnot v Rozšířeném režimu.

Při vytváření cloudového toku můžete pomocí karty Podmínka v základním režimu rychle porovnat jednu hodnotu s jinou. Někdy je ale potřeba porovnat více hodnot. Například můžete chtít zkontrolovat hodnoty několika sloupců v tabulce nebo databázové tabulce.

Ve svých podmínkách můžete použít jakoukoli kombinaci následujících logických výrazů.

Expression Popis Příklad
and Přebírá dva argumenty a vrací hodnotu True, pokud jsou obě hodnoty pravdivé.
Poznámka: Oba argumenty musí být typu boolean (logická hodnota).
Tento výraz vrátí hodnotu False:
and(greater(1,10),equals(0,0))
or Přebírá dva argumenty a vrací hodnotu True, pokud je některý z nich pravdivý.
Poznámka: Oba argumenty musí být typu boolean (logická hodnota).
Tento výraz vrátí hodnotu True:
or(greater(1,10),equals(0,0))
rovná se Vrací hodnotu True, pokud se dvě hodnoty rovnají. Například pokud má parametr1 hodnotu nějaká_hodnota, tento výraz vrátí hodnotu True:
equals(parameters('parameter1'), 'someValue')
less Přebírá dva argumenty a vrací hodnotu True, pokud je první argument menší než druhý argument.
Poznámka: Podporované typy jsou integer (celé číslo), float (plovoucí desetinná čárka) a string (řetězec).
Tento výraz vrátí hodnotu True:
less(10,100)
lessOrEquals Přebírá dva argumenty a vrací hodnotu True, pokud je první argument menší než nebo roven druhému argumentu.
Poznámka: Podporované typy jsou integer (celé číslo), float (plovoucí desetinná čárka) a string (řetězec).
Tento výraz vrátí hodnotu True:
lessOrEquals(10,10)
greater Přebírá dva argumenty a vrací hodnotu True, pokud je první argument větší než druhý argument.
Poznámka: Podporované typy jsou integer (celé číslo), float (plovoucí desetinná čárka) a string (řetězec).
Tento výraz vrátí hodnotu False:
greater(10,10)
greaterOrEquals Přebírá dva argumenty a vrací hodnotu True, pokud je první argument větší než nebo roven druhému argumentu.
Poznámka: Podporované typy jsou integer (celé číslo), float (plovoucí desetinná čárka) a string (řetězec).
Tento výraz vrátí hodnotu False:
greaterOrEquals(10,100)
empty Vrací hodnotu True, pokud je objekt, pole nebo řetězec prázdný. Tento výraz vrátí hodnotu True:
empty('')
not Vrátí opak logické hodnoty. Tento výraz vrátí hodnotu True:
not(contains('200 Success','Fail'))
if Vrací určitou hodnotu podle toho, jestli je výsledek podmínky pravdivý, nebo nepravdivý. Tento výraz vrátí „ano“:
if(equals(1, 1), 'yes', 'no')

Předpoklady

Zde uvádíme, co budete potřebovat k postupu podle tohoto návodu.

  • Přístup k Power Automate.
  • Vlastníte tabulkový procesor s tabulkami popsanými dále v tomto podrobném návodu. Nezapomeňte tabulku uložit do umístění, jako je Dropbox nebo Microsoft OneDrive, aby k ní služba Power Automate měla přístup.
  • Microsoft 365 Outlook (My používáme Outlook, ale ve svých tocích můžete použít libovolnou podporovanou e-mailovou službu.)

Použití výrazu 'or'

Někdy je potřeba, aby pracovní postup provedl akci, pokud je hodnota položky hodnotaA nebo hodnotaB. Například můžete v tabulce sledovat stav úloh. Předpokládejme, že tabulka obsahuje sloupec Stav a možné hodnoty v tomto sloupci:

  • dokončené
  • blokováno
  • nepotřebné
  • (nezahájeno)

Příklad, jak tabulka může vypadat:

Snímek obrazovky ukázkové tabulky se sloupcem Stav.

V předchozí tabulce chcete pomocí Power Automate odebrat všechny řádky, u kterých je ve sloupci Stav nastavena hodnota dokončeno or nepotřebné.

Pusťme se do vytvoření toku.

Začátek s prázdným tokem

  1. Přihlásit se k Power Automate.

  2. V levém podokně vyberte Moje toky.

  3. Vyberte Nový tok>Plánovaný cloudový tok.

Přidání aktivační události do toku

  1. Pojmenujte svůj tok.

  2. Nastavte plán pro spuštění toku jednou denně.

  3. Výběrem tlačítka Vytvořit přejděte k dalšímu kroku.

Poznámka:

Power Automate používá buď klasického návrháře cloudových toků, nebo návrháře cloudových toků s funkcí Copilot. Chcete-li zjistit, kterého návrháře používáte, přejděte do části Poznámka v tématu Principy návrháře cloudových toků s funkcemi kopilota.

Výběr tabulky a získání všech řádků

  1. Vyberte Nový krok.

  2. Vyhledejte řádky a potom vyberte Excel Online (Business).

    Vyberte akci Získat řádek, která odpovídá používané tabulce. Pokud používáte třeba Tabulky Google, vyberte Tabulky Google – Získat řádky.

  3. Vyberte akci Vypsat řádky v tabulce.

    Snímek obrazovky výpisu řádků v tabulce.

  4. Vyberte Umístění, Knihovna dokumentů, Soubor a Tabulka, která obsahuje vaše data.

    Snímek obrazovky polí Umístění, Knihovna dokumentů, Soubor a Tabulka v řádcích seznamu na kartě tabulky.

Kontrola sloupce stavu na každém řádku

  1. Vyberte Nový krok.

  2. Vyhledejte použít na všechny a poté vyberte Použít na všechny - ovládací prvek.

  3. Přidejte token hodnota do pole Vybrat výstup z předchozího postupu.

    Tento token hodnota představuje tabulku a všechna její data.

  4. Vyberte Přidat akci na kartě Použít na všechny.

  5. Vyhledejte podmínka a poté vyberte ovládací prvek Podmínka.

  6. Přidejte následující výraz Or. Tento výraz Or kontroluje hodnotu každého řádku v tabulce. Pokud je ve sloupci Stav hodnota completedOrunnecessary, výraz Or se vyhodnotí jako True.

    Zde je příklad karty Stav.

    Snímek obrazovky výrazu 'or'.

Odstranění odpovídajících řádků z tabulky

  1. Ve větvi podmínky Pokud ano vyberte Přidat akci.

    Větev Pokud ano se spustí, pokud je podmínka OR vyhodnocena jako true.

  2. Vyhledejte Odstranění řádku, vyberte Excel online (Business) a poté vyberte Odstranit řádek.

  3. Na kartě Odstranění řádku nastavte pole Umístění, Knihovna dokumentů, Soubor a Tabulka přesně tak, jak jste ke nastavili na kartě Vypsat řádky v tabulce dříve v tomto návodu.

  4. V rozevíracím seznamu Klíčový sloupec vyberte _PowerAppsId_.

  5. Do pole Klíčová hodnota vložte dynamickou hodnotu _PowerAppsId_.

  6. Uložte svůj tok.

Spuštění toku s výrazem 'or'

Tok se spustí, jakmile ho uložíte. Pokud jste vytvořili tabulku uvedenou dříve v tomto návodu, po dokončení spuštění bude vypadat takto.

Snímek obrazovky tabulky po dokončení výrazu „OR“.

Všimněte si, že se odstranila všechna data z řádků, které ve sloupci Stav měly hodnotu completednebo unnecessary.

Použití výrazu 'and'

Předpokládejme, že máte tabulku se dvěma sloupci. Názvy sloupců jsou Stav a Přiřazeno. Předpokládejme také, že chcete odstranit všechny řádky u kterých je ve sloupci Stav hodnota blokováno a ve sloupci Přiřazeno hodnota John Wonder. Při dokončování úkolu dodržujte všechny kroky uvedené v předchozích částech tohoto kurzu, ale při úpravě karty Podmínka v rozšířeném režimu použijte výraz and (viz níže).

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

Zde je příklad karty Stav.

Snímek obrazovky výrazu 'and'.

Spuštění toku s výrazem 'and'

Pokud jste postupovali podle kroků v tomto tutoriálu, měla by vaše tabulka vypadat podobně jako na následujícím snímku obrazovky.

Snímek obrazovky tabulky před spuštěním toku.

Po spuštění postupu by tabulka měla vypadat podobně jako na následujícím snímku obrazovky.

Snímek obrazovky tabulky po spuštění toku.

Použití výrazu 'empty'

Všimněte si, že teď tabulka obsahuje několik prázdných řádků. Pokud je chcete odebrat, pomocí výrazu empty identifikujte všechny řádky, které ve sloupcích Přiřazeno a Stav neobsahují žádný text.

Chcete-li provést tento úkol, postupujte podle všech kroků uvedených v části Použijte výraz „and“ dříve v tomto tutoriálu. Když upravíte kartu Podmínka kartu v rozšířeném režimu, použijte následující výraz empty.

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

Vaše karta Podmínka by měla vypadat podobně jako následujícíscreenshot.

Snímek obrazovky výrazu 'empty'.

Po spuštění postupu by tabulka měla vypadat podobně jako na následujícím snímku obrazovky.

Snímek obrazovky tabulky po „prázdném“ spuštění.

Všimněte si, že se z tabulky odebraly nadbytečné řádky.

Použití výrazu 'greater'

Představte si, že jste pro své spolupracovníky koupili lístky na baseball a používáte tabulku, abyste zajistili, že vám za ně všichni zaplatí. Můžete rychle vytvořit cloudový tok, který každý den odešle e-mail všem, kdo ještě nezaplatili celou částku.

Pomocí výrazu greater identifikujte zaměstnance, kteří ještě nezaplatili celou částku. Pak můžete automaticky odesílat připomínky těm, kdo ještě úplně nezaplatili.

Tady je zobrazení tabulky.

Snímek obrazovky s tabulkou těch, kteří nezaplatili v plné výši.

Tady je implementace výrazu greater, který identifikuje všechny osoby, které zaplatily méně, než kolik je jejich dlužná částka.

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

Použití výrazu 'less'

Představte si, že jste pro své spolupracovníky koupili lístky na baseball a používáte tabulku, abyste zajistili, že vám za ně všichni zaplatí ve lhůtě, se kterou všichni souhlasili. Můžete vytvořit cloudový tok, který odešle e-mail s připomínkou každému, kdo ještě nezaplatil celou částku, pokud je aktuální datum méně než jeden den před datem splatnosti.

Použijte výraz and s výrazem less, protože se ověřují dvě podmínky.

Podmínka k ověření Výraz, který se má použít Příklad
Byla zaplacena celá dlužná částka? greater @greater(item()?['Due'], item()?['Paid'])
Je datum splatnosti za méně než jeden den? less @less(item()?['DueDate'], addDays(utcNow(),1))

Kombinování výrazů 'greater' a 'less' ve výrazu 'and'

Pomocí výrazu greater identifikujte zaměstnance, kteří zaplatili méně než celou dlužnou částku, a pomocí výrazu less určete, jestli je datum splatnosti za méně než jeden den od aktuálního data. Potom můžete pomocí akce Odeslat e-mail odeslat e-mail s připomínkou těm zaměstnancům, kteří ještě úplně nezaplatili a jejichž datum splatnosti je za méně než jeden den.

Tady je zobrazení tabulky.

Snímek obrazovky tabulky.

Tady je implementace výrazu and, který identifikuje všechny zaměstnance, kteří zaplatily méně, než je jejich dlužná částka, a jejichž datum splatnosti je za méně než jeden den od aktuálního data:

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

Používání funkcí ve výrazech

Některé výrazy získávají hodnoty z runtime akcí, které ještě při spuštění cloudového toku nemusí existovat. Pokud chcete na tyto hodnoty odkazovat nebo s nimi pracovat ve výrazech, můžete použít funkce poskytované jazykem pro definování pracovních postupů WDL (Workflow Definition Language). Více informací. Chcete-li se dozvědět více, přejděte na Referenční příručku k funkcím výrazů pracovního postupu v Azure Logic Apps a Power Automate.