...
| Auszug |
|---|
...
|
...
...
| |
Nuclos Event-Regel Statuswechsel (im Anschluss) |
...
Innerhalb des Baums mit der Regelbibliothek werden sie dem Knoten "Statuswechsel (im Anschluss)" zugeschrieben.
Quellcode einer Klasse des Typs "Statuswechsel (im Anschluss)":
...
: Interface, StateChangeContext, Struktur, Zuweisung im Server-Regelmanager, Beispielcode (Java). |
Sprache: Deutsch · English
Ereignis-Regel „Statuswechsel (im Anschluss)“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||||
|---|---|---|---|---|---|---|
| ||||||
Auf dieser Seite
|
Diese serverseitige Regel wird ausgeführt nach einem erfolgreichen Statuswechsel. Sie kann einem Statusmodell zugewiesen werden.
Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):
| Codeblock | ||
|---|---|---|
| ||
package org.nuclet.lager;
import org.nuclos.api.rule.StateChangeFinalRule;
import org.nuclos.api.context.StateChangeContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="Statuswechsel im Anschluss Lagerposition", description="Statuswechsel im Anschluss Lagerposition")
public class StatuswechselImAnschlussLagerposition implements StateChangeFinalRule {
public void changeStateFinal(StateChangeContext context) throws BusinessException {
}
} |
| Info | ||
|---|---|---|
| ||
Der Kontext |
Im Server-Regelmanager per Drag-and-Drop dem Ziel zuweisen. Optional lässt sich die Ausführung auf einen Status oder eine Aktion einschränken; die Reihenfolge steuerst du über die Pfeil-Buttons.
Das folgende Beispiel soll den Aufbau einer Regel vom Typ „Statuswechsel (im Anschluss) und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.
| Codeblock | ||
|---|---|---|
| ||
package org.nuclet.company;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.context.StateChangeContext;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.StatemodelProvider;
import org.nuclos.api.rule.StateChangeFinalRule;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="Auftrag beantragen", description="Prüfung und Weiterführung eines neuen Antrags")
public class Auftragbeantragen implements StateChangeFinalRule {
public void changeStateFinal(StateChangeContext context) throws BusinessException {
Auftrag neuerAuftrag = context.getBusinessObject(Auftrag.class);
// Wurde noch keine Auftragsnummer hinterlegt, kann der Auftrag nicht
// ausgeführt werden. Wir brauchen eine weitere Prüfung
if (neuerAuftrag.getAuftragsnr() == null) {
// Neuer Status: Prüfen (Numeral 55)
StatemodelProvider.changeState(neuerAuftrag, ProzessAuftragSM.State_55);
}
else {
// Prüfung ok, neuer Status: beauftragt (Numeral 30)
StatemodelProvider.changeState(neuerAuftrag, ProzessAuftragSM.State_30);
}
}
} |
Das entsprechende Interface schreibt die Implementierung der Methode "changeStateFinal" vor und liefert als Kontext die Klasse StateChangeContext. Darin enthalten sind der Ausgangsstatus und der Zielstatus, der mit dem Ausführen des Wechsels angestrebt wird. Wird nun ein Wechsel eines Status durchgeführt und entsprechen Ziel- und Ausgangsstatus den Angaben der Regelzuweisung, wird eine Instanz dieser Regel erstellt und die Methode "changeStateFinal" aufgerufen. Weiterhin können die Funktionen des übergeordneten RuleContexts genutzt werden.
Innerhalb der changeStateFinal-Methode kann der Regelprogrammierer auch eine BusinessException auslösen, die zum Abbruch des Events und zur Rückführung in den Ausgangsstatus führt. Die Fehlermeldung wird in Nuclos angezeigt.
Die Angabe der Annotation "Rule" ist nicht zwingend notwendig, wird aber empfohlen, da die Beschreibungen (name und description) im Regelbibliotheksbaum angezeigt werden.
Klassen des Typs "Statuswechsel (im Anschluss)" können nur Statusmodellen zugewiesen werden. Nach der Verknüpfung erscheint die Klasse nach Auswahl des Statusmodells und des Typs im Zuweisungsfenster und bietet folgende weitere Einstellungsmöglichkeiten:
Ausführen bei einer bestimmten Transition (Statuswechsel). Das bedeutet, dass die Regel nicht bei allen Statusübergängen ausgeführt wird, sondern nach bei einem bestimmten.
Zu beachten ist, dass eine Regel mehrfach einem Statusmodell zugewiesen werden kann, aufgrund der Eindeutigkeit aber nur verschiedenen Transitionen.
Mit dem Symbol des Mülleimers kann die Zuweisung der Klasse zum Statusmodell gelöscht werden. Wichtig ist, dass damit nur die Zuweisung gelöscht wird. Weiterhin lässt sich mit Hilfe der Pfeile-Buttons die Ausführungsreihenfolge verändern.
Jede Änderung wird automatisch gespeichert.
Hier finden Sie ein Beispiel, das den Aufbau einer Regel vom Typ "Statuswechsel (im Anschluss)" veranschaulicht.