The reason I bring this up is to bring home a very important point: whenever possible, USE APIs! The only reason I was able to build an interface so quickly is because a simple static method call removed all of the complexity of the GAB framework. As outlined in the Dynamics AX 2009 Global Address Book whitepaper (there's an equally simple approach for 2012), I used the following line of code to build all GAB data for me and assign a new Party ID to each customer:
custTable.PartyId = DirParty::createPartyFromCommon(custTable).PartyId;
- Wasting brain power trying to understand a black box that doesn't necessarily need to be understood
- Making more work for yourself both in building the solution and supporting it over its useful life
- Creating more potential for error in terms of bugs and data consistency
- Wasting client resources and/or project budget
So prior to diving in and building a solution, see if you can leverage existing APIs to address the problem you're trying to solve. This principle applies not only to AX, but also to any mature language or enterprise software system.