Skip to main content

How to Integrate Microsoft Dynamics CRM with Microsoft Dynamics Navision 2017 with custom field mappings?



  • In my earlier Post of Nav-CRM integration, it was more focused on the functional side. Let’s go into the technical details of integration.
  • If you haven’t read my first post of Nav-CRM integration, I would strongly recommend you to visit the link, To see how the connection is made.How to integrate Nav-CRM? Part 1
  • In this post we will discuss how to create custom field mappings in Customer-Account synchronization.
  • Firstly there is a new table-type called CRM.

  •   Now what should you do if you have a new custom field in CRM and you want to map with a custom field in CRM account table ID 5341?
  • You cant create the field manually because it will give a ExternalType="" as Error. 
  • For this you will have to use the power-shell cmdlet to Refresh the schema of table CRM account(5341).
  • Open the Windows Power-shell ISE in Administrator mode.


  • Import-Module "C:\Program Files (x86)\Microsoft Dynamics NAV\100\RoleTailored Client\Microsoft.Dynamics.Nav.Model.Tools.psd1"
  • After running the above the script, you will have a new command called New-NAVCrm table.
    • We will use this command to refresh the schema of table CRM account(5431).
      • Before using the New-NAVCrm command make sure that you created a new field in accounts entity in CRM.

      • New-NavCrmTable -Credential (Get-Credential -UserName crmnsw@xyz.com.au -Message "Enter Password") -CRMServer https://xyz.crm4.dynamics.com -EntityLogicalName account -Name "CRM Account" -ObjectId 50010 -OutputPath D:\CRMObjects
      • The above command is used to refresh the schema of CRM account, here CRM server is the URL of the CRM and UserName is Admin user of CRM, entityylogicalname is name of entity which you want to refresh and objectId is ID of the output file and output path is the path where the file be stored.
      • When you get output file you DON'T have to import the object in navision instead of you have perform merging.
      • Export CRM account(5341) as txt file and merge the new fields produced in txt 50010, make sure to change field number as customized series.     

         
      • You have to merge the new field from the output file generated from the Powershell to the object file txt exported from Navision(Crm account).
      • After this Import the CRM account(5341) into Navision and make sure to Compile and save it.
      • Copy new the field from Crm account and paste it in Customer(18).
      • We have the field in Customer(18) table and in CRM account table and we have to set the mapping of both the fields.
      • All the mapping have been per-defined in Codeunit "CRM Setup Defaults"(5334), go to the function "ResetCustomerAccountMapping". Add the code mentioned in the screenshot.           
          
      • Now the mapping has been defined in the code but we will have to reset all the mapping manually.    
      • To reset the all the mappings we have to "Use Default Synchronization Setup"  which is available under  Crm connection setup under Action in Navision. Click on that to Reset all the mappings from default.

      • All the field mappings are stored in "Integration Field Mapping"(5336).

      • Now all the mappings have been done, we have to sync a customer from Navision 2017 to CRM which will become an Account.           
      • Before syncing customer make sure that the salespeople of the customer is synced, only then the customer will be able to sync error free. To sync salespeople you can follow the steps of coupling which are mentioned below.
      • Open the customer card of any customer you want to sync, under navigate tab you would see Dynamics CRM action group, click on set up coupling.
      • A new page will open, in that page you can see what all field mappings are there and what is the data stored there, to create the same customer in CRM, you have to check the "Create New". This will create a new account of Nav customer in Microsoft Dynamics CRM. Click Okay and a popup message will come as "Synchronization complete".
      • Go check in CRM in accounts a new account would be created of same customer of Nav, by default they will be coupled to each other, so any change in nav would bring a change in CRM of the customer  and vice-versa provided the fields are syncing bi-directional. 
      • Like this you can sync the other entities of CRM, e.g. Item-products, Currencies, Salespeople-Users.
      There is a slight difference in syncing Sales Order from CRM to Nav but you guys will have to wait for my next post.



       






















        


      Comments

      1. Waiting for your next post sir :p

        ReplyDelete
      2. Hi! I execute command New-NavCrmTable -Credential... and PowerShell return an unhandledErrorMessage: Could not load file or assembly 'Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35'

        Could you help me?

        ReplyDelete

      Post a Comment

      Popular posts from this blog

      How to Publish Custom Codeunit as web service and Consume it in Navision Part 1

      In this post we will create a codeunit and publish this as a web service which will read a xml and send the XML in a variable big text format and consume the web service in another Codeunit of Navision I will divide this Blog into 2 parts. In the first part we will be publishing the Codeunit as web service. In the second part we will be consuming the web service. Pre-requisite-      1)   You will have to create staging table, I have created customer staging table.      2)   You will also have to create XMLport for the staging table we created so that we can export and import data into the table.      3)   You will need to install Chrome extension Boomerang (we will discuss its use later on). Let’s begin- I have created a staging table of customer with Primary Key as Entry No Similarly, I have created a XMLport of this staging table. Please change the Encoding property to UTF-8 and default namespace to No . As shown

      How to Integrate Microsoft Dynamics CRM with Microsoft Dynamics Navision 2017?

         In my post, you will get to know how to integrate CRM with Navision 2017.     Prerequisite for CRM-     You would need an instance of CRM. If you dont have it you can click on the link and create one. https://www.microsoft.com/en-us/dynamics/free-crm-trial.aspx     Note- All my development and testing have done in Azure server.       Prerequisite for Nav - make sure all the CRM objects in Navision 2017 are the version of  NAVW110.00.00. 14199 , that is of cumulative update 2 , otherwise you get errors.     Follow the following Steps-   1. Go to CRM homepage, in the homepage go to Settings\Customizations and click on Solutions.       2.   Import a solution in CRM by clicking the import button and browse the zip file which is available in NAVDVD\CrmCustomization.        3. Click Next and Import the solution.       4. Now, under settings Go to Security and click on Users.       5. We need Two users in CRM to perform in