Verwenden von Subprozessen in Workflows

Subprozesse sind auf Basis von BPMN (Business Process Model and Notation) erstellte Prozesse, die als Unterprozesse in Ihre Workflows integriert werden und aus diesen heraus gestartet werden können. Außerdem können mithilfe von APIs bzw. Support-Methoden bestimmte Informationen aus den Subprozessen abgefragt oder in den übergeordneten Workflow übergeben werden.

Starten von Subprozessen aus einem Workflow

Damit Sie Subprozesse aus einem Workflow starten können, müssen Sie sie über eine Aktion im Operationsbereich (OperationFlow) in diesen einbinden.
Anmerkung: Genaue Informationen zu den Operationsbereichen finden Sie im Abschnitt helpLine OperationFlow. Jede Workflowdefinition kann nur eine Aktion zum Starten von Subprozessen enthalten.

Gehen Sie dazu vor wie folgt:

  1. Öffnen Sie den Workflow, dem Sie den Operationsbereich hinzufügen wollen, im Workflow Designer.
  2. Wählen Sie innerhalb des Operationsbereichs, in dem Sie einen Subprozess einbinden wollen, eine freie Fläche und wählen Sie im Kontextmenü auf Eintrag Verzweigung hinzufügen.

    Der Dialog Neue Aktion hinzufügen wird geöffnet.
  3. Wählen Sie die Aktion StartSubProcess aus und bestätigen mit OK.
    Der Operation Scope mit der Aktion StartSubProcess wird hinzugefügt.
  4. Anschließend müssen Sie in der Aktivität operationFlowStartActivity zwei Anpassungen machen:
    • Setzen Sie die Eigenschaft GuiAllowed auf True.
    • Wählen Sie für die Eigenschaft ObjectIdentity den Wert PrimaryObjectIdentity aus.
Nun können Sie aus einem Instruction Set, das sich ebenfalls innerhalb des Operation Scopes befinden muss mit der Support-Methode StartSubProcess einen Subprozess aus dem Workflow heraus starten.

APIs für Subprozesse

In Ihren Workflows haben Sie die Möglichkeit, in Instruction Sets oder Code Activities verschiedene Support-Methoden einzubinden, mit denen Sie bestimmte Informationen aus dem Subprozess abfragen oder für diesen festlegen können.

Diese werden im Instruction Set als statische Methoden eingebunden.

Die Methoden sind zu finden unter dem Typ Helpline.Workflow.Activities.API.SubProcessSupport.

Anmerkung: Subprozesse, die mindestens einen Start Content enthalten, können nicht über API gestartet werden.

AreAllSubbeispielsweiseCompleted

Tabelle 1. AreAllSubbeispielsweiseCompleted
Syntax AreAllSubbeispielsweiseCompleted ( ctx )
Beschreibung Über diese Methode können Sie abfragen, ob alle Subprozesse, die aus dem Hauptprozess gestartet wurden, abgeschlossen sind.
Parameter ctx: IcodeContext = Kontext, in dem die Methode aufgerufen wird
Rückgabewert Boolean

MapDataToMainProcess

Anmerkung: Diese Methode kann nur aus dem Instruction Set des Handlers Child process completed aufgerufen werden, weil sie die Variable ProcessInfo, die nur dort enthalten ist, als Übergabeparameter benötigt.
Syntax MapDataToMainProcess ( ctx, Case case, ProcessInfo processInfo )
Beschreibung Über diese Methode können Sie konfigurieren, dass die Werte aller Subprozess-Attribute, die im BPMN Modeler in der Richtung „Subprozess >> Hauptprozess“ zugeordnet sind, aus dem Subprozess in den Hauptprozess übertragen werden, wenn der Subprozess abgeschlossen ist.
Parameter

ctx: IcodeContext = Kontext, in dem die Methode aufgerufen wird

case: Vorgang, aus dem der Subprozess gestartet wurde

processinfo: Variable, die Instanzinformationen zum untergeordneten Prozess enthält
Rückgabewert Boolean
Das Übertragen der Daten in den Hauptprozess ist nur aus Subprozessen möglich, nicht aus anderen untergeordneten Prozessen wie beispielsweise Taskpaketen. Um daher sicherzustellen, dass nur bei einem Subprozess Daten in den Hauptprozess geschrieben werden, wird empfohlen, in das Instruction Set noch eine IfElse-Bedingung einzufügen, in der Sie über die Eigenschaft IsSubProcess (die über die Variable ProcessInfo zur Verfügung gestellt wird) prüfen, ob es sich bei dem untergeordneten Prozess um einen Subprozess handelt.

StartSubProcess

Anmerkung: Damit diese Methode verwendet werden kann, muss sich die Stage, über die diese Methode aufgerufen wird, innerhalb eines Operationsbereichs (Operation Flow) befinden, in dem sich auch ein Operation Scope mit der Aktion StartSubProcess befindet
Syntax
  1. StartSubProcess ( ctx, Case instance, string subProcessName )
  2. StartSubProcess (ctx, Case instance, string subProcessName , int StartContentID)
Beschreibung

Über diese Methode können Sie konfigurieren, dass ein Subprozess gestartet wird.

Außerdem prüft diese Methode bei der Verwendung von Dynamic Lanes, ob zu dem angegebenen Assoziationspfad ein Personenobjekt gefunden werden kann. Nur wenn ein Personenobjekt gefunden wird (also der Rückgabewert True ist), kann der Subprozess gestartet werden.
Parameter

ctx: IcodeContext = Kontext, in dem die Methode aufgerufen wird

instance: Vorgang, aus dem der oder die Subprozesse gestartet werden

subProcessName: Definitionsname des zu startenden Subprozesses (kann beispielsweise über eine API ermittelt werden)

StartContentID überträgt die Werte der StartContent-Attribute des Subprozesses aus dem Web Shop in den Subprozess. Dieser Parameter kann somit nur in einem Workflow verwendet werden, der über den Web Shop gestartet wird.
Rückgabewert

Boolean

True=Zu dem angegebenen Assoziationspfad konnte ein Personenobjekt gefunden werden. Der Subprozess wird gestartet.

(Werden keine Dynamic Lanes verwendet, ist der Rückgabewert immer True.)

False=Zu dem angegebenen Assoziationspfad kann kein Personenobjekt gefunden werden. Der Subprozess wird nicht gestartet.