Diese Dokumentation wurde automatisch von KI übersetzt.
API-Referenz
Server
Die im Server-Paket verfügbare API sieht wie folgt aus:
PluginWorkflowServer
Die Klasse des Workflow-Plugins.
In der Regel können Sie an einer beliebigen Stelle, an der Sie zur Laufzeit der Anwendung Zugriff auf die Anwendungsinstanz app haben, mit app.pm.get<PluginWorkflowServer>(PluginWorkflowServer) die Instanz des Workflow-Plugins abrufen (im Folgenden mit plugin bezeichnet).
registerTrigger()
Registriert einen neuen Triggertyp.
Signatur
registerTrigger(type: string, trigger: typeof Trigger | Trigger })
Parameter
Beispiel
registerInstruction()
Registriert einen neuen Node-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 beim Eintreten eines bestimmten Events den entsprechenden Workflow zu starten.
Signatur
trigger(workflow: Workflow, context: any)
Parameter
context ist derzeit erforderlich; ohne Angabe wird der Workflow nicht ausgelöst.
Beispiel
resume()
Setzt einen pausierten Workflow mit einer bestimmten Node-Aufgabe fort.
- Nur Workflows im Wartezustand (
EXECUTION_STATUS.STARTED) können fortgesetzt werden. - Nur Node-Tasks im Wartezustand (
JOB_STATUS.PENDING) können fortgesetzt werden.
Signatur
resume(job: JobModel)
Parameter
Das übergebene Task-Objekt sollte aktualisiert sein und üblicherweise status auf einen anderen Wert als JOB_STATUS.PENDING gesetzt haben, sonst bleibt es im Wartezustand.
Beispiel
Siehe Quellcode.
Trigger
Basis-Triggerklasse zum Erweitern um eigene Triggertypen.
on/off registrieren bzw. deregistrieren Event-Listener beim Aktivieren/Deaktivieren des Workflows; der übergebene Parameter ist die Workflow-Instanz, sodass Sie sie entsprechend der Konfiguration verarbeiten können. Triggertypen, die bereits global lauschen, müssen diese Methoden nicht implementieren. Beispielsweise können Sie in einem Cron-Trigger den Timer in on registrieren und in off wieder abmelden.
Instruction
Basisklasse für Instructions zum Erweitern um eigene Node-Typen.
Zugehörige Typen
getScope lässt sich anhand der Implementierung des Loop-Nodes nachvollziehen und wird genutzt, um den Branch lokale Variablen bereitzustellen.
EXECUTION_STATUS
Konstanten für den Status eines Ausführungsplans eines Workflows.
Außer den ersten drei stehen alle anderen Werte für Fehlerzustände, sie unterscheiden sich aber im Grund des Fehlschlags.
JOB_STATUS
Konstanten für den Status eines Node-Tasks im Workflow.
Client
Die im Client-Paket verfügbare API sieht wie folgt aus:
PluginWorkflowClient
registerTrigger()
Registriert das Konfigurationspanel für einen Triggertyp.
Signatur
registerTrigger(type: string, trigger: typeof Trigger | Trigger): void
Parameter
registerInstruction()
Registriert das Konfigurationspanel für einen Node-Typ.
Signatur
registerInstruction(type: string, instruction: typeof Instruction | Instruction): void
Parameter
registerInstructionGroup()
Registriert eine Node-Gruppe. NocoBase liefert standardmäßig vier Node-Gruppen:
'control': Ablaufsteuerung'collection': Datenoperationen'manual': Manuelle Verarbeitung'extended': Weitere Erweiterungen
Wenn Sie eine andere Gruppe hinzufügen möchten, verwenden Sie diese Methode.
Signatur
registerInstructionGroup(type: string, group: { label: string }): void
Parameter
Beispiel
Trigger
Basis-Triggerklasse zum Erweitern um eigene Triggertypen.
- Wenn
useVariablesnicht gesetzt ist, bietet dieser Triggertyp keine Wertentnahme an, und seine Kontextdaten können in den Workflow-Nodes nicht ausgewählt werden.
Instruction
Basisklasse für Instructions zum Erweitern um eigene Node-Typen.
Zugehörige Typen
- Wenn
useVariablesnicht gesetzt ist, bietet dieser Node-Typ keine Wertentnahme an, und seine Ergebnisdaten können in Workflow-Nodes nicht ausgewählt werden. Wenn der Wert eindeutig ist (nicht auswählbar), reicht ein statischer Inhalt zur Beschreibung der Information (Beispiel: Quellcode des Calculation-Nodes). Falls auswählbar (z. B. eine Eigenschaft eines Objekts), kann eine eigene Auswahl-Komponente bereitgestellt werden (Beispiel: Quellcode des Create-Nodes). Componentist die eigene Render-Komponente des Nodes; verwenden Sie sie, wenn das Standard-Rendering nicht ausreicht und Sie es vollständig ersetzen möchten. Etwa wenn ein Branch-Start-Node zusätzliche Action-Buttons oder andere Interaktionen anbieten soll (Beispiel: Parallel-Branch Quellcode).useInitializersliefert Methoden zur Initialisierung von Blocks, beispielsweise um in einem Manual-Node abhängig vom Upstream-Node entsprechende Benutzer-Blocks zu initialisieren. Wenn definiert, sind diese in der Konfiguration des Manual-Nodes verfügbar (Beispiel: Quellcode des Create-Nodes).isAvailableentscheidet, ob der Node in der aktuellen Umgebung (aktueller Workflow, Upstream-Nodes, aktueller Branch-Index usw.) verfügbar ist (hinzugefügt werden kann).

