Seitenhistorie
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); } } } |
Überblick
Inhalte