logologo
Start
Handleiding
Ontwikkeling
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Start
Handleiding
Ontwikkeling
Plugins
API
logologo
Workflow
Overzicht
Snelstart

Triggers

Overzicht
Tabel-events
Geplande taken
Pre-actie-event
Post-actie-event
Aangepast actie-event
Goedkeuring
Webhook

Node

Overzicht

Artificiële intelligentie

Groot taalmodel (LLM)

Procesbesturing

Voorwaarde
Meervoudige voorwaardelijke vertakking
Lus
Variabelen
Parallelle vertakking
Workflow aanroepen
Procesoutput
JSON-variabelemapping
Vertraging
Einde

Berekening

Berekening
Datumberekening
JSON-berekening

Gegevensoperaties

Gegevens toevoegen
Gegevens bijwerken
Gegevens opvragen
Gegevens verwijderen
SQL-operatie

Handmatige verwerking

Handmatige verwerking
Goedkeuring
CC

Types uitbreiden

HTTP-request
JavaScript-script
Notificatie
E-mail verzenden
Respons
Responsbericht
Variabelen
Uitvoeringslogboek
Versiebeheer
Geavanceerde opties

Extensie-ontwikkeling

Overzicht
Triggertypes uitbreiden
Nodetype uitbreiden
API-referentie
Previous PageMeervoudige voorwaardelijke vertakking
Next PageVariabelen
TIP

Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie

#Lus

This feature is provided by the plugin «Workflow: Lus-node»

#Introductie

Een lus is vergelijkbaar met syntactische structuren zoals for/while/forEach in programmeertalen. U kunt een lus-node gebruiken wanneer u bepaalde bewerkingen een aantal keer of voor een specifieke gegevenscollectie (array) wilt herhalen.

#Installatie

Dit is een ingebouwde plugin en hoeft niet geïnstalleerd te worden.

#Een node aanmaken

Klik in de configuratie-interface van de workflow op de plusknop ("+") in de flow om een "Lus"-node toe te voegen:

Lus-node aanmaken

Nadat u een lus-node hebt aangemaakt, wordt er een interne lus-vertakking gegenereerd. U kunt binnen deze vertakking een willekeurig aantal nodes toevoegen. Deze nodes kunnen niet alleen gebruikmaken van variabelen uit de workflow-context, maar ook van lokale variabelen uit de lus-context, zoals het data-object dat bij elke iteratie in de lus-collectie wordt verwerkt, of de index van het aantal lussen (de index begint te tellen vanaf 0). De scope van lokale variabelen is beperkt tot binnen de lus. Bij geneste lussen kunt u de lokale variabelen van de specifieke lus op elk niveau gebruiken.

#Node-configuratie

20241016135326

#Lus-object

De lus verwerkt verschillende data-typen van het lus-object op verschillende manieren:

  1. Array: Dit is de meest voorkomende situatie. U kunt meestal een variabele selecteren uit de workflow-context, zoals de meerdere dataresultaten van een query-node, of vooraf geladen één-op-veel relatiegegevens. Als een array is geselecteerd, zal de lus-node elk element in de array doorlopen, waarbij het huidige element bij elke iteratie wordt toegewezen aan een lokale variabele in de lus-context.

  2. Getal: Wanneer de geselecteerde variabele een getal is, wordt dit gebruikt als het aantal iteraties. De waarde moet een positief geheel getal zijn; negatieve getallen zullen de lus niet ingaan en het decimale deel van een getal wordt genegeerd. De index van het aantal lussen in de lokale variabele is ook de waarde van het lus-object. Deze waarde begint bij 0. Als het lus-object bijvoorbeeld het getal 5 is, zullen het object en de index in elke lus achtereenvolgens zijn: 0, 1, 2, 3, 4.

  3. Tekenreeks: Wanneer de geselecteerde variabele een tekenreeks is, wordt de lengte ervan gebruikt als het aantal iteraties, waarbij elk teken van de tekenreeks op basis van de index wordt verwerkt.

  4. Overig: Andere typen waarden (inclusief objecttypen) worden behandeld als een lus-object met één item en zullen slechts één keer doorlopen. In dergelijke situaties is het gebruik van een lus meestal niet nodig.

Naast het selecteren van een variabele, kunt u ook direct constanten invoeren voor getal- en tekenreekstypen. Als u bijvoorbeeld 5 (getaltype) invoert, zal de lus-node 5 keer doorlopen. Als u abc (tekenreekstype) invoert, zal de lus-node 3 keer doorlopen, waarbij de tekens a, b en c afzonderlijk worden verwerkt. Kies in de variabele-selectietool het gewenste type voor de constante.

#Lus-conditie

Vanaf versie v1.4.0-beta zijn er opties toegevoegd met betrekking tot lus-condities. U kunt lus-condities inschakelen in de node-configuratie.

Conditie

Vergelijkbaar met de conditie-configuratie in een conditie-node, kunt u configuraties combineren en variabelen uit de huidige lus gebruiken, zoals het lus-object, de lus-index, enz.

Controle-moment

Vergelijkbaar met de while en do/while constructies in programmeertalen, kunt u ervoor kiezen om de geconfigureerde conditie te evalueren vóór elke lus begint of nadat elke lus eindigt. Evaluatie van de post-conditie maakt het mogelijk dat de andere nodes binnen de lus-body één keer worden uitgevoerd voordat de conditie wordt gecontroleerd.

Wanneer niet aan de conditie is voldaan

Vergelijkbaar met de break en continue statements in programmeertalen, kunt u ervoor kiezen om de lus te verlaten of door te gaan naar de volgende iteratie.

#Foutafhandeling in lus-nodes

Vanaf versie v1.4.0-beta, wanneer een node binnen de lus niet wordt uitgevoerd (door niet-vervulde condities, fouten, enz.), kunt u de verdere flow configureren. Er worden drie afhandelingsmethoden ondersteund:

  • De workflow verlaten (zoals throw in programmeren)
  • De lus verlaten en de workflow voortzetten (zoals break in programmeren)
  • Doorgaan naar het volgende lus-object (zoals continue in programmeren)

De standaardinstelling is "De workflow verlaten", maar u kunt dit naar behoefte aanpassen.

#Voorbeeld

Wanneer een bestelling wordt geplaatst, moet u bijvoorbeeld de voorraad controleren voor elk product in de bestelling. Als de voorraad voldoende is, wordt deze afgeschreven; anders wordt het product in de bestelregel als ongeldig bijgewerkt.

  1. Maak drie collecties aan: Producten <-(1:m)-- Bestelregels --(m:1)-> Bestellingen. Het datamodel is als volgt:

    Collectie Bestellingen

    VeldnaamVeldtype
    BestelregelsEén-op-veel (Bestelregels)
    Totaalprijs bestellingGetal

    Collectie Bestelregels

    VeldnaamVeldtype
    ProductVeel-op-één (Product)
    AantalGetal

    Collectie Producten

    VeldnaamVeldtype
    ProductnaamEnkele regel tekst
    PrijsGetal
    VoorraadGeheel getal
  2. Maak een workflow aan. Selecteer voor de trigger "Collectie-gebeurtenis" en kies de collectie "Bestellingen" om te triggeren "Na toevoegen van record". U moet ook configureren dat de relatiegegevens van de collectie "Bestelregels" en de collectie "Producten" onder de details vooraf worden geladen:

    Lus-node_Voorbeeld_Trigger-configuratie

  3. Maak een lus-node aan en selecteer het lus-object als "Triggerdata / Bestelregels", wat betekent dat elke record in de collectie Bestelregels wordt verwerkt:

    Lus-node_Voorbeeld_Lus-node configuratie

  4. Maak binnen de lus-node een "Conditie"-node aan om te controleren of de voorraad van het product voldoende is:

    Lus-node_Voorbeeld_Conditie-node configuratie

  5. Als de voorraad voldoende is, maakt u in de "Ja"-vertakking een "Berekening"-node en een "Record bijwerken"-node aan om de berekende afgeschreven voorraad bij te werken in de corresponderende productrecord:

    Lus-node_Voorbeeld_Berekening-node configuratie

    Lus-node_Voorbeeld_Voorraad bijwerken-node configuratie

  6. Anders maakt u in de "Nee"-vertakking een "Record bijwerken"-node aan om de status van de bestelregel bij te werken naar "ongeldig":

    Lus-node_Voorbeeld_Bestelregel bijwerken-node configuratie

De algehele workflow-structuur is als volgt:

Lus-node_Voorbeeld_Workflow-structuur

Nadat u deze workflow hebt geconfigureerd en geactiveerd, wordt bij het aanmaken van een nieuwe bestelling automatisch de voorraad van de producten in de bestelregels gecontroleerd. Als de voorraad voldoende is, wordt deze afgeschreven; anders wordt het product in de bestelregel bijgewerkt naar ongeldig (zodat een geldige totale bestelprijs kan worden berekend).