Sterowanie
Pięć bloków steruje przepływem wykonania scenariusza.
Przypomnienie: każdy blok ma również niejawne porty in, error i done —
zob. Porty i połączenia.
Input / Param (wejście / parametr)
Section titled “Input / Param (wejście / parametr)”Deklaruje parametry scenariusza.
| Wejścia | brak |
| Wyjścia | value — jeden obiekt { name: value, … } |
| Konfiguracja | name (nazwa parametru), valueType (jego typ i wartość domyślna) |
Wartości podaje się przy uruchomieniu, przez --param name=value w wierszu
poleceń, albo są pobierane interaktywnie, jeśli wykonanie dotrze do bloku
bez dostępnej wartości.
Wejście „baseUrl” (ciąg znaków) ──► port env żądaniaOutput / Return (wyjście / zwrot)
Section titled “Output / Return (wyjście / zwrot)”Udostępnia wynik temu, kto wywołał scenariusz.
| Wejścia | value |
| Wyjścia | brak — to ujście: ani error, ani done |
| Konfiguracja | name |
Scenariusz wywołany akcją Uruchom scenariusz udostępnia każde ze swoich
wyjść na porcie output:<name> węzła wywołującego.
If (jeżeli)
Section titled “If (jeżeli)”Rozgałęzienie dwudrożne.
| Wejścia | left, right |
| Wyjścia | then, else |
| Konfiguracja | operator: lt, lte, eq, gte, gt, ne, contains — a ponadto left i right jako wartości literalne |
Wskazówka: jeśli żaden z operandów nie jest podłączony ani wypełniony, blok
sprawdza po prostu prawdziwość sygnału odebranego na in. To odpowiednik
„jeśli udało się dojść aż tutaj”, bez jawnego warunku.
Switch (przełącznik)
Section titled “Switch (przełącznik)”Rozgałęzienie N-drożne.
| Wejścia | on |
| Wyjścia | jeden port case-<id> na każdy zadeklarowany przypadek, a ponadto default |
| Konfiguracja | cases: lista elementów { id, value } |
Rozwiązanie lepsze niż kaskada bloków If, gdy tylko liczba wyjść przekracza dwa: każdy przypadek to osobne połączenie, czytelne wizualnie.
Retry (ponowienie)
Section titled “Retry (ponowienie)”Granica ponawiania po błędzie.
| Wejścia | maxAttempts, delay |
| Wyjścia | attempt (każda próba), exhausted (próby wyczerpane) |
| Konfiguracja | zob. poniżej |
| Pole | Domyślnie | Rola |
|---|---|---|
maxAttempts | 3 | Maksymalna liczba prób |
backoff | fixed | fixed, linear lub exponential |
delay + delayUnit | — | Opóźnienie bazowe (ms, s, min) |
factor | 2 | Współczynnik wzrostu w trybie wykładniczym |
maxDelay + maxDelayUnit | — | Górna granica opóźnienia |
retryOnError | true | Ponawianie przy błędzie |
retryOnFailure | false | Ponawianie przy niepowodzeniu biznesowym |
retryOnStatus | — | Lista statusów HTTP, na przykład [429, 503] |
Podgraf podłączony do attempt stanowi zakres objęty ponawianiem. W razie
powodzenia wyjście następuje przez done. Ten blok nie ma portu error —
sam jest tą granicą.
Retry (3, wykładniczy, [429,503]) ├─ attempt ──► Żądanie HTTP ──► Assert └─ exhausted ──► Throw „usługa niedostępna”