Loop Action¶
Akce Loop opakovaně provádí vnořené akce nad datovým zdrojem. Podporuje různé typy datových zdrojů — číselné rozsahy, oddělené řetězce, JSON, XML a SharePoint seznamy.
Vlastnosti¶
| Vlastnost | Popis | Hodnota / Komentář |
|---|---|---|
| Type | Typ datového zdroje. | InfinityLoop / Numeric / SeparatedString / JSON / SP / XML |
| DataSource | Definice datového zdroje. Podporuje tokeny. Formát závisí na hodnotě Type. |
— |
| DataSourceConfiguration | Konfigurace datového zdroje ve formátu JSON. Podporuje tokeny. | — |
| Expression | JavaScript výraz pro podmínku pokračování cyklu. Podporuje tokeny. Vyhodnocuje se na začátku a po každé iteraci. | parseInt('{var:LoopIndex}') < 10 |
| Limit | Maximální počet iterací (ochrana proti nekonečné smyčce). Výchozí hodnota: 1000. |
100 |
| Actions | Vnořené akce provedené v každé iteraci. | — |
| Label | Popisný štítek zobrazený v editoru akcí. | — |
| Disabled | Pokud je akce deaktivována, její vykonání se přeskočí. | Vypnuto / Zapnuto |
Proměnné smyčky¶
V každé iteraci jsou k dispozici tyto proměnné:
| Proměnná | Alias | Popis |
|---|---|---|
{loop:Index} |
{wf:LOOP_INDEX} |
Pořadové číslo aktuální iterace (od 1, resp. od 0 u {wf:}). |
{loop:ItemKey} |
{wf:LOOP_ITEM_KEY} |
Klíč aktuální položky datového zdroje. |
{loop:ItemValue} |
{wf:LOOP_ITEM_VALUE} |
Hodnota aktuální položky datového zdroje. |
{loop:ItemsCount} |
{wf:LOOP_ITEMS_COUNT} |
Celkový počet položek v datovém zdroji. |
Viz také Token {wf:}.
Typy datových zdrojů¶
InfinityLoop¶
Nekonečný cyklus, který se ukončí pouze podmínkou Expression, akcí Break nebo dosažením Limit.
Numeric¶
Iterace přes číselný rozsah nebo výčet. Formáty DataSource:
- Rozsah: 1..10 nebo [5..30]
- Výčet: 1,5,6,7 nebo 1|5|6|7
SeparatedString¶
Iterace přes oddělený řetězec. DataSourceConfiguration (JSON):
- Separator — pole oddělovačů (výchozí: [";", "\r\n"])
- Trim — oříznutí mezer (výchozí: true)
- RemoveEmptyEntries — vynechat prázdné hodnoty (výchozí: true)
- Reverse — obrátit pořadí (výchozí: false)
- Distinct — odstranit duplicity (výchozí: false)
JSON¶
Iterace přes JSON pole nebo objekt. DataSourceConfiguration (JSON):
- KeyExpression — JSONPath výraz pro klíč
- ValueExpression — JSONPath výraz pro hodnotu
- Reverse — obrátit pořadí (výchozí: false)
XML¶
Iterace přes XML uzly. DataSourceConfiguration (JSON):
- SourceExpression — XPath výraz pro výběr uzlů
- KeyExpression — XPath výraz pro klíč
- ValueExpression — XPath výraz pro hodnotu
- Reverse — obrátit pořadí (výchozí: false)
SP¶
Iterace přes položky SharePoint seznamu. DataSource obsahuje název seznamu. DataSourceConfiguration (JSON):
- CAML — CAML dotaz pro filtrování
- Scope — rozsah dotazu
- KeyField — interní název pole pro klíč
- ValueField — interní název pole pro hodnotu
- UseContextItem — nastavit každou položku jako kontextovou (výchozí: false)
Příklady¶
Příklad: Iterace přes oddělený řetězec¶
<Loop Type="SeparatedString" DataSource="{item:Recipients}">
<Actions>
<SendMail
EmailTo="{loop:ItemValue}"
EmailSubject="Oznámení pro {loop:ItemValue}" />
</Actions>
</Loop>
Příklad: Iterace přes JSON pole¶
<Loop Type="JSON" DataSource="{var:ProductsJson}">
<Actions>
<SetVariable Variable="CurrentProduct" Value="{loop:ItemValue}" />
</Actions>
</Loop>
Příklad: Iterace přes položky SharePoint seznamu¶
<Loop Type="SP" DataSource="Tasks"
DataSourceConfiguration='{"CAML":"<Eq><FieldRef Name=\"Status\" /><Value Type=\"Text\">Open</Value></Eq>","UseContextItem":true}'>
<Actions>
<SetFieldValue TargetField="Status" Value="Closed" />
</Actions>
</Loop>