Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 5 Nächste Version anzeigen »


 

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.

 

Bisherige 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".

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. 

-> ->

 

  • Keine Stichwörter