Ga naar inhoud

Een scenario bouwen

Het canvas in het midden, met de toevoegpalet en de inspector eromheen. De vakjes verplaatst u met de muis, en de weergave kunt u verschuiven en zoomen.

De scenario-editor met de toevoegpalet open: bovenaan de gangbare vakjes, en daarna de categorieën Toevoegen, Lists, Loops, Timing, Math, Algorithmie, Data formats, Encoding, UX

Vanuit het palet, dat per categorie is geordend: besturing, samenstelling (verzoeken en verbindingen), lijsten, lussen, tijd, rekenwerk, algoritmiek, gegevensformaten, encodering, interface, hulpmiddelen.

Een actie die aan een verzoek is gekoppeld (HTTP-verzoek, SOAP-verzoek, alle verbindingsacties) vraagt u het verzoek uit het project aan te wijzen dat zij bestuurt.

Een verzoek in een actie aanwijzen legt een sterke koppeling: de actie verwijst naar het verzoek via zijn identificator, niet via een kopie. Wat daaruit volgt:

  • het verzoek blijft gedeeld — het wijzigen (URL, headers, body) verandert wat alle scenario’s die het gebruiken bij hun volgende uitvoering spelen;
  • de koppeling blijft bestaan als u het verzoek hernoemt of in de boom verplaatst: zij hangt niet af van de naam en niet van het pad;
  • vanuit het verzoek biedt de smartbar een knop “Gebruikt in scenario’s” — die somt de scenario’s op die het aanroepen en laat u ernaartoe springen. Dat is de reflex die u nodig hebt voordat u een gedeeld verzoek wijzigt;
  • een ontbrekend verzoek (verwijderd, of afwezig bij het openen van het project) laat de validatie van het scenario mislukken: de uitvoerknop blijft geblokkeerd en het foute vakje wordt gemarkeerd — nooit een scenario dat stil kapot is.

Om hetzelfde verzoek opnieuw te spelen zonder de opgeslagen versie aan te raken, wijzigt u het niet: gebruik de overschrijvingen (snelle instelling, actie-overschrijvingen, verbinding) die in Een verzoek overschrijven worden beschreven.

Elk vakje heeft eigen velden, die u direct op het vakje of in de inspector invult. De velden accepteren getypeerde waarden — tekenreeks, getal, boolean, datum, Handlebars-expressie, variabele, aangepaste lijst, geheim… — zie Variabelen en omgevingen.

Ctrl+Space start het automatisch aanvullen van variabelen en helpers in de velden die dat ondersteunen.

Trek van een uitvoerpoort naar een invoerpoort.

Twee regels om te kennen:

  1. Een invoerpoort accepteert maar één verbinding — behalve de poort in, die er zoveel accepteert als u wilt en dan als barrière werkt.
  2. Een uitvoer met een puur signaal kan geen invoer met een pure waarde voeden. Al het overige is toegestaan: een uitvoer die een waarde meebrengt, werkt ook als trigger.

Meer details: Poorten en verbindingen.

Een verbinding kan een selector dragen: een pad dat op de waarde onderweg wordt toegepast.

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

Daarmee voorkomt u dat u tussen elke aanroep en zijn afnemer een transformatievakje moet zetten. De selector stelt u in wanneer u de verbinding maakt, of later; hem leegmaken verwijdert hem.

Een actie die aan een verzoek is gekoppeld, kan dat verzoek wijzigen zonder het verzoek zelf aan te raken. Vier lagen, in deze volgorde:

  1. het verzoek zoals het is opgeslagen;
  2. een snelle instelling (quick config) die op de actie is aangewezen — zo hergebruikt u een opgeslagen variant van een verzoek direct in een scenario, zonder die opnieuw in te voeren;
  3. de overschrijvingen die u op de actie invult;
  4. de waarde die via een verbinding op de overschrijvingspoort aankomt.

Dat is de nette manier om dezelfde aanroep met drie datasets opnieuw te spelen.

Het contextmenu van een vakje biedt “Bij elk ontvangen event opnieuw spelen”. Als u die optie aanzet, verandert zij alle aangesloten invoeren in niet-blokkerende “of”-poorten: het vakje wordt opnieuw geactiveerd bij elke waarde die op een willekeurige poort binnenkomt, in plaats van te wachten tot alle waarden er zijn.

Dat is onmisbaar om een stream te verwerken (elk MQTT-bericht, elk SSE-event), en het is ook wat een voltooiingscyclus deblokkeert.

  • Een vakje Input / Param declareert de parameters van het scenario. Die worden bij de start meegegeven, op de opdrachtregel (--param nom=valeur), of tijdens de uitvoering gevraagd in de interactieve modus.
  • Een vakje Output / Return biedt een resultaat aan de aanroeper aan — handig wanneer het scenario door een ander wordt aangeroepen via de actie Scenario uitvoeren.

Restorm kan een graaf automatisch opruimen (lay-out); daarna blijven de vakjes met de hand te verplaatsen. Ctrl+Z maakt ongedaan, Ctrl+Shift+Z doet het opnieuw.

De uitvoerknop blijft geblokkeerd zolang er validatiefouten zijn: een ongeldige verbinding, een ontbrekend verzoek, een leeg verplicht veld. De foute vakjes worden gemarkeerd.