Beispiel: Ausgabe von Nachrichten in Arbeitsabläufen
Innerhalb eines Arbeitsablaufs können Nachrichten an den ausführenden Benutzer ausgegeben werden. Die Ausgabe von Nachrichten wird über Skripte innerhalb des Arbeitsablaufs realisiert. Der Bearbeiter, der die entsprechende Aktion innerhalb eines Arbeitsablaufs durchführt, bekommt über das Skript einen Dialog eingeblendet. Dort können bestimmte Informationen aus dem Kontext des Arbeitsablaufs angezeigt werden.
In diesem Beispiel-Arbeitsablauf wird vor und nach dem Schalten einer Transition ein Informationsdialog mit der Ausgabe „Hallo $USER“ eingeblendet:
Nach dem Schalten des Transitionsdialogs wird ein weiterer Informationsdialog mit der Ausgabe „Sie haben Transition $TRANSITION gewählt. Danke für den Kommentar $KOMMENTAR“ angezeigt:
Skript "transitionMessage"
//!Beanshell
import de.espirit.firstspirit.common.gui.*;
import de.espirit.firstspirit.ui.operations.RequestOperation;
import de.espirit.firstspirit.agency.OperationAgent;
userName = context.getGuiHost().getUserService().getUser().getLoginName();
text = "Hallo " + userName + ". Bitte wählen Sie eine Transition.";
requestOperation = context.requireSpecialist(OperationAgent.TYPE).getOperation(RequestOperation.TYPE);
requestOperation.setKind(RequestOperation.Kind.INFO);
requestOperation.addOk();
requestOperation.perform(text);
context.showActionDialog();
transition = context.getTransitionParameters();
if (transition.getTransition() != null) {
text="Sie haben Transition '" + transition.getTransition() + "' gewählt.
Eine gute Wahl.\nDanke für den Kommentar '" + transition.getComment() + "'";
requestOperation = context.requireSpecialist(OperationAgent.TYPE).getOperation(RequestOperation.TYPE);
requestOperation.setKind(RequestOperation.Kind.INFO);
requestOperation.addOk();
requestOperation.perform(text);
context.doTransition(transition.getTransition());
} else {
requestOperation = context.requireSpecialist(OperationAgent.TYPE).getOperation(RequestOperation.TYPE);
requestOperation.setKind(RequestOperation.Kind.INFO);
requestOperation.perform("Sie haben keine Transition ausgewählt.");
}
Die Informationen, die dem Bearbeiter innerhalb der Dialoge angezeigt werden, werden im Skript über den Kontext des Arbeitsablaufs (WorkflowScriptContext) geholt, z. B. die Transitionsparameter (siehe Beispielskript):
context.getTransitionParameters();