API-Referenz
Serverseitig
Die im serverseitigen Paket verfügbaren APIs sind im folgenden Code dargestellt:
PluginWorkflowServer
Klasse des Workflow-Plugins.
Zur Laufzeit der Anwendung können Sie an jeder Stelle, an der Sie Zugriff auf die Anwendungsinstanz app haben, mit app.pm.get<PluginWorkflowServer>(PluginWorkflowServer) die Instanz des Workflow-Plugins abrufen (im Folgenden als plugin bezeichnet).
registerTrigger()
Erweitert und registriert einen neuen Trigger-Typ.
Signatur
registerTrigger(type: string, trigger: typeof Trigger | Trigger })
Parameter
Beispiel
registerInstruction()
Erweitert und registriert einen neuen Knoten-Typ.
Signatur
registerInstruction(type: string, instruction: typeof Instruction | Instruction })
Parameter
Beispiel
trigger()
Löst einen bestimmten Workflow aus. Wird hauptsächlich in benutzerdefinierten Triggern verwendet, um den entsprechenden Workflow auszulösen, wenn ein bestimmtes benutzerdefiniertes Ereignis erkannt wird.
Signatur
trigger(workflow: Workflow, context: any)
Parameter
context ist derzeit ein Pflichtfeld. Wird es nicht angegeben, wird der Workflow nicht ausgelöst.
Beispiel
resume()
Setzt einen wartenden Workflow mit einem bestimmten Knoten-Job fort.
- Nur Workflows im Wartezustand (
EXECUTION_STATUS.STARTED) können fortgesetzt werden. - Nur Knoten-Jobs im Status „ausstehend" (
JOB_STATUS.PENDING) können fortgesetzt werden.
Signatur
resume(job: JobModel)
Parameter
Das übergebene Job-Objekt ist in der Regel ein aktualisiertes Objekt, dessen status üblicherweise auf einen anderen Wert als JOB_STATUS.PENDING gesetzt wurde, da es andernfalls weiterhin im Wartezustand verbleibt.
Beispiel
Siehe Quellcode für Details.
Trigger
Die Basisklasse für Trigger, die zum Erweitern benutzerdefinierter Trigger-Typen verwendet wird.
on/off werden zum Registrieren bzw. Deregistrieren von Event-Listenern beim Aktivieren/Deaktivieren eines Workflows verwendet. Der übergebene Parameter ist die dem Trigger zugehörige Workflow-Instanz, die entsprechend der Konfiguration verarbeitet werden kann. Manche Trigger-Typen, die bereits global lauschende Ereignisse besitzen, müssen diese beiden Methoden nicht implementieren. Beispielsweise können Sie in einem zeitgesteuerten Trigger den Timer in on registrieren und in off wieder abmelden.
Instruction
Die Basisklasse für Instruction-Typen, die zum Erweitern benutzerdefinierter Instruction-Typen verwendet wird.
Zugehörige Typen
Für getScope können Sie sich an der Implementierung des Loop-Knotens orientieren, die dazu dient, lokalen Variableninhalt für Branches bereitzustellen.
EXECUTION_STATUS
Eine Konstantentabelle für Workflow-Ausführungsplanstatus, die zur Identifizierung des aktuellen Status des entsprechenden Ausführungsplans verwendet wird.
Mit Ausnahme der ersten drei stehen alle übrigen für einen Fehlerzustand, können aber zur Beschreibung unterschiedlicher Fehlerursachen verwendet werden.
JOB_STATUS
Eine Konstantentabelle für Workflow-Knoten-Job-Status, die zur Identifizierung des aktuellen Status des entsprechenden Knoten-Jobs verwendet wird. Der vom Knoten erzeugte Status beeinflusst auch den Status des gesamten Ausführungsplans.
Clientseitig
Die im clientseitigen Paket verfügbaren APIs sind im folgenden Code dargestellt:
PluginWorkflowClientV2
Klasse des Workflow-Client-Plugins. Wird üblicherweise über this.app.pm.get('workflow') abgerufen.
registerTrigger()
Registriert das Konfigurationspanel für einen Trigger-Typ.
Signatur
registerTrigger(type: string, trigger: typeof Trigger | Trigger): void
Parameter
registerInstruction()
Registriert das Konfigurationspanel für einen Knoten-Typ.
Signatur
registerInstruction(type: string, instruction: typeof Instruction | Instruction): void
Parameter
registerInstructionGroup()
Registriert eine Knoten-Typ-Gruppe. NocoBase stellt standardmäßig 4 Knoten-Typ-Gruppen bereit:
'control': Ablaufsteuerung'collection': Datenoperationen'manual': Manuelle Verarbeitung'extended': Weitere Erweiterungen
Wenn Sie weitere Gruppen benötigen, können Sie diese Methode verwenden, um sie zu registrieren.
Signatur
registerInstructionGroup(type: string, group: { label: string }): void
Parameter
Beispiel
isWorkflowSync()
Bestimmt, ob ein Workflow im synchronen Modus läuft.
Signatur
isWorkflowSync(workflow: object): boolean
Trigger
Die Basisklasse für Trigger, die zum Erweitern benutzerdefinierter Trigger-Typen verwendet wird.
Zugehörige Typen
- Wenn
useVariablesnicht gesetzt ist, bietet dieser Trigger-Typ keine Wertabruffunktion an, und die Kontextdaten des Triggers können in den Workflow-Knoten nicht ausgewählt werden.
Instruction
Die Basisklasse für Instructions, die zum Erweitern benutzerdefinierter Knoten-Typen verwendet wird.
Zugehörige Typen
- Wenn
useVariablesnicht gesetzt ist, bietet dieser Knoten-Typ keine Wertabruffunktion an, und die Ergebnisdaten dieses Knoten-Typs können in den Workflow-Knoten nicht ausgewählt werden. Wenn der Ergebniswert einwertig ist (nicht auswählbar), können Sie statischen Inhalt zurückgeben, der die entsprechende Information ausdrückt (siehe: Quellcode des Berechnungsknotens). Wenn er auswählbar sein muss (z. B. eine Eigenschaft eines Objekts), können Sie die entsprechende Auswahlkomponente anpassen (siehe: Quellcode des Datenabfrageknotens). ComponentLoaderist eine benutzerdefinierte Rendering-Komponente für den Knoten. Wenn das Standard-Knoten-Rendering nicht ausreicht, kann es vollständig überschrieben werden, um eine benutzerdefinierte Knotenansicht zu rendern. Beispielsweise um zusätzliches Branch-Rendering für Branch-Typ-Knoten bereitzustellen (siehe: Quellcode des Bedingungsknotens).isAvailablewird hauptsächlich verwendet, um zu bestimmen, ob ein Knoten in der aktuellen Umgebung verwendet (hinzugefügt) werden kann. Die aktuelle Umgebung umfasst die Workflow-Plugin-Instanz, den aktuellen Workflow, vorgelagerte Knoten und den aktuellen Branch-Index.
Variableneingabe-Komponenten
Der Workflow stellt eine Reihe von Variableneingabe-Komponenten bereit, mit denen Benutzer Workflow-Variablen in Knoten-/Trigger-Konfigurationsformularen auswählen können.
WorkflowVariableInput
Variableneingabe, die das Auswählen einer Variable und das anschließende Weiterschreiben von Inhalten unterstützt. Geeignet für einzeilige Eingabeszenarien, die eine Mischung aus Variablenreferenzen und Freitext erfordern.

Props
WorkflowVariableTextArea
Mehrzeiliger Textbereich, der das Einfügen von Variablenreferenzen an beliebiger Cursorposition unterstützt. Geeignet für Freitextszenarien wie HTTP-Body, Vorlagentexte usw.

Props
Erbt weitere Props von antd TextArea (wie autoSize, placeholder usw.).
WorkflowTypedVariableInput
Typisierte Eingabe, die zwischen den Modi „Konstante" und „Variablenreferenz" umschaltet. Im Variablenmodus kann nur eine Variable ausgewählt werden; nach der Auswahl kann nicht weitergetippt werden. Im Konstantenmodus werden fünf Typen unterstützt: string, number, boolean, date und object.

Props
Erbt weitere Props von TypedVariableInput (ausgenommen intern verwendete extraNodes, metaTree, namespaces).
WorkflowVariableWrapper
Generischer Wrapper zum Austauschen verschiedener Eingabekomponenten in unterschiedlichen Kontexten. Wenn beispielsweise dasselbe Feld in der Trigger-Knotenkonfiguration und im Knotenkonfigurations-Drawer unterschiedliche Eingabemethoden erfordert, können Sie diese Komponente verwenden, um eine native Eingabe in eine Eingabe mit Variablenmodus-Umschaltung zu verpacken.
Props
Collection-bezogene Komponenten
Der Workflow stellt außerdem eine Reihe von Collection-bezogenen Hilfskomponenten bereit:
CollectionCascader— Datenquellenbasierter Collection-Selektor (Kaskadierung)AppendsSelect— Selektor für das Vorladen von Assoziationsfeldern (Baumauswahl)FieldsSelect— Mehrfachselektor für Collection-FelderSortFieldsInput— Sortierfeld-EingabePaginationFields— Paginierungs-Parameter-Formularfelder

