Sprache: Deutsch · English
Ereignis-Regel „Anlegen“: 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 beim Anlegen eines neuen Datensatzes (vor dem Speichern). Sie kann einem Businessobjekt zugewiesen werden.
Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):
package org.nuclet.lager;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.context.InsertContext;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.rule.InsertRule;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="AnlegenLagerposition", description="Anlegen einer Lagerposition")
public class AnlegenLagerposition implements InsertRule {
public void insert(InsertContext context) throws BusinessException {
}
}
Kontext: InsertContext
Der Kontext InsertContext 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.
Zuweisung „Anlegen“.
Das folgende Beispiel soll den Aufbau einer Regel vom Typ „Anlegen„ und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.
package org.nuclet.company;
import org.nuclos.api.rule.InsertRule;
import org.nuclos.api.context.InsertContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.BusinessObjectProvider;
import org.nuclos.api.provider.QueryProvider;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="Bestellpositionanlegen", description="Bestellpositionanlegen")
public class Bestellpositionanlegen implements InsertRule {
public void insert(InsertContext context) throws BusinessException {
Bestellung curBestellung = context.getBusinessObject(Bestellung.class);
// Create new 'Bestellposition'
Bestellposition newPos = new Bestellposition();
// Get Artikel and Lagerort for default
Artikel myArticle = QueryProvider.getById(Artikel.class, 40460000L);
Lager myLagerort = QueryProvider.getById(Lager.class, 40271111L);
newPos.setPositionsnr(0);
newPos.setBezeichnung("Standard Palette");
newPos.setArtikelId(myArticle.getId());
newPos.setAnzahl(1.0d);
newPos.setBemerkung("Automatische Position");
newPos.setLagerId(myLagerort.getId());
// Insert new element to Bestellung
curBestellung.insertBestellposition(newPos);
}
}