Ausführen eines Arbeitsschrittes

MethodeBeispiel
execute
import org.nuclos.api.provider.GenerationProvider;

public class AuftragAbschliessen implements UpdateFinalRule {
    public void updateFinal(UpdateContext context) throws BusinessException { 
        Auftrag a = context.getBusinessObject(Auftrag.class);
        Rechnung r = GenerationProvider.execute(a, ErstelleRechnungAusAuftragGEN.class);
    }
}

Erläuterung:

Die Ausführung eines Arbeitsschrittes über den GenerationProvider kann aus jeder Regel heraus vorgenommen werden. Aufgrund der Typsicherheit müssen Quell- und Zielobjekte immer zum Arbeitsschritt, resp. zu den hinterlegten Typen der generierten Arbeitsschritt-Klasse passen. Im oberen Beispiel erstellt der Arbeitsschritt "Erstelle Rechnung aus Auftrag" eine Rechnung. Der übergebene Parameter a muss vom Typ "Auftrag" sein. Der Rückgabewert muss wiederum vom Typ "Rechnung" sein. Erlaubt sind nur diese Typen von BusinessObjekten, andere Angaben führen zu Compile-Fehlern in der Regel,da sie nicht zur Klasse "ErstelleRechnungAusAuftragGEN" passen.

Im Falle eines Laufzeit-Fehlers wird eine BusinessException geworfen.

  • Keine Stichwörter

2 Kommentare

  1. Die Beispiele immer gleich um die nötigen import-Statements zu ergänzen, wäre wertvoll, damit man mit copy&paste schneller funktionsfähigen Code hat.

  2. Wie steuer ich einen Arbeitsschritt an, der ein Parameter Businessobjekt benötigt, der anschließend mit dem Zielobjekt verknüpft wird?

    Ich übergebe dem GenerationProvider eine Liste von Quellobjekten und einen Arbeitsschritt, der ein Parameter BO benötigt.