MIIS/ILM/FIM Code Experiment: Dynamics AX Management Agent (part 1)


Hello Everyone! 

OK, I admit.  I am lame for not posting here in 16 months.  I've been very busy and I want to be able to provide valuable and helpful information but I need to table the previous topic.  In my last post, I was building a Fantasy Football Engine with ILM 2007  and I still want to do that... eventually.  More appropriately, however, one of my last projects was the Microsoft Retail Stores and one of the outcomes of the project was a Extensible Connectivity Management Agent for Dynamics AX. 

In MIIS 2003 SP1 and later (and ILM 2007/FIM 2010) the Extensible Connectivity Management Agent is the answer to the question "Does MIIS have a management agent for X?" if X is not compatible with a management agent built into the product or available as an add-on or download.  Utilizing the IMAExtensibleCallExport, IMAExtensibleFileExport and/or the IMAExtensibleFileImport interfaces of the Microsoft.MetadirectoryServices namespace you can hook into just about anything that is .Net to connect to a data source.  For Dynamics AX, I utilized the Microsoft.Dynamics.BusinessConnectorNet namespace to write entries to Dynamics AX within IMAExtensibleCallExport and to import and confirm building a file with IMAExtensibleFileImport.  I felt I needed to create this management agent using an Extensible MA rather than using a database MA, as Dynamics AX can utilize a couple of different versions of SQL, as well as other third party database products and I wanted to build the Management Agent to be reusable for future customers beyond the Microsoft Retail Stores.

Building the AX MA was not a trivial exercise.  I came into the project knowing absolutely nothing about Dynamics AX.  I must say, Dynamics AX is the singlemost elegant product I have ever worked with!!  I received a list of attributes and tables that I needed to interface with to provision users and a preferred order to write them in from the Retail Store AX team and started cranking the management agent out.  In the next few posts, I will address how I tackled building the management agent and some of the issues that were encountered and how they were resolved. 


 This posting is provided "AS IS" with no warranties, and confers no rights.