External Tasks (LowCode)
External Tasks verbinden Node-RED mit der ProcessCube® Engine. Ein Custom Node registriert sich als Worker für ein bestimmtes BPMN-Topic und verarbeitet Tasks, die im Prozess anfallen.
Funktionsweise
Ablauf
- Registrierung — Der Node-RED Flow enthält einen External-Task-Node, der sich bei der Engine für ein Topic anmeldet
- Long-Polling — Der Worker wartet per HTTP Long-Polling auf neue Tasks
- Fetch & Lock — Sobald ein BPMN-Prozess einen Service Task mit dem passenden Topic erreicht, wird der Task an den Worker zugewiesen
- Verarbeitung — Der Node-RED Flow verarbeitet die Task-Daten
- Ergebnis — Das Ergebnis wird an die Engine zurückgemeldet, der Prozess läuft weiter
Beispiel: Hello Node mit External Task
Der mitgelieferte Hello Node zeigt die Integration:
module.exports = function(RED) {
function HelloNode(config) {
RED.nodes.createNode(this, config);
const node = this;
node.on('input', function(msg) {
const greeting = config.greeting || 'Hello';
msg.payload = `${greeting}, ${msg.payload}!`;
node.send(msg);
});
}
RED.nodes.registerType("hello", HelloNode);
}Der zugehörige BPMN-Prozess (Sample_With_Custome_Node.bpmn) definiert einen Service Task mit dem Topic, auf das der Node reagiert.
BPMN-Prozess erstellen
Damit ein External Task funktioniert, muss im BPMN-Prozess ein Service Task mit dem Typ external und einem passenden Topic definiert sein:
Start → Service Task (Topic: "hello") → EndDie Prozessdefinition wird im processes/-Verzeichnis abgelegt und beim Engine-Start automatisch geladen.
Docker-Build
Beim Bauen des LowCode Docker-Images werden die Custom Nodes in das Image integriert:
Nächste Schritte
- Custom Nodes — Eigene Nodes entwickeln
- BPMN-Prozesse — Mitgelieferte Beispielprozesse
- Debugging — Breakpoints in External Task Nodes setzen