Continuous Deployment with AX2012 and TeamCity (part 3)

This is the last installment in our AX Build Automation series.  In part 1, we discussed how to install a continuous deployment software suite, in part 2 we discussed the classes we had to modify to harness the Startup Commands to prepare a modelstore, and finally today we will demonstrate how to automate it all together.

Continuous Deployment with AX2012 and TeamCity (part 2)

Continuous Deployment with AX is a two part gig.  First you need a building software like Microsoft's Release Management or JetBrain's Team City ( covered in part 1 ).  Second, you need to be able to call all of the building activities within AX itself such as synchronizing with Version Control, x++ compile, CIL compile, and so on.  This is what we will cover today, and will follow up with how to automate the entire process ( part 3 ).

Continuous Deployment with AX2012 and TeamCity (part 1)

Whether you work in a shop where you are the “AX guru” or if you are a part of a team of rockstars, consultants, or VARs combined: the rate at which you can test and deploy customizations heavily impacts your promised Turn-Around-Time to the business.  The more developers you have contributing work, the more complex it can become. Having an organized and automated building process for AX is essential to any dev shop.

Application Lifecycle Management with AX 2012

Hey everyone, it's been a few since my last update so I wanted to make it count smiley  We just recently launched our global upgrade of AX 2012 RTM to R3, and it went off without a hitch thanks to a rockstar crew, management and process owners who took charge and made huge commitments to testing, and an organized overall approach.  The first two elements come from working at a great company, and the last comes from careful thought and planning.  It's our approach that I'd like to review with you today.

SSRS Reports Won't Email as Attachment in Batch

During our AX 2012 upgrade from RTM to R3, we found that we could no longer have reports run in Batch that print via email with an attachment.  This worked perfect in RTM, but R3 seems to have introduced some new .NET based classes that behave differently.  I'll show you a work around we have found, while we await a response from Microsoft.

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 - In-Place Upgrade and EP Role Center Missing

In our in-place upgrade to AX 2012 R3, we found some issues with Enterprise Portal in our validation phase of the project.  Namely, the EP Role Center was not available within the client, despite all of the parameters and web site settings being correctly entered.  If we were to visit the EP site via a browser, it loads and we can successfully request new vendors, requisitions, expense reimbursements.

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!