Versionen im Vergleich

Schlüssel

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

...

Eine bestehende Nuclos-Instanz umfasst die Entität Bestellungen. Diese wiederum besitzt den Reiter Positionen, der alle Artikel einer konkreten Bestellung auflistetdas Businessobjekt Bestellungen. 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 wurdevor dem Löschen einer Bestellung einen Vermerk in dem Businessobjekt History vorzunehmen.

Quellcode

 

Codeblock
package org.nuclet.company; 

import org.nuclos.api.rule.InsertFinalRuleDeleteRule; 
import org.nuclos.api.businessobject.Query;
import org.nuclos.api.context.InsertContextDeleteContext; 
import org.nuclos.api.annotation.Rule; 
import org.nuclos.api.exception.BusinessException; 
import java.util.Calendarorg.nuclos.api.provider.BusinessObjectProvider;
import org.nuclos.api.provider.BusinessObjectProviderQueryProvider;

/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="BestellungStichtagBestellungLoeschen", description="BestellungStichtagBestellungLoeschen")
public class BestellungStichtagBestellungLoeschen implements InsertFinalRuleDeleteRule {

  
  public void insertFinaldelete(InsertContextDeleteContext context) throws BusinessException { 
        
        Bestellung curBestellungb = context.getBusinessObject(Bestellung.class);
        
		// create 
new history entry
        CalendarAnfragenHistory recallDaynewHistory = Calendar.getInstancenew AnfragenHistory();
          recallDaynewHistory.addsetBestellungId(Calendar.DAY_OF_MONTH, 7b.getId());
          
          curBestellung.setRecallTermin(recallDay.getTimenewHistory.setLogicalDelete(context.isLogical());
          
		  // Due to the fact that this is an InsertFinal rule we have to save the changed data again.
		  // Updatingsave thenew same entry twice - like in this case - might cause infinite loops, because updating via BusinessObjectProvider
		  // activates the normal Nuclos save-process und might run the same rule again and again. So better be careful.
          BusinessObjectProvider.update(curBestellungBusinessObjectProvider.insert(newHistory);
          
    }
}