Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > Datenbankaktion mit groovy löst (Folge)prozess auf Insert/Update aus?

Datenbankaktion mit groovy löst (Folge)prozess auf Insert/Update aus?

Hallo,

eine (hoffentlich einfache) Frage (vermutlich auch schonmal hier gefragt, aber ehrlich: ich habe zuerst das Forum durchsucht!):

in einem Prozess wird ein Groovy-Skript abgearbeitet, das einige Datensätze in eine Intrexx-DG einfügt.
Nun hätte ich gerne, dass ein anderer Prozess, der sonst auch auf das Einfügen in diese DG reagiert, das 'mitbekommt' und genau so abgearbeitet wird, als hätte ein Benutzer im Portal einen Datensatz eingefügt/geändert.

Das scheint nicht zu gehen, oder ich weiß eben nicht wie. Egal, wo ich auch 'auf interne Ereignisse reagieren' einstelle und auch wenn ich den anderen Prozess nach meinem Groovy-Skript einbinde: es wird nicht auf die eingefügten Datensätze reagiert.

Gibt es einen Weg, dass ein Intrexx-Prozess auf eine Groovy-Datenbankaktion reagiert?

Danke vorab für Eure Hilfe,
Gerd
27.08.2016 11:22 von bigpoint2
Das ist meines Erachtens nicht möglich.
was du machen könntest ist ein Flag in der Datengruppe zu verwenden welches erstmal NULL bleibt.
Dann konfigurierst du deinen Ereignisbehandler so, dass er auch auf Timeraktionen reagiert.
Anschließend benötigst du noch einen Globalen Timer der alle Datensätze durchläuft bei denen das Flag NULL ist.
Allein dadurch reagiert dann der Ereignisbehandler, wenn der Timer gestartet wird.
Den Timer kannst du dann aus Groovy heraus triggern.

Nicht vergessen das Flag bspw. auf true zu setzen.
28.08.2016 09:28 von MartinW
Hallo!

Ich würde mir die DatensatzID des eingefügten/geänderten Datensatzes in den g_sharedState.NeueLID = LID schreiben
und nach dem Groovyprozess eine Datengruppenaktion auslösen.
Filter ID = Systemwert =>Verabeitungskontext Wert = NeueLID

VG
G. Krause
10.09.2016 17:27 von guentkrau
Hallo guentkrau,

das ist natürlich ein guter Gedanke - vermutlich ist dann gemeint, diese Variable aus dem Verarbeitungskontext im Folgenden zu nutzen, um damit einen neuen Datensatz anzulegen, auf den dann der andere Prozess wie gewünscht reagieren kann.

Ich hatte dummerweise das Problem nicht in allen Details geschildert: im Groovy-Prozess wird eine Schleife durchlaufen.
Also können durchaus mehrere neue Datensätze entstehen, auf die auf jeden Einzelnen per anderem Prozess reagiert werden soll.
Ich fürchte, dazu taugt diese Lösung dann nicht, denn ich kann ja schlecht aus der Groovy-Schleife 'auftauchen', eine Datengruppenaktion durchführen und dann wieder in die Schleife einsteigen.

Danke auf jeden Fall für den Ansatz!

Gerd
18.09.2016 10:18 von bigpoint2
Hallo Gerd,

ist meine Variante an der Stelle auch nicht möglich?
19.09.2016 09:08 von MartinW
Hallo Gerd,

bin durch Zufall darüber gestolpert. Ich hatte ein ähnliches Problem und hatte es wie folgt gelöst.
Im ersten Schritt habe ich eine eine Groovydatei (Ajax) aufgerufen und habe mir die/das Ergebnis zurückgeben lassen (in deinem Fall dein erstes groovy-skript mit der schleife)
ix.ajax().requestAppGroovy("file.groovy", {
dataType: "json",
data: {
"param_a": "1",
...
},
success: function (data) {
alert(data);
--> hier dann 2. Schritt..
},

Im zweite Schritt dann UserWorkflowEvent mit Requestparametern triggern:
triggerUserWorkflowEvent("", {});
wobei dein Requestparameter eben das Ergebnis deiner Schleife ist (wahrscheinlich eine Liste mit deinen DS-Id´s).

Vielleicht klappt es so.

Gruß
Oskar
13.10.2016 06:57 von Oskar
Hallo,

danke an Oskar und Martin für die Tipps und entschuldigt die lange Reaktionszeit.

(at)Oskar: das klingt gut, aber ist mir evtl. noch etwas zu 'advanced', weiß nicht, ob ich mich da rantraue...

(at)Martin: das könnte so funktionieren, gute Idee. Einen globalen Timer kann ich also direkt aus groovy triggern und dann beginnt der darauf reagierende Ereignisbehandler sofort 'zu laufen'?

Grüße,
Gerd
22.10.2016 10:06 von bigpoint2
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg