Updated Mappings for Microsoft Dynamics NAV and Microsoft Dynamics AX in Connector for Microsoft Dynamics RU 2
Several of you have asked what changed in the Microsoft Dynamics NAV and Microsoft Dynamics AX maps in RU2. They were updated to take advantage of new functions that were created which allow for much better support of Microsoft Dynamics CRM duplicate detection rules. If you do not want to delete and re-import maps in your existing integrations after upgrading, here are the changes that were implemented so you can copy these into you existing maps if you like. You will also need to update your object provider configuration files for several Microsoft Dynamics CRM entities. This can be done by simply re-running the Microsoft Dynamics CRM configuration utility and selecting to only generate configuration information on the entity selection screen. You can also add the updated fields to the configuration files manually if you wish and they are listed at the end of this post for you as well. Before updating your object configuration files, be sure to stop the Connector for Microsoft Dynamics integration service. The service can be restarted after the files have been updated.
Microsoft Dynamics NAV maps
Account to Customer Card map, Integration ID field:
=If(IsEntityReferenceKey(Dynamics Integration Key), GetEntityReferenceKeyIdAsString(Dynamics Integration Key), Upper(Account ID))
Contact to Contact Card Map:
Contact No.: =If(IsEntityReferenceKey(Parent Customer\Dynamics Integration Key), GetEntityReferenceKeyName(Parent Customer\Dynamics Integration Key), Parent Customer\Dynamics Integration Key)
Integration Customer No.:
=If(IsEntityReferenceKey(Parent Customer\Dynamics Integration Key), GetEntityReferenceKeyName(Parent Customer\Dynamics Integration Key), Parent Customer\Dynamics Integration Key)
Integration ID: =If(IsEntityReferenceKey(Dynamics Integration Key), GetEntityReferenceKeyIdAsString(Dynamics Integration Key),Upper(Contact ID))
NAV Contact Card to Contact map, Dynamics Integration Key field:
=CreateEntityReferenceKey(Contact No., Integration ID)
NAV Customer Card to Account map, Dynamics Integration Key field:
=CreateEntityReferenceKey(No, Integration ID)
Order to NAV Sales Order map, Sell to Customer No field:
=If(IsEntityReferenceKey(Customer ID\Dynamics IntegrationKey), GetEntityReferenceKeyName(Customer ID\Dynamics Integration Key), CustomerID\Dynamics Integration Key)
Microsoft Dynamics AX 2012 maps
Account to Customer map was updated to map the DAX Integration Key as follows:
=If(IsEntityReferenceKey(Dynamics Integration Key), GetEntityReferenceKeyIdAsString(Dynamics Integration Key), Concatenate("{", Account\ID, "}"))
Contact Persons Service to Contact map was updated to map Dynamics Integration Key as follows:
=CreateEntityReferenceKey(Contact Person Id, DAX Integration Id)
Contact to Contact person Service map was updated as follows:
Contact for Party Cust Account: =If(IsEntityReferenceKey(Parent Customer\Dynamics Integration Key), GetEntityReferenceKeyName(Parent Customer\Dynamics Integration Key), Parent Customer\Dynamics Integration Key)
Cust Account: =If(IsEntityReferenceKey(Parent Customer\Dynamics Integration Key), GetEntityReferenceKeyName(Parent Customer\Dynamics Integration Key), Parent Customer\Dynamics Integration Key)
DAX Integration Id: =If(IsEntityReferenceKey(Dynamics Integration Key), GetEntityReferenceKeyIdAsString(Dynamics Integration Key), Concatenate("{", Contact\ID, "}"))
Customer Service to Account map was updated to map Dynamics Integration Key as follows:
=CreateEntityReferenceKey(Account Num, DAX Integration Id)
Microsoft Dynamics AX 2009 maps
Account to Customer Service map was updated to map the DAX Integration ID as follows:
=If(IsEntityReferenceKey(Dynamics Integration Key), GetEntityReferenceKeyIdAsString(Dynamics Integration Key), Concatenate("{", Account ID, "}"))
Contact Persons Service to Contact map was updated to map Dynamics Integration Key as follows:
=CreateEntityReferenceKey(Contact Person Record\Contact person ID, Contact Person Record\DAX Integration Id)
Contact to Contact person Service map was updated as follows:
Customer Number: =If(IsEntityReferenceKey(Parent Customer\Dynamics Integration Key), GetEntityReferenceKeyName(Parent Customer\Dynamics Integration Key), Parent Customer\Dynamics Integration Key)
DAX Integration Id: =If(IsEntityReferenceKey(Dynamics Integration Key), GetEntityReferenceKeyIdAsString(Dynamics Integration Key), Concatenate("{", Contact ID, "}"))
Customer Service to Account map was updated to map Dynamics Integration Key as follows:
=CreateEntityReferenceKey(Customer Record\Customer account, Customer Record\DAX Integration Id)
Updates to Microsoft Dynamics CRM object provider configuration files
Account
<Field Name="parentaccountid" TypeName="EntityReference" DisplayName="Parent Account" IsRequired="false" LookupType="account" LookupField="accountnumber"/>
Contact
<Field Name="parentcustomerid" TypeName="EntityReference" DisplayName="Parent Customer" IsRequired="false" LookupType="account" LookupField="accountnumber"/>
Order
<Field Name="customerid" TypeName="EntityReference" DisplayName="Customer ID" IsRequired="true" LookupType="account" LookupField="accountnumber"/>
Invoice
<Field Name="customerid" TypeName="EntityReference" DisplayName="Customer ID" IsRequired="true" LookupType="account" LookupField="accountnumber" />
Comments
Anonymous
November 28, 2012
Hi, GetEntityReferenceKeyIdAsString(Dynamics Integration Key) - could you give some details how this function works? CheersAnonymous
November 29, 2012
Hi Chris Great work and I can tell that finally it's possible to have data in existing CRM solutions :) Keep up the good workAnonymous
December 05, 2012
@Konstantin - this function and it's counterpart were added in the RU2 release of Connector to give us the ability to tie an entity reference GUID and Logical key together. It will take the logical logical key for an entity reference and the GUID for the referenced entity and return them as as string if they are supplied to the function properly. That is why we first check to see if the integration key is an EntityReference key as well.