Frage

Um eine benutzerdefinierte BPM-Anwendung zu entwickeln, gibt es eine Funktion, die wir mit einem anderen BPM-Engine-Anbieter verwendet haben und es auch mit Camunda verwenden. Die gezielte Funktionalität besteht darin, ausgeführte Prozessinstanzen auf eine bestimmte Aufgabe, die andere als der aktuell aktiven Task eingestellt / zurückgesetzt wird. Aus unserer Perspektive, die erforderlich ist, wenn z. B.:

  • Authoring Process-Instanzen aufgrund der Prozessversionsmigration
  • Auflösen von Vorfällen
  • unberücksichtigt falsche Verwendung von einem Benutzer

Endlich habe ich nicht wirklich eine einfache Funktion dafür gefunden, dies zu tun, er hat einen benutzerdefinierten Code erarbeitet, der mit einigen Einschränkungen arbeitete. Es gibt einige Schwächen und Unsicherheiten in diesem Code, so dass ich die folgende Frage habe :

Hat ich eine alternative Möglichkeit verpasst, um dies zu erreichen, oder ist der folgende Ansatz korrekt oder ist es im Moment sogar vollständig nicht unterstützt?

Die aktuellen Schwächen IMHO:

  • zuerst und am wichtigsten: Keine historische Taskinstanz wird gespeichert . Diese Ursachen, dass es nicht nachverfolgbar ist, wer oder selbst wenn die Aufgabe ausgelöst / aktiviert / gestartet wurde. Ich habe den folgenden Beitrag auf Camunda Google Group gefunden ( post ) was sagt, dass es ist An diesem Punkt korrigieren, weil es eine Aufgabe aus dem Prozessdefinitionsbereich ist, aber Durch Verwendung einer Aufgabendefinition aus der zugrunde liegenden Prozessdefinition sollte ich Sei "in Scope" ?!
  • Der Code basiert auf der internen Implementierung und nicht auf der offiziellen Schnittstelle
  • An dieser Stelle müssen viel "Bootstrap" / Initialisierung manuell erfolgen Aber als Benutzer (kein Entwickler von Camunda) bin ich mir nicht völlig bewusst, was erforderlich ist und Was ist optional
  • Einige Teile wie Parsing-Ausdrücke von der Aufgabendefinition fehlgeschlagen (siehe Code kommentiert) aber das kann durch falsche Verwendung verursacht werden

Hier ist der Code (experimenteller Snippet unserer Camunda-Servicefassade):

generasacodicetagpre.

Ich schätze jeden Hinweis oder einen Ratschlag: -)

War es hilfreich?

Lösung

Ich würde nicht mit der Prozessinstanz auf diesem Niveau verwandeln, wie Sie bereits aufgefallen sind, wenn Sie Camundas-Dienste umgehen.Wenn wir mit einem ähnlichen Problem konfrontiert sind, gingen wir folgendermaßen:

    .
  1. Abbrechen der Prozessinstanz der alten Prozessversion
  2. Starten Sie eine neue Instanz des erweiterten Prozesses und leiten Sie es programmgesteuert an den gewünschten Zustand an ...
  3. Eine andere Option: Modellieren Sie einen Einstiegspunkt (Nachrichtenstart-Ereignis) in der neuen Prozessversion.Starten Sie dann, anstatt die programmgesteuerte Weiterleitung der Instanz in den gewünschten Zustand weiterzuleiten, einfach die neue Instanz über das Ereignis starten und alle Prozessvariablen der alten Instanz weitergeben ...

Andere Tipps

Beginnend mit CAMUNDA 7.3 können Sie die Modifikation der Prozessinstanz verwenden, um jede Aktivität in einem Prozess zu starten und jede aktive Aktivitätsinstanz zu stornieren.

Beispiel:

generasacodicetagpre.

siehe http:// docs.Camunda.org/7.3/Guides/user-Guide/#Process-Engine-Process-instance-Modifizierung für die Dokumentation.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top