Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Migrated to Confluence 5.3

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

Fachlicher Hintergrund

Eine bestehende Nuclos-Instanz umfasst das Businessobjekt Bestellungen. Die Aufgabe besteht darin, nach dem Löschen einer Bestellung alle Einträge in der Businessobjekt History mit Bezug auf diese Bestellung zu aktualisieren.

Quellcode

 

Codeblock
package org.nuclet.company; 

import java.util.Date;
import java.util.List;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.Query;
import org.nuclos.api.context.DeleteContext;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.BusinessObjectProvider;
import org.nuclos.api.provider.QueryProvider;
import org.nuclos.api.rule.DeleteFinalRule;

/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="BestellungFinalDelete", description="BestellungFinalDelete")
public class BestellungFinalDelete implements DeleteFinalRule {
   
 public void deleteFinal(DeleteContext context) throws BusinessException { 
            
		Bestellung businessObject = context.getBusinessObject(Bestellung.class);

        Query<History> allHistoryEntries = QueryProvider.create(History.class);
        allHistoryEntries.where(History.EntityId.equals(businessObject.getId()));
        
        List<History> results = QueryProvider.execute(allHistoryEntries);
        
        for (History b : results) {
            if (context.isLogical()) {
                b.setBemerkung("logical delete");                
            } else {
                b.setBemerkung("physical delete");
            }
            BusinessObjectProvider.update(b);
        }
    }
}