Es gibt ab Nuclos 4.28 neue Funktionen für die Regel-API, die den Code einfacher und leslicher machen, als Beispiel:

import org.nuclos.api.exception.BusinessException;
public class UtilsNeu {

	public static void workAuftrag(Long id1, Long id2) throws BusinessException {
		Auftrag auftrag = Auftrag.get(id1);
		auftrag.changeStatus(AuftragSM.State_20);
		auftrag.setName("NeuerName");
		auftrag.save(); // or auftrag.delete();

		Auftrag.delete(id2);
	}
}

 

Exakt der gleiche Code mit "alten" Mittel war um einiges umfangreicher, mit mehr Imports und Klassen, die nicht intuitiv sind, wie z.b. "BusinessObjectProvider", zu dem man auch noch einen Import brauchte:

import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.BusinessObjectProvider;
import org.nuclos.api.provider.QueryProvider;
import org.nuclos.api.provider.StatemodelProvider;
public class UtilsAlt {

	public static void workAuftrag(Long id1, Long id2) throws BusinessException {
		Auftrag auftrag = QueryProvider.getById(Auftrag.class, id1);
		StatemodelProvider.changeState(auftrag, AuftragSM.State_20);
		auftrag.setName("NeuerName");
		BusinessObjectProvider.update(auftrag); // or BusinessObjectProvider.delete(auftrag);

		Auftrag auftrag2 = QueryProvider.getById(Auftrag.class, id2);
		BusinessObjectProvider.delete(auftrag2);
	}
}

Außerdem wurde im zweiten Fall mehr Ressourcen verbraucht, weil man den zweiten Auftrag noch extra von der Datenbank holen musste. Selbstverständlich stehen die alten Methoden noch alle zur Verfügung zur Wahrung der Abwärtskompatibilität.