In Microsoft Dynamics AX 2012, RunBase and RunBaseBatch frameworks have been replaced by SysOperation framework (or Business Operation Framework). The SysOperation framework follows the well known MVC (Model-View-Controller) pattern. As the name implies, MVC pattern isolates Model, View and Controller components, which makes the process loosely coupled built over SysOperation framework. The main advantage of being loosely coupled is the controller can be easily exposed as an AIF service with almost zero effort.

MS Dynamics AX 2012 – Batch framework

There is one major improvement in Batch framework that its code now runs on server and all the server code runs in .NET CIL (Common Intermediate Language). Because of this amendment, .NET CIL code in Batch framework runs much faster than AX 2009 that ran interpreted X++ code. Performance on .NET CIL can be improved up to 30% which is mainly because of the efficient .NET garbage collection. This has been achieved by leveraging the underlying SysOperation framework for batch processing.

Service execution modes

SysOperation service can run in four modes. Regardless of which mode a service is running in, the code runs on server. This makes minimum number of round trips between server and client.

Execution modes Description
Synchronous When a service is run in synchronous mode, although it runs on server but it freezes AX client. Call is initiated from client and object is marshaled to server to run in CIL. Good for smaller processes.
Asynchronous In asynchronous call to service, client remains responsive. They only work using WCF asynchronous service call mechanism. This is why it is necessary to have it running as an AIF service. One should drop it to AxClient service group and redeploy the service group. Good for lengthy processes where durability is not important.
Reliable Asynchronous Works like batch service. As soon as a call is initiated to run a service in reliable asynchronous mode, it is scheduled to be run on batch server instantly but removed as soon as it finishes the job. One can see it among other jobs scheduled. Since it runs on batch server, it can exploit the power of parallel processing. It is used in scenarios where job needs to be run on server and not to schedule. Room for performance enhancement making use of parallel processing among different AOS.
Scheduled Batch Job is scheduled to run on a batch server. This is similar to reliable asynchronous, just that it does not delete the job instance after job is finished. This is used for jobs that need to be run repeatedly on specified time interval. Room for performance enhancement making use of parallel processing among different AOS.


Visit the link to download the white paper on Sysoperation framework for more details.


Leave a Reply

Recent Comments