Sprache: Deutsch · English
Ereignis-Regel „Objektgenerierung (im Anschluss)“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.
REFERENZ ENTWICKLER STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X
Auf dieser Seite
Diese serverseitige Regel wird ausgeführt nach einer erfolgreichen Objektgenerierung. Sie kann einem Objektgenerator zugewiesen werden.
Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):
package org.nuclet.lager;
import org.nuclos.api.rule.GenerateFinalRule;
import org.nuclos.api.context.GenerateContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
/
** @name
* @description
* @usage
* @change
*/
@Rule(name="Objektgenerierung im Anschluss", description="Objektgenerierung im Anschluss")
public class ObjektgenerierungImAnschluss implements GenerateFinalRule {
public void generateFinal(GenerateContext context) throws BusinessException {
}
}
Kontext: GenerateContext
Der Kontext GenerateContext liefert das betroffene BusinessObject über context.getBusinessObject(...); zusätzlich stehen die Funktionen des RuleContext (Provider) bereit. Eine BusinessException bricht den Vorgang ab.
Im Server-Regelmanager per Drag-and-Drop dem Ziel zuweisen. Optional lässt sich die Ausführung auf einen Status oder eine Aktion einschränken; die Reihenfolge steuerst du über die Pfeil-Buttons.
Das folgende Beispiel soll den Aufbau einer Regel vom Typ „Objektgenerierung (im Anschluss)„ und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.
package org.nuclet.company;
import org.nuclos.api.rule.GenerateRule;
import org.nuclos.api.context.GenerateContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import java.util.Collection;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="BestellungErstellen", description="BestellungErstellen")
public class BestellungErstellen implements GenerateRule {
public void generate(GenerateContext context) throws BusinessException {
Collection<Anfrage> sourceObjects = context.getSourceObjects(Anfrage.class);
int sumOfArticles = 0;
for (Anfrage a: sourceObjects) {
// How many articles are in this inquiry
sumOfArticles += a.getAnfrageposition().size();
}
Bestellung targetObject = context.getTargetObject(Bestellung.class);
// create new history entry
BestellungHistory newHistory = new BestellungHistory();
newHistory.setBestellungId(targetObject.getId());
newHistory.setBemerkung(sumOfArticles + " Einträge");
// save new entry
BusinessObjectProvider.insert(newHistory);
}
}