How to run Client Batches on AX 2009


In AX 2009 the batch engine has been changed to run as a service.
The batch services do only process server batches they don’t process client batches aynmore.


There might still be some situations where you would like to run client batches.
The following description explains how to do this.



  • Create a new batch group ‘Client’ which is used for client batches later.
    (Administration -> Setup -> Batch groups)

  • Add this batch group to an AOS acting as batch server.
    (Administration -> Setup -> Server configuration)
    This is needed to change the status from ‘Waiting’ to ‘Ready’ on the batch tasks and to ‘Execute’ on the batch jobs.
    The batch server will not process any client batches.

  • Start the legacy batch client
    (Basic -> Periodic -> Batch -> Processing)

  • Select the new created batch group ‘Client’ and press ‘OK’

The client batch server will now process all client batches of the ‘Client’ batch group

Comments (7)

  1. gknue says:

    I have setup this client batch scenario described above but when I submit a report to this batch group the batch task window shows that the report will run on the server and not the client.  How do I get this report to run on the client and not the server?

  2. EMEAAXTec says:

    For normal reports this decision is made here

    ClassesRunbaseReportStdrunsImpersonated

    If this method returns true then the job will run on server.

    You may have to check why it returns true in your case.

    One reason could be that you have selected an AOS printer for example.

    Daniel

    Member of the EMEA Support Blog Team

  3. Coree says:

    Hi EMEA Support Blog Team,

    "This is needed to change the status from 'Waiting' to 'Ready' on the batch tasks and to 'Execute' on the batch jobs."

    When I tried to change to status, I only see "Canceling", "Waiting", and "Withhold". I can not change it to "Ready". Am I missing something? configuration?

    Thanks,

    Coree

  4. EMEAAXTec says:

    Hi Coree

    The status change is made automatically by the batch process of the Batch Server. It will set the status of the batch job from 'Waiting' to 'Ready'. Only batch jobs that are having status 'Ready' will be processed. This means that also client batch jobs are only processed if the status of the job is 'Ready'.

    So if the batch group for the client batch is not assigned to a batch server it will never be processed as it remains on the status 'Waiting'.

    The manual change of the batch job status to 'Canceling', 'Waiting' and 'Withhold' is just to stop a batch job from being processed.

    Daniel

    Member of the EMEA Support Blog Team

  5. Riccardo Fiaschi says:

    When wanting to use the client batch processing you have to override the 'runsImpersinated' on your class and return false. Your class wont be taken up in the normal server batch processing but will be run when running the 'old'  batch processing. I hope that helps!

  6. Helmut A.nker says:

    •Start the legacy batch client

    (Basic -> Periodic -> Batch -> Processing)

    When starting the legacy batch client i have to do it in one session. Do you mean this session must

    be running everytime like in the past. If you mean "Yes" than i don´t understand the benefit of the batch group "client".

    How is it meaned?

  7. EMEAAXTec says:

    The batch group "client" us used to ensure that the client processing only picks up batches which are designed for the client side processing and vice versa – so that you can separate those batches from the normal server-side batches, does that answer your question? Or did I miunderstand?

    /Tariq