Ich habe ein benutzerdefiniertes WorkItem mit einigen Parametern erstellt, die ich in WorkDefinitions.wid-Datei registriert habe. Dann erzeuge ich im Geschäftsprozess auch Variablendefinitionen für den gesamten Prozess und referenziere diese von WD.wid meines benutzerdefinierten WorkItems auf diejenigen, die in BP erstellt wurden.Wie Parameter im WorkItem gesetzt werden, um innerhalb von BPMN erreicht zu werden Prozess in jbpm-WorkBench
WorkItem führt den Code aus, der diese Parameter nach dem Start des Prozesses aus dem Formular übernimmt. Zu diesem Zweck benutze ich getParameter() - Methode; Es sieht wie folgt aus:
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
String payload = workItem.getParameter("id") + ... ;
...
manager.completeWorkItem(workItem.getId(), null);
}
Alles sieht aus und funktioniert ok, weil WorkItem erfolgreich ausgeführt wird, und ich bekomme das Ergebnis (auf der Serverseite nach workItem in BP Ausführung); Aber jetzt muss ich Response nach Ausführen der POST-Methode mit den eingegebenen Parametern erhalten. Im Code habe ich eine neue Variable erstellt, die Parameter aus Response-Body holt und ich kann das Ergebnis in der IDE-Konsole sehen, wenn ich reinen Code (ohne BPMN-Prozess) ausführe, aber ich muss diese Variable auch in WorkItem registrieren es weiter für die nächste Aufgabe in meinem BProcess.
SO Meine Frage ist: Gibt es etwas ähnlich zu getParameter() - Methode, aber etwas wie setParameter()? Wie könnte ich es in WorkItem registrieren und wie bekomme/erreiche ich diese Parameter/Variable in BProcess in jbpm (etwas wie globale Variable glaube ich).
Vielen Dank!
Ja, ich habe es auch heute versucht, HashMap anstelle von null als zweiten Parameter von compleWorkItem() zu setzen, aber wie kann ich diese Variable innerhalb des BP-Modells erreichen? Soll ich den HashMap-Schlüssel in der .wid-Datei wie alle anderen Parameter bei meinem WorkItem registrieren?Soll ich eine neue Variable für diesen Parameter in Variablendefinitionen des gesamten BProcess anlegen und dann im WorkItem-Knoten als Output Parameter darauf verweisen? Könnten Sie bitte diesen Vorgang beschreiben, denn nach der Ausführung meines Prozesses ist diese Variable noch leer. – user3467471
Wenn Sie eine Arbeitselementdefinition in KIE Workbench erstellen, können Sie sehen, dass es automatisch Code mit ** Result ** Variable ('java.util.Map') im Abschnitt ** results ** generiert. Ich glaube, dass Sie Ihre Ausgangsparameter davon erhalten können (obwohl ich es nicht versucht habe). Sie müssen diese Variable nur einer Prozessvariablen zuordnen und dann später in einer Task darauf zugreifen. – livthomas
In der Tat wird es nichts automatisch generiert, aber mit den Ergebnissen war es richtig Punkt !!! – user3467471