sysoperation framework


Error message

Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of D:\home\site\wwwroot\webapp\includes\

Dimension Controls in a Dialog for AX7

I’ve received a few questions regarding a post on the AX R&D Yammer group about how to add default dimension controls to a dialog in the new Dynamics AX.  Dialogs are unique in that they often do not have a data source, however there are valid cases to still support the selection of dimensions for batch jobs or other periodic processes.

Azure Service Bus Messaging with Dynamics AX 2012 (part 3)

Our final post in the Azure Service Bus series for AX 2012.  As mentioned in our previous posts, this is generally applicable to all versions of AX 2012 and not just R3 ( as used in these demonstrations ).  Our focus for this entry will be on using the SysOperation Framework to empower a multi-threaded approach to Service Bus.

AX has several options for multi-threading your business processes.  Each has positives and negatives in terms of throughput and performance. 

Batch Processing & Time Zone Pains

If you’re familiar with AX AOS topology, and you’re a global organization, you already know the pain point that is Time zone in AX 2012.  The system is designed to host multi-company, multi-currency, and multi-time zone, however not all functionality in the system is time zone aware. One of those major sets of functionality is the SysOperation framework.

ReliableAsynchronous Not So Reliable? Here's Why

The SysOperation framework has four basic modes, what Microsoft calls Execution Modes.  Their desirability depends on the situation, of which I'll try to explain briefly.

  • Synchronous - This is similar to running a long process on the client.  It will lock the client session if the processing takes longer than a few seconds, and the user won't be able to do anything until it is completed.
  • Asynchronous - To run a service asynchronously, the service class must have a Service node in the AOT, be a part of the AxClient service group, and the service group must be re-deployed thereafter for the change to take affect.  If this isn't done, the service will default to Synchronous which will lock the client session.
  • ReliableAsynchronous - The default mode if none is selected. When the processing begins, it creates two asynchronous threads - the first on the batch server and another on the client to poll the batch server to get the infolog when it is completed. When the batch job is completed, it is removed but leaves traceability in Batch Job History.
  • ScheduledBatch - This is akin to checking the batch tab, but the user does not get a choice.  Even if they did not select to run it on batch, it will. And, it will leave the job in the Batch table in an 'Ended' state when it is complete.

AX R3 - Access Denied: MCRInventSearchController

During our validation phase of the AX R3 upgrade project, we found some issues regarding security for our product configuration department staff.  This is likely due to developing highly customized roles for our users, to keep licensing costs low.  Even so, we expected most new menu items to go in to existing privileges for the majority of users.  In any case, you may run in to this error message:

AXR3 - SysOperation AIF Patch

A quick fix

In reviewing the AIF Service generation classes between RTM CU5 + Feature Pack and R3, I found a small difference in the AifServiceDataTypeGenerator class.

Specifically the method highlighted in the image above, the generateDataContractClass.  Previously, we had been able to deploy AIF ports that used Data Contract Classes which extend SysOperationDataContractBase. In AX 2012 R3, this was broken - for details see my previous post.