SysOperation-Framework: Stapelverarbeitung erzwingen

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.

Screenshot Dialog

Alternativ könnte man übrigens in der postRun() auch den ganzen Register Batch deaktivieren, aber dann kann man beispielsweise auch keine Stapelverarbeitungsgruppe mehr angeben:

public void postRun()
{
    SysOperationDialog sysOperationDialog;
    DialogTabPage dialogTabPage;
    FormRun formRun;

    super();

    sysOperationDialog = this.dialog() as SysOperationDialog;

    formRun = sysOperationDialog.formRun();
    dialogTabPage = sysOperationDialog.batchDialogTabPage();

    formRun.control(formRun.controlId(dialogTabPage.name())).enabled(false);
}

Das würde so aussehen:

Screenshot Dialog

Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2025
MoDiMiDoFrSaSo
 123456
78910111213
14151617181920
21222324252627
282930 
 
© 2006-2025 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
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