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.
Pop-up-Dialoge erstellen
Popup-Dialogen können mithilfe des Interfaces RequestOperation (FirstSpirit Developer-API, Package de.espirit.firstspirit.ui.operations) erstellt werden (siehe auch Plugins/Message Boxes).
Über RequestOperation.Kind (FirstSpirit Developer-API, Package de.espirit.firstspirit.ui.operations) können unterschiedliche Typen von Meldungen erzeugt werden:
- WARN
- INFO
- QUESTION
- ERROR
Im SiteArchitect und ServerManager werden z. B. Pop-up-Dialoge vom Typ WARN mit einem Ausrufezeichen-Symbol angezeigt und Pop-up-Dialoge vom Typ INFO mit einem „i“-Symbol.
Der ContentCreator unterscheidet bei der Darstellung nicht zwischen Pop-up-Dialogen vom Typ WARN oder vom Typ INFO. Beide Arten werden identisch mit einem Ausrufezeichen-Symbol angezeigt.
Beispiel (Ausgabe einer WARN-Meldung):
import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.ui.operations.RequestOperation;
import de.espirit.firstspirit.ui.operations.RequestOperation.Kind;
opAgent = context.requireSpecialist(OperationAgent.TYPE);
if (opAgent != null) {
RequestOperation requestOp = opAgent.getOperation(RequestOperation.TYPE);
requestOp.setKind(Kind.WARN);
requestOp.setTitle("Whoa, there!");
requestOp.perform("Once you delete this content, there's no getting it back. Make sure you want to do this!");
}
else {
context.logInfo("...");
}
Skript "transitionMessage"
In diesem Beispiel-Arbeitsablauf („transitionMessage“) 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:
//!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();