Przejdź do głównej zawartości

Zmienne i dane w scenariuszu

Scenariusz ma trzy mechanizmy przenoszenia danych. Uzupełniają się one wzajemnie, a wiedza o tym, który wybrać, pozwala uniknąć wielu zbędnych połączeń.

Mechanizm główny: blok wytwarza wartość, ta podróżuje po połączeniu, ewentualnie przekształcona przez selektor, i dociera do wejścia następnego bloku.

Jest to jawne i czytelne: przepływ danych jest rysunkiem.

Warto go stosować do wszystkiego, co lokalne — do wyniku wywołania konsumowanego przez wywołanie kolejne.

Nazwana przestrzeń, właściwa dla danego wykonania:

  • Ustaw zmienną zapisuje wartość;
  • Pobierz zmienną odczytuje ją ponownie;
  • wartość typu variable odczytuje ją w locie, w dowolnym polu;
  • {{name}} odczytuje ją w szablonie (Transform template, Map);
  • obiekt vars odczytuje ją w akcji kodu;
  • Dodaj do listy oraz Usuń z listy mogą zapisywać wprost do zmiennej źródłowej.

Zmienna uruchomienia przesłania środowisko na czas wykonania: żądanie, które używa {{token}}, weźmie token ustawiony przez scenariusz, a nie token ze środowiska.

Warto ją stosować do tego, co globalne dla wykonania: tokena, identyfikatora korelacji, licznika — zamiast przeciągać połączenie przez cały graf.

  • Blok Input / Param deklaruje jeden lub więcej nazwanych parametrów, każdy z własnym typem. Emituje jeden obiekt { name: value, … }.

    Wartości pochodzą, w tej kolejności, z: uruchomienia (interfejs lub MCP), wiersza poleceń (--param name=value) albo z pytania interaktywnego, jeśli scenariusz dotrze do bloku bez dostępnej wartości.

  • Blok Output / Return udostępnia wywołującemu nazwany wynik. Scenariusz wywołany przez akcję Uruchom scenariusz udostępnia swoje wyjścia na porcie output:<name> wywołującego.

To właśnie umożliwia komponowanie: scenariusz „logowanie”, który zwraca token wykorzystywany ponownie przez pozostałe.

Akcja żądania ma port env: podłączenie do niego środowiska (wartość typu environment albo nazwa środowiska) powoduje wykonanie wywołania w tym środowisku.

To sposób na uruchomienie tego samego scenariusza wobec staging, a potem production, bez duplikowania czegokolwiek — wystarczy przekazać środowisko jako parametr scenariusza.

Wszystkie wartości typowane rozwiązują się tak samo w interfejsie i bez okna: własne listy, wyliczenia, podglądy środowiska. Scenariusz, który działa w interfejsie, działa też w CI.

Niejednoznaczna nazwa środowiska (dwa środowiska o tej samej nazwie) powoduje jawny błąd: należy wtedy przekazać identyfikator.

--param przyjmuje tekst; Restorm konwertuje go zgodnie z zadeklarowanym typem parametru:

Zadeklarowany typCo się przekazuje
Liczba--param Seuil=42
Wartość logiczna--param Actif=true (1, yes, on są przyjmowane)
Obliczenia na datachData albo znacznik czasu epoch
ListaJSON: --param Ids='[1,2,3]'
WyliczenieWartość, weryfikowana wobec dozwolonego zbioru
Własna listaEtykieta, przekształcana w wartość (RougeFF0000)
ŚrodowiskoNazwa albo identyfikator środowiska
PozostałeSurowy ciąg znaków

Niemożliwa konwersja powoduje niepowodzenie uruchomienia z czytelnym komunikatem, zamiast wykonania z błędną wartością.