NAVR2 Developer Day (Part 4) - Dynamics CRM Integration
Hi all,..
Well this is my fourth post about the NAV 2009 R2 Developer Day that took place yesterday. This time the subject is the integration of Dynamics NAV with Dynamics CRM. Here are some of the highlights.
Working with and enhancing the CRM integration
There is now an synchronization possible between Microsoft Dynamics NAV and Microsoft Dynamics CRM. This is done by using the “Connector for Microsoft Dynamics”.
This connector also uses a own SQL db. The connector uses Solutions templates. The sync is done by running data through maps to convert to data from one system to another.
NAV contains a “Integration Record” table that keeps track of the records that are synced. This is done by using an Integration ID (GUID). It also keeps track of the timestamps when records are modified, deleted, etc.
Codeunit 5151 Integration service is exposed as a webservice.
The following NAV entities are synced
- Customer (Account in CRM)
- Contact (Contact in CRM)
- Item/Resource (Product in CRM)
- Sales Order (Order in CRM, can be created in CRM and synced once to NAV, it then becomes readonly in CRM)
- (Posted) Sales Invoice (Invoice in CRM)
- Sales Person (ERP System user)
Only Customer and Contact are synced both ways, the other entities are only synced from NAV to CRM.
How Sync issues are handled
Integration issues are registered in a log. In my humble opinion, this never is going to work. No user is ever going to look into the log in time. Since no message is shown, errors are going to be missed/ignored. So the integration requires that a company that uses this, has an system administrator who monitors this quite regularly.
Mapping entities
1. Adding fields to already integrated entities
- Fields on the page exposed as a web service
- Fields included in maps
2. Adding new entities
For each mapped entity, you add code to codeunit 5150 “Integration Management”
- List as IntegrationRecord
- Specify which page
- Sometimes add a little code for special cases
i.e. Parent to child integration
Special cases
- Child updates parent timestamp
- Sales line to Sales Header
- Ship-to Address to Customer
- Partially integrated tables
- Integrate only when contact.type = person
- Etc. (missed the rest of the slide, sorry about that
)
Implementation Considerations
- Every instance of a NAV to CRM integration is a project
- The dynamics connector customizes CRM
- Backup and restore must be synced across 3 databases: CRM, NAV and Integration
What is shipped is not ready to deploy out of the box to a customer!!
The integration doesn’t work with 2009 SP1 or earlier, only from 2009 R2 and up.