Das folgende Beispiel soll den Aufbau einer Regel vom Typ "Anlegen im Anschluss" und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.

Fachlicher Hintergrund

Eine bestehende Nuclos-Instanz umfasst das Businessobjekt Bestellungen. Diese wiederum besitzt den Reiter Positionen, der alle Artikel einer konkreten Bestellung auflistet. Die Aufgabe besteht darin, nach erfolgreichem Anlegen einer neuen Bestellung einen Rückmeldungsstichtag (heute + 7 Tage) automatisch einzurichten. Aber nur, wenn die Bestellung fehlerfrei angelegt wurde.

Quellcode


package org.nuclet.projekt; 

import org.nuclos.api.annotation.Rule; 
import org.nuclos.api.context.InsertContext; 
import org.nuclos.api.exception.BusinessException; 
import org.nuclos.api.rule.InsertFinalRule; 

/** 
 * @name AnsprechpartnerErstellen       
 * @description Unterstützende Regel zum Erstellen neuer Ansprechpartner aus Unterprojekten
 * @usage       
 * @change      
 * 
 */
@Rule(name="AnsprechpartnerErstellen", description="Unterstützende Regel zum Erstellen neuer Ansprechpartner aus Unterprojekten")
public class AnsprechpartnerErstellen implements InsertFinalRule {

	public void insertFinal(InsertContext context) throws BusinessException { 
        final Ansprechpartner boAnsprechpartner = context.getBusinessObject(Ansprechpartner.class);
        
        if (boAnsprechpartner.getUnterprojektsrefId() != null) {
            final Unterprojekt boUnterprojekt = Unterprojekt.get(boAnsprechpartner.getUnterprojektsrefId());
            
            boUnterprojekt.setAnsprechpartnerrefId(boAnsprechpartner.getId());
        
            boUnterprojekt.save();
        }
	}
}
  • Keine Stichwörter

Kommentar

  1. BusinessObjectProvider.update() kann nur aufgerufen werden, wenn das BO zuvor auch verändert wurde.

    Bitte besser ans Nuclos Forum wenden und dort ggf. den gesamten Regelcode posten.