Wenn man sicherstellen möchte, daß eine Funktion die über das SysOperation-Framework umgesetzt wurde, immer über die Stapelverarbeitung ausgeführt wird, kann man den SysOperationExecutionMode auf ScheduledBatch setzen (beispielsweise über das MenuItem des Controllers - siehe hier).
Handelt es sich dabei um eine Funktion, die einen Benutzerdialog erfordert, hat man allerdings das Problem, daß standardmässig der Register "Stapel" eingeblendet wird und dort aber beispielsweise das Kontrollkästchen Stapel nicht aktiviert ist.
Natürlich kann man dieses Kontrollkästchen nun aktivieren, in dem man einen Aufruf von parmBatchExecute() im UIBuilder integriert:
public void build()
{
super();
this.controller().batchInfo().parmBatchExecute(this.controller().parmExecutionMode() == SysOperationExecutionMode::ScheduledBatch);
}
Allerdings hat man immer noch das Problem, daß der Benutzer das Kontrollkästchen deaktivieren könnte in der festen Überzeugung, die Funktion dadurch nicht in die Stapelverarbeitung zu schicken.
Will man dies auch verhindern, kann das Überschreiben der Methode postRun() des UIBuilders wie folgt helfen:
public void postRun()
{
super();
this.controller().batchInfo().fieldBatchExecuteAllowEdit(false);
}
Das sieht im Dialog wie folgt aus. Nun ist für den Benutzer auch ersichtlich, daß die Funktion im Stapel ausgeführt wird.
Alternativ könnte man übrigens in der postRun() auch den ganzen Register Batch deaktivieren, aber dann kann man beispielsweise auch keine Stapelverarbeitungsgruppe mehr angeben:
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
Wenn man sicherstellen möchte, daß eine Funktion die über das SysOperation-Framework umgesetzt wurde, immer über die Stapelverarbeitung ausgeführt wird, kann man den SysOperationExecutionMode auf ScheduledBatch setzen (beispielsweise über das MenuItem des Controllers - siehe hier).
Handelt es sich dabei um eine Funktion, die einen Benutzerdialog erfordert, hat man allerdings das Problem, daß standardmässig der Register "Stapel" eingeblendet wird und dort aber beispielsweise das Kontrollkästchen Stapel nicht aktiviert ist.
Natürlich kann man dieses Kontrollkästchen nun aktivieren, in dem man einen Aufruf von parmBatchExecute() im UIBuilder integriert:
Allerdings hat man immer noch das Problem, daß der Benutzer das Kontrollkästchen deaktivieren könnte in der festen Überzeugung, die Funktion dadurch nicht in die Stapelverarbeitung zu schicken.
Will man dies auch verhindern, kann das Überschreiben der Methode postRun() des UIBuilders wie folgt helfen:
Das sieht im Dialog wie folgt aus. Nun ist für den Benutzer auch ersichtlich, daß die Funktion im Stapel ausgeführt wird.
Alternativ könnte man übrigens in der postRun() auch den ganzen Register Batch deaktivieren, aber dann kann man beispielsweise auch keine Stapelverarbeitungsgruppe mehr angeben:
Das würde so aussehen: