Hoe kun je logica configureren in Node-RED gebruik makend van PA berichten

De DataFlow-editor (ook bekend als Node-RED) is een flow-based, low-code development tool. Hiermee is het mogelijk om applicatielogica te configureren, zoals het maken van REST-endpoints en interfaces om te communiceren met andere applicaties.

Het is mogelijk en handig om verbinding te maken met de message broker van Plant Applications en te triggeren op specifieke berichttypen en -voorwaarden om de logica te maken.

Pallette beheren

Plant Applications ondersteunt AMQP, Kafka en kan worden geconfigureerd om MQTT te ondersteunen (zie: Hoe MQTT voor PA-berichten inschakelen). Node-RED editor heeft standaard de MQTT node, maar andere palettes kunnen worden geïnstalleerd voor de andere protocollen.

Flow configuratie

Open de editor en maak een nieuwe flow en sleep het mqtt-in node in de flow.

Bewerk de node en maak een nieuwe serververbinding met de Plant Applications-server voor AMQP en MQTT (RabbitMQ) en de Plant Applications Web Client server voor Kafka. Voer in het tabblad beveiliging de gegevens in, afhankelijk van het protocol.

Zet de node Topic naar PlantApps/# om alle berichten te ontvangen. Dit kan ook gezet worden naar bv PlantApps/DowntimeEvent/#, dit triggert dan enkel voor downtime events. De laatste # kan ook nog vervangen worden voor bv een specifiek unitId uit het plant model.

Voeg de Debug node toe aan de MQTT node en deploy de flow. Bekijk het debug scherm en de berichten in JSON die worden gestuurd.

Voeg een JSON node toe om de tekst te converteren naar een JSON object.

Voeg een Switch node toe om de logica te splitsen o.b.v. event type of gebruik het als filter. Dit kan natuurlijk voor elke property in het bericht zoals unitId of data.ProductionPlanStatusId om de logic ate filteren op order status wissel.

Voeg een Debug node toe aan beide switch outputs en deploy om te zien dat berichten worden gefilterd en dat het debug node alleen zijn eigen eventTypes logt..

Deze flow ontvat de Plant Applications berichten en wordt gefilterd op de events voor downtime en orders (productionplan) events. Verdere logica of andere events kunnen nu naar wens worden geconfigureerd om stored procedures, externe API's of interfaces aan te roepen zoals benodigd voor de applicatie.