Hallo Forum,
Problem gelöst!! Der Statuswechsel darf nicht vor dem Speichern (Update), sondern erst danach (UpdateFinal) ausgeführt werden.
Hier die funktionierende Regel.
package org.nuclet.businessentity;
import org.nuclos.api.rule.UpdateFinalRule;
import org.nuclos.api.context.UpdateContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.StatemodelProvider;
import org.nuclet.statemodel.AM3AufgabeSM;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="AM3Statuswechselerledigt", description="aktive Aufgabe auf erledigt (numeral=99) setzen")
public class AM3Aufgabeerledigen implements UpdateFinalRule {
public void updateFinal(UpdateContext context) throws BusinessException {
AM3Aufgabe curAufg = context.getBusinessObject(AM3Aufgabe.class);
StatemodelProvider.changeState(cur.Aufg, AM3AufgabeSM.State_99);
}
}