Erklärung Softlinks

Ein Softlink kann zu jedem Zeitpunkt eines Prozesses erstellt werden ohne in der Modellierung des Hauptprozesses berücksichtigt werden zu müssen.
Im Gegensatz zu einem Subprozess verläuft ein Softlink nicht sequenziell zu seinem Hauptprozess.
Eine eingeschränkte Sequentialisierung kann durch das Einbinden eines Timers/Actionhandlers erreicht werden.
Die Verknüpfung geschieht durch eine Prozessvariable im Softlink welche als Wert die ID des Hauptprozesses enthält.
Ein Softlink kann entweder durch das Implementieren von den dafür notwendigen JavaScript Funktionen erstellt werden oder durch einen ActionHandler.
An den Softlink sind keine besonderen Bedingungen geknüpft, somit kommt jeder lauffähige Prozess als Softlink in Frage.
Um die gestarteten Softlinks eines Prozesses auswerten zu können muss der entsprechende JavaScript Code implementiert werden, welcher eine grafische Auswertung in der Smartform des Hauptprozesses ermöglicht.

JavaScript

WebService

webService.ProcessVariableManager.startNewSubProcessInstanceWithSoftLink

Parameter:

Name der zu startenden ProzessDefinition

Vererbung von allen Prozessvariablen des Hauptprozesses (true/false)

ID des Hauptprozesses

Name der Softlink Instanz

Callback Funktion

Beispiel:

webService.ProcessVariableManager.startNewSubProcessInstanceWithSoftLink('ICHBINDERZUSTARTENDEPROZESS', true, '010101', 'SOSOLLMEINEINSTANZHEIßEN', function(WEBSERVICEANTWORT){
VERARBEITUNG DER ANTWORT...
});

Button in Smartform

Es ist möglich einen Button in die Smartform einzubinden welcher beim anklicken einen Softlink startet.
Der Button benötigt die initMethod: 'createSoftLink'.
Parameter im Value (';' getrennt):

Name der zu startenden ProzessDefinition oder Name einer Prozessvariable welche den Namen der Prozessdefinition enthält!!

Vererbung von allen Prozessvariablen des Hauptprozesses (true/false)

Name der Softlink Instanz oder Name einer Prozessvariable welche den Namen enthält!!

Callback Funktion OPTIONAL!!

Beispiel:

<input type='BUTTON' id='ERSETZMICH' name='ERSETZMICH' value='PROZESSDEFINITIONSNAME;true;NEUERNAME;ICHBINDERNAMEDERCALLBACK' initMethod='createSoftLink'>Softlink Button</input>

Auswerten von Softlinks

Webservice

Um alle Softlinks eines Prozesses zu finden:

webService.ProcessInstanceManager.getSoftLinkedSubprocesses('IDDESHAUPTPROZESSES', function(WEBSERVICEANTWORT){
VERARBEITUNG DER ANTWORT...
});

Um alle Variablen eines Softlinks auszuwerten:

webService.ProcessVariableManager.getProcessContextEntity('IDDESSOFTLINKS', function(WEBSERVICEANTWORT){
VERARBEITUNG DER ANTWORT...
});

Um Variablen eines Softlinks zu verändern muss die WSEntity welche man über den webService.ProcessVariableManager.getProcessContextEntity erhalten hat verändert und zurückgeschrieben werden.

webService.GenericEntityManager.merge(WSENTITY);