Hallo zusammen,
in unserer Domäne (Logistik) gibt es ein typisches Prozessmodellierungs-Pattern, das mit Umlagerungen in den zwischen den Aktivitäten fließenden Business Objekten (BOs) zu tun hat:
Gegeben sei ein BPMN Grob-Ablauf A->B->C wie unten dargestellt, wobei zwischen diesen Aktivitäten (z.B. User-Tasks mit komplexer innerer Umlagerungs-Logik) folgende Datenobjekte fließen: Jede ankommende BO-A-Nachricht startet eine Prozessinstanz und führt zu einem bearbeiteten BO-A-Objekt aus Aktivität A. In Folge-Aktivität B aber werden mehrere BO-A-Objekte (z.B. na=5, aber variierend, z.B. aus verschiedenen Prozessinstanzen stammend) zusammengefasst zu nb<na (z.B. 2, aber variierend) BO-B-Objekten, und in Aktivität C schließlich werden nb BO-Bs zu nc>nb (z.B. 4, aber variierend) BO-Cs verarbeitet.
Das Problem liegt nun in der Prozessinstanz-Zuordnung der Daten. Im ersten Modell würde jede eingehende BO-A-Nachricht (z.B. 5) eine Prozessinstanz erzeugen und zunächt in A bearbeitet werden. Mehrere BO-As aus A müssten aber durch Aktivität B zu einem BO-B kombiniert werden – da blieben z.B. nur noch 2 Prozessinstanzen übrig (?). Diese würden in Aktivität C zu 4 BO-Cs verarbeitet (neue Prozessinstanzen?).
Darunter ist noch eine Variante des Modells angegeben, welche nur eine Prozessinstanz nutzt. Aber kann man das so ausführen? Eine weitere Alternative wären Repositories zwischen den Tasks.
Wie modelliert und implementiert man diesen Fall am besten mit BPMN 2.0 und speziell mit Activiti (speziell die Steuerungslogik für die Fertigstellung der Tasks)?
Für jeden Hinweis dankt
Norbert Weißenberg
[attachment=0]BPMN-Problem.jpg[/attachment]