Munixo Support Forum - Kostenfreier Support für Munixo Anwender und Entwicklungspartner
Toggle navigation
E-Mail-Adresse oder Kontoname
Passwort
Merken
Anmelden
Registrieren
|
Ich habe mein Passwort vergessen
Alle Fragen
Unbeantwortet
Tags
Personen
Frage stellen
MessageBus Variante zu Bedingte Schnittstellenaufrufen
0
Punkte
Persönliche Neugier aber vielleicht für Andere auch hilfreich: ich wunder mich wie ich das folgende Szenario mit dem MessageBus implementieren kann (was ja die moderne Variante ist).
Falls ich die Information hierzu irgendwo übersehen hatte bitte ich um Verzeihung und einen kurzen Hinweis wo genau.
UseCase: im ObjectA werden Header-Daten durch einen Schnittstellenlauf erstellt. Jeder neue oder geänderte Datensatz soll über einen zweiten Schnittstellenlauf mit Positionsdaten befüllt werden. Bisher ist dazu eine zweite Schnittstelle mit Abfrage zum Workflow-state in der Konfiguration implementiert
<Configuration><Object Name="ObjectA"><Filter> <Comparison FieldName = "WorkFlowStateInProcess" ....>
Wenn der WorkflowState auf "InProcess" gesetzt wird, wird ein Schnittstellenlauf für den entsprechenden Datensatz aufgerufen. Das alles funktioniert auch ohne Probleme.
Jetzt zu meiner Frage: Wenn ist den UseCase über den MessageBus implementiere, wäre das ein DB-Event basierend auf der Tabelle mit Filter auf dem WorkflowState? Aber welchen Prozess müsste ich dann aufrufen um den Schnittstellenlauf korrekt zu erstellen? Kann ich generell via Message Bus Abonnent einen neuen Schnittstellenlauf anstossen? Wie würde die GUID des Eintrages im Objekt an die Schnittstellen-Konfiguration übergeben? (Bisher ist das in der Konfiguration in <Object><Fields><Field Name = "SomeFieldName"> hinterlegt). Oder müsste ich dazu einen eigenen ProcessorService schreiben?
Vielen Dank für eure Hilfe!
Gefragt
2 Mär
von
A.Grimm
(
1.4k
Punkte)
Antworten
Kommentar abgeben
Bitte
melden Sie sich an
oder
registrieren sich
um zu kommentieren.
Bitte
melden Sie sich an
oder
registrieren sich
um die Frage zu beantworten.
1
Antwort
0
Punkte
Um sicherzustellen, dass die Schnittstelle nur dann ausgelöst wird, wenn der WorkflowStateInProcess von 0 auf 100 geändert wird – und nicht bei jeder Änderung, während sich der Datensatz im Status InProcess befindet – müssen die Bedingungen in der Tabelle Konditionen gespeichert werden. Dafür sind zwei Einträge erforderlich:
1. Prüfung des aktuellen Workflow-Status
FeldName = WorkflowStateInProcess
Vergleich = Equals
Wert = 100
UseDataSetOldValue = false
2. Prüfung des vorherigen Workflow-Status
FeldName = WorkflowStateInProcess
Vergleich = Equals
Wert = 0
UseDataSetOldValue = true
Der Event-Verarbeitungsservice muss vom Typ "Munixo.Lua.ExecuteLuaScript" sein.
Erforderliche Mapping-Einträge:
1. DestinationParameter = InputParameters
Value = @@EventSender@@
ObjectKey = Dataset
2. Code = Hier wird das angepasste Lua-Skript hinterlegt
Weiterführende Informationen:
Lesen und Schreiben von Dataset-Werten in Client-Lua:
https://erpwiki.novicon.net/index.php?title=Technische_Dokumentation/Serverseitige_Lua-Programmierung#get_/_set_Feldwert_eines_Datensatzes
Beispiele zur Erstellung eines Prozesses in Client-Lua:
https://erpwiki.novicon.net/index.php?title=Technische_Dokumentation/Serverseitige_Lua-Programmierung#Aktionen_und_Prozesse_aufrufen
Beantwortet
20 Mär
von
Arpenik Yepremyan
(
980
Punkte)
Frage hierzu stellen
Kommentar abgeben
Bitte
melden Sie sich an
oder
registrieren sich
um zu kommentieren.
Login through an external provider
Login using Google