In this article we will discuss a very important and useful Dynamics Ax feature, Global Address Book. This article is good for both functional and technical consultants.
Note: This article is for advanced Dynamics Ax users. Gook knowledge of Dynamics Ax and SQL server is required.
Global Address Book: It’s a mechanism to share organization details, mainly communication and address, between different business entities in the company. For example, you may have a customer which is also a vendor; In this case there would be data redundancy or unnecessary duplication of address data if you had to enter the same address on customer and vender. Wouldn’t be good, if you can store data once in Address table and share this between different business identities of the company. Yeah, sounds good. Solution to this problem is global address book or sometimes you call it directory.
This concept works on business parties. You create a business party in the global address book, defines various information regarding this, like addresses, communication details etc. You can create two types of parties, Organization (customer, vendor, business relation etc.) or Person (contact etc.).
All these parties are uniquely identified by PartyId in Ax. Ax uses this PartyId to connect address book to master records. Open customer from and go to general tab, you will see it.
You can create global address book entry in two ways. First create address book record and then attach it to customer/vendor at the time of customer/vendor creation. Customer (same applies to other business entities as well) form actually do it automatically. If you specify the same Customer Name as of your address book, it will attach it correctly. Second, if you are creating customer first, then also, if Ax does not find name in address book, it will create one address book entry for the same.
Ok, it’s good that you can share address but what about the cases where you don’t want to share a particular address entry on address book between business entities. Yeah, there may be chances where you want to keep address private to your business entity. Do you see Public checkbox on customer form address tab?
Public/Private Address: Only public addresses are stored in global address book. Private addresses are stored with respect to the business entity. I will explain how all this stuff is handled in a short while.
In the above picture, you can see same addresses that you have created on your customer but not it’s private address. And if you see grid at the bottom, it says that I am sharing the same address for customer ‘RahulCust’ and vendor ‘RahVend’. Cool, hmmm!
Primary address: This is your primary address for the address book. You can create only one primary address per address book entry.
Below are the tables involved in Global Address Book(Public addresses) creation:
17. Entity table. (CustTable, VendTable etc.)
Most of the tables store some related information about the party. So we will only discuss about the important ones used in creating links between address and business entities.
DirPartyTable, DirPartyECommunicationRelationship, DirPartyAddressRelationshipMapping, Address and for business entity we will use CustTable.
So, to define the relationship between Address and Customer, see SQL query below. It’s a very simple SQL query with describes relationship between all these tables. Here you go…
Below are the tables involved in the private addresses:
2. Entity table. (CustTable, VendTable etc.)
This is the query to reach at private address of an entity (CustTable).
Select * From Address
Where AddrTableId = 77 and AddrRecId = 5637144580
AddrTableId = Entity table id.
AddrRecId = Entity record id.
Now after seeing these queries you should be able to define the relationship between address and any business entity in AX.
Just for the quick note, there are three parts involved in Global Address Book.
1. Entity Tables like, CustTable, VendTable etc.
2. Global Address Book tables, all tables starting with Dir*. Already mentioned above.
3. Address tables, tables used to store actual address like Address, Address countryRegion, AddressState, AddressZipCode etc.