Versionen im Vergleich

Schlüssel

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

Inhalt
maxLevel2


 

Beispielfall 1: Nummernkreise

In einem Projekt gibt es mehrere BOs, die bei der Neuanlage eine automatische Nummer vom System vergeben bekommen.

Bei den betroffenen BOs handelt es sich um:

  • Angebot
  • Auftrag
  • Lieferschein
  • Bestellung

Die bisherige Implementierung wurde über Verwendung von instanceof gelöst (siehe Codeausschnitt rechts) und soll nun über ein Generisches BO abgelöst werden.

 

Codeblock
languagejava
titleBisherige Implementierung:
public void insert(InsertContext context) throws BusinessException {
        final Modifiable<?> businessObject = context.getBusinessObject(Modifiable.class);
        if (businessObject instanceof Angebot) {
            ((Angebot) businessObject).setAngebotsnr(NummernkreiseLogik.getNextValue(Angebot.class));
        } else if (businessObject instanceof Auftrag) {
            ((Auftrag) businessObject).setAuftragsnr(NummernkreiseLogik.getNextValue(Auftrag.class));
        } else if (businessObject instanceof Lieferschein) {
            ((Lieferschein) businessObject).setLieferscheinnr(NummernkreiseLogik.getNextValue(Lieferschein.class));
        } else if (businessObject instanceof Bestellung) {
            ((Bestellung) businessObject).setBestellnr(NummernkreiseLogik.getNextValue(Bestellung.class));
        } 
    }

Zunächst wird ein neues generisches Businessobjekt namens 'Nummerierbar' mit dem BO-Wizard erstellt.

Dieses BO erhält genau ein Attribut "Nummer".

Warnung

Der Datentyp muss dem Datentyp des Feldes in den implentierenden BOs entsprechen !

Das BO enthält keine speziellen Berechtigungen und auch kein Layout. Es dient nur als abstraktes Businessobjekt für die Geschäftsregel bei der Nummergenerierung.

Das BO Nummerierbar wird einem beliebigen Nuclet zugewiesen.

Nun wird das Mapping für die generische Implementierung konfiguriert. Für jedes implementierende BO wird ein Datensatz mit dem entsprechenden Attribut-Mapping erzeugt.  

-> ->