sysoperation

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. 

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.

AX 2012 R3 Upgrade Gotchas


In our upgrade to AX 2012 R3 from AX 2012 RTM ( or R1 ), we've run in to some interesting scenarios.  Be it the flattening of inherited tables ( you'll see the extended/child table in the AOT but it has vanished in the SQL database ), being SURE you have change tracking disabled on your database prior to running the "Data upgrade checklist for in-place upgrades", or now the deployment of AIF inbound ports which extend SysOperation framework.  We'll share our experience so that you can save a few grey hairs!

The case for SysOperation: Internal + External Consumption


Model View Controller

For those of us who have developed on earlier versions of AX, RunBaseBatch rings a bell.  In fact, it was the primary ( and frankly is still used by Microsoft in 2012 R3 ) means of scheduling code execution.  It could be an hourly process to invoice sales orders, a nightly MRP run, or a complex financial consolidation. The problem was it still had to execute in native X++ albeit on the Server tier, and if you had an external application that also needed to execute the same logic you had to build an extra interface.