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 Surprise)

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.

Comment List
  • Hi Dave,

    Unfortunately, this blog post was a report of a special Developer Day from Microsoft. I haven't had the opportunity to do a complete project on the integration.

    I suggest that you post your questions in the forum, so other community members can help you with this.

  • Hello,

    I see you have gone through at least one nav-crm integration and I wondered if you could possibly give some advice about issues we are experiencing.

    1. Line discounts from NAV don't transfer their discounts to CRM

    2. When the sync is set to 45 seconds, duplicates of "existing items" show up in Orders, but the total amount is correct.

    3. Shipping charges don't show up, or cause the copying to error. If the shipping charges are present, the order isn't coppied to CRM. If they aren't present, the order is copied over

    4. If duplicate detection is triggered when Submitting an account, the order doesn't copy over to CRM.

    5. If item Y is placed second, after item X, Y shows up in CRM as a duplicate of item X, but the total amount is correct

    I understand you will probably need clarification on all of these. Please email me and I'll give you all of the information you need.

    thanks for any help you can give.