| Auszug |
|---|
|
Nuclos StatemodelProvider: changeState, Stateful, State, Statusmodell, Statuswechsel. |
Sprache: Deutsch · English
StatemodelProvider
Statuswechsel aus Regeln auslösen – changeState() mit State-Konstanten.
| Status |
|---|
| colour | Blue |
|---|
| title | Entwickler |
|---|
|
| Status |
|---|
| colour | Green |
|---|
| title | Stand: Jul 2026 |
|---|
|
| Status |
|---|
| colour | Grey |
|---|
| title | gilt fuer Nuclos 4.2026.x |
|---|
|
Wozu dient der StatemodelProvider?
Der StatemodelProvider führt einen Statuswechsel eines Businessobjekts aus – auch für „ferne“ Objekte.
changeState(t, state)
Wechselt den Status eines BOs, das Stateful implementiert (also mit Statusmodell arbeitet). Der Zielstatus wird als State-Konstante aus der Statusmodell-Klasse übergeben.
Allgemein
Der StatemodelProvider ist eine Klasse, die alle notwendigen Methoden rund um den Statuswechsel beinhaltet. Mit dem folgenden Beispiel soll gezeigt werden, wie ein Statuswechsel eines"fernen" Businessobjekt ausgeführt werden kann. Wichtig ist dabei, dass bei der Übergabe die ID des neuen Status angegeben wird. Lediglich dadurch lässt sich ein genauer Status setzen.
Funktionsumfang
...
Diese Methode ermöglicht den Statuswechsel eines BusinessObjects. Im Methodenaufruf muss die Instanz eines BusinessObjects übergeben werden, dass das Interface "Stateful" implementiert. Das bedeutet, dass das dazugehörige Businessobjekt mit einem Statusmodell arbeitet. Der neue Status wird als "State"-Klasse übergeben. Diese befindet sich in der dazugehörigen Statusmodell-Klasse.
...
public static <T extends Stateful> void changeState(T t, State sState) throws BusinessException; |
| Codeblock |
|---|
|
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);
} |
...
Verwandte Seiten
BusinessObjectProvider
BOs schreiben.
Öffnen →
Ein Beispiel finden Sie hier.
...