Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos StatemodelProvider: changeState, Stateful, State, Statusmodell, Statuswechsel.

globe with meridians Sprache: Deutsch · English

open book StatemodelProvider

Statuswechsel aus Regeln auslösen – changeState() mit State-Konstanten.

Status
colourGrey
titleReferenz
Status
colourBlue
titleEntwickler
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2
minLevel2

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.

...

Codeblock
languagejava
public static <T extends Stateful> void changeState(T t, State sState) throws BusinessException;
Codeblock
languagejava
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

gear Statusmodell


Statusmodell.

Öffnen →

gear QueryProvider


Daten laden.

Öffnen →

gear BusinessObjectProvider


BOs schreiben.

Öffnen →

Ein Beispiel finden Sie hier.

 

...