Seitenhistorie
...
Codeblock | ||||
---|---|---|---|---|
| ||||
public class SomeOtherRule { ... ... MyBusinessObject mbo = QueryProvider.getById(MyBusinessObject.class, id); mbo.setMyField(value); try { //deactivate rule MyUpdateRule.ACTIVE.set(Boolean.FALSE); //content of if-block of update rule (see above) will not be executed this time BusinessObjectProvider.update(mbo); } finally { //activate rule again MyUpdateRule.ACTIVE.set(Boolean.TRUE); } ... ... } |
Es ist unbedingt darauf zu achten, dass die Deaktivierung zuverlässig wieder zurückgesetzt wird (auch im Fehlerfall), daher sollte diese dies immer wie in diesem Beispiel im finally-Block geschehen. Die Aktivierung und Deaktivierung befindet sich in diesem Beispiel also in einem try-catch-finally-Block, um sicherzustellen, dass selbst nach Auftreten einer Exception in BusinessObjectProvider.update() die Regel anschliessend wieder aktiviert wird.
...
Überblick
Inhalte