Hoppa till innehåll

Bygga ett scenario

Arbetsytan i mitten, paletten för att lägga till och inspektorn runt omkring. Rutorna flyttas med musen, och vyn går att panorera och zooma.

Scenarioeditorn med paletten öppen: de vanligaste rutorna högst upp, sedan kategorierna Lägg till, Listor, Loopar, Tidsstyrning, Matematik, Algoritmik, Dataformat, Kodning, UX

Från paletten, som är ordnad i kategorier: kontroll, komposition (begäranden och anslutningar), listor, loopar, tid, matematik, algoritmik, dataformat, kodning, gränssnitt, verktyg.

En åtgärd som är kopplad till en begäran (HTTP-begäran, SOAP-begäran, alla anslutningsåtgärder) kräver att du pekar ut den begäran i projektet som den styr.

Att peka ut en begäran i en åtgärd skapar en stark länk: åtgärden refererar till begäran med dess identifierare, inte till en kopia. Följderna:

  • begäran förblir delad — att ändra den (URL, headers, kropp) ändrar vad alla scenarier som använder den spelar upp, från och med nästa körning;
  • länken överlever att begäran byter namn eller flyttas i trädet: den vilar varken på namnet eller på sökvägen;
  • från begäran bär smartbaren en knapp ”Används i scenarier” — den listar de scenarier som anropar den och låter dig hoppa dit. Det är den reflex du ska ha innan du ändrar en delad begäran;
  • en saknad begäran (borttagen, eller frånvarande när projektet öppnas) gör att scenariots validering misslyckas: körknappen förblir blockerad och den felande rutan markeras — aldrig ett scenario som går sönder i tysthet.

För att spela upp samma begäran utan att röra dess sparade version ska du inte ändra den: använd överskrivningarna (snabbinställning, överskrivningar på åtgärden, koppling) som beskrivs i Skriva över en begäran.

Varje ruta har sina fält, som fylls i direkt på rutan eller i inspektorn. Fälten accepterar typade värden — sträng, tal, boolesk, datum, Handlebars-uttryck, variabel, anpassad lista, hemlighet … — se Variabler och miljöer.

Ctrl+Space startar autokompletteringen av variabler och helpers i de fält som stöder den.

Dra från en utgångsport till en ingångsport.

Två regler att känna till:

  1. En ingångsport accepterar bara en koppling — utom porten in, som accepterar hur många som helst och då fungerar som en barriär.
  2. En utgång med ren signal kan inte mata en ingång med rent värde. Allt annat är tillåtet: en utgång som bär ett värde fungerar också som utlösare.

Detaljer: Portar och kopplingar.

En koppling kan bära en väljare: en sökväg som tillämpas på värdet under transport.

data.items[0].id
body['user-id']
status

Det är det som gör att du slipper skjuta in en transformeringsruta mellan varje anrop och dess konsument. Väljaren ställs in när kopplingen skapas eller senare; att tömma den tar bort den.

En åtgärd som är kopplad till en begäran kan ändra den utan att röra själva begäran. Fyra lager, i den här ordningen:

  1. begäran som den är sparad;
  2. en snabbinställning (quick config) som pekas ut på åtgärden — det är så du återanvänder en sparad variant av en begäran direkt i ett scenario, utan att skriva in den på nytt;
  3. de överskrivningar som fylls i på åtgärden;
  4. det värde som kommer in via en koppling på överskrivningsporten.

Det är det snygga sättet att spela upp samma anrop med tre datauppsättningar.

En rutas snabbmeny erbjuder ”Spela upp igen vid varje mottagen händelse”. När alternativet är aktiverat förvandlas alla inkopplade ingångar till icke-blockerande ”eller”-grindar: rutan utlöses på nytt vid varje värde som tas emot på vilken port som helst, i stället för att vänta tills alla är på plats.

Det är oumbärligt för att bearbeta en ström (varje MQTT-meddelande, varje SSE-händelse), och det är också det som låser upp en slutföringscykel.

  • En ruta Input / Param deklarerar scenariots parametrar. De fylls i vid start, på kommandoraden (--param namn=värde), eller efterfrågas under körningen i interaktivt läge.
  • En ruta Output / Return exponerar ett resultat för anroparen — användbart när scenariot anropas av ett annat via åtgärden Kör scenario.

Restorm kan ordna en graf automatiskt (layout); rutorna går fortfarande att flytta för hand efteråt. Ctrl+Z ångrar, Ctrl+Shift+Z gör om.

Körknappen är blockerad så länge det finns valideringsfel: en ogiltig koppling, en saknad begäran, ett tomt obligatoriskt fält. De felande rutorna markeras.