Sep
5
2013

Connector for Microsoft Dynamics V3 Refresh available

Connector for Microsoft Dynamics V3 (3.0.430.1) refresh is available.  This refresh addresses some issues that you may have encountered with the initial release of Connector for Microsoft Dynamics V3.

Refresh Highlights:

  1. This refresh addresses the issue of custom fields not being available for mapping on existing maps after the configuration utilities have been run against those mapped entities
  2. Integrations that are saved to template now have their name set to be the same as the file name when they are exported, which allows for importation without errors
  3. Microsoft Dynamics NAV Sales Orders are properly made available for mapping and are set properly as endpoints in those custom mappings

To download this release for your Microsoft Dynamics ERP system, go to CustomerSource:

Please, read original post at the MS Connector Team Blog:

http://blogs.msdn.com/b/dynamicsconnector/archive/2013/09/05/connector-for-microsoft-dynamics-v3-refresh-is-now-available.aspx

Jun
19
2013

Connector for Microsoft Dynamics V3 now released

Connector for Microsoft Dynamics V3 (3.0.217.1) released.  This release includes a major update to the MSDI database and Connector for Microsoft Dynamics service, designed to improve efficiency of the service as well as making it easier for customers and developers to interact with it. This release also addresses some of the key suggestions that you have given us regarding your V2 RU 3 deployments.

Feature list (all of the features listed for all previous releases are still included):

  • Filters are now saved with maps and are imported when creating a map from a file that has a filter saved in it
  • When deleting an integration, site, or map the service no longer needs to be stopped and restarted
  • When changing the “check for data modified after” date for a map, the service no longer needs to be stopped and restarted
  • Connector for Microsoft Dynamics service is now a WCF service that is run inside of its own process host, allowing developers to programmatically interact with the service
  • Maps can now be run “on demand” using the “RunMapNow()” API on the updated Connector for Microsoft Dynamics service.  Stay tuned for a blog post demonstrating how to do this programmatically.
  • System handle counts and memory consumption have been reduced for long running integrations
  • Connector for Microsoft Dynamics client responsiveness has been improved
  • Performance when integrating to Microsoft Dynamics CRM online has been increased
  • The MSI now validates the SQL server version, as well as the other system requirements
  • “Socket Connection was aborted” errors when integrating using WCF services are now avoided

You can download this release from Customer Source - Connector for NAV

Please, read full post version on MS Connector Team Blog.

 

Jul
12
2012

How to regenerate IDs not for all integrated table

SCENARIO:

You added additional field in NAV Customer to Account map and want to re-sync all Customers to have new field populated in Accounts.

RESOLUTION:

Here is several ways to re-sync data from NAV to CRM, so lets review them:

1. Update "Check for data modified after" on some early year.

PROS: This is out of box feature and allow to re-sync each map independly.

CONS: To modify this date, you have to stop Connector. Not really good choice for pruduction Integration, espesially for big integrations.

2. Run Function in Marketing Setup-->Function-->Generate Integration IDs ...

PROS: Don't need to stop Connector

CONS: It's non selective function and will push to re-sync ALL table participated in Integration. If you have a lot data in one of Integrated table, this option, probably not for you. E.g. - I have 149000 Customers in one integration and if they will start to resync, it will takes more then two days. I never will use this function for this client because full resync can takes several days.

3. Build Custom function to resync only one Table without stopping Connector.

PROS: It will do exactly what you want. No need to stop Connector. Other Tables will not be touched and resync time will be minimum.

CONS: You have to spend some time to build this solution and for this you should be able to modify Codeunit 5150

Here I want share my customization which I'm using for 3rd option.

I NAV I created custom form which contain List of Integrated Tables and button "Regenerate IDs for Current Record". So, to resync particular Table, everything what you need to do:

1. Open form ReGenerate IDs

2. Choose Table which you want to update

3. Click Regenerate button.

How to upload this solution:

you can download this object in TXT or FOB formats and import in your NAV R2 database.

This form using internal functions from Codeunit 5150 and before form can be compiled, we have to make those functions available from outside:

1. Open Codeunit 5150

2. Go to View-->C/AL Globals-->Functions

3. Select "IsIntegrationRecord" function

4. Open Properties (SHIFT+F4)

5. Change "Local" propertie from "Yes" to "No"

3. Select "InitializeIntegrationRecords" function

4. Open Properties (SHIFT+F4)

5. Change "Local" propertie from "Yes" to "No"

After those modifications, Form should be compiled and run without any issues.

Feb
27
2012

The most useful Tool for Troubleshooting Integration

Today I want to talk about Fiddler2 and how to use it for resolving Integration Errors. Pretty often during integration we are receiving completely un-meaningful or confusing errors, so resolving them become a really nightmare. Here is the good example:

or

The first error is completely useless and not give you any information about real error. The second one is given you only partial information and it's actually can give you wrong direction for investigation and you can spend hours and hours with zero progress at the end(You'll see why in the end of this article).

In those cases Feddler2 is extremely useful and, probably, only one tool which can help you resolve similar errors.

So, Feddler2:

Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. In our case it will log all queries and transferred data between Connector <-> NAV and Connector <-> CRM.

Part 1. Installation.

Fiddler is freware and to install it, just enough download installation package from official site.

1. login into server where Dynamics Connector is installed.

2. Go to http://fiddler2.com/fiddler2/ and click "Downoad Fiddler" ( or "Get Fiddler!")

3. On the second page click "Install Fiddler2"

4. In "File Download - Security Warning" Dialog Box click " Run" and Wizard Instructions to complete Installation.

Part 2. Run Fiddler2.

Once Fiddler2 is Installed, we are ready to use it for catching Connector Errors.

1. To be able trace all activities from Connector, you MUST run Fiddler2 under the same account which you used for Connector Services. To check it, goto Services and double click on Connector Service:

2. Go to "Start" and SHIFT+Right Click on Fiddler2:

3. In Open Dialog Box enter credentials which you are using for Connector Service:

In open form you'll see all capturing activities from Connector:

Part 3. Troubleshooting with fiddle2.

To find actual error message, you should run Fiddler2 in "capturing" mode and resync record which generate error in Connector.

When Error occur, you'll see this line in fiddler in red.

Warning!!! Don't leave fiddler2 in capture mode too long.

So, let's see what show us Fiddler2 for Errors from above.

Error 1.

Connector show error message as "Exception occured in Microsoft Dynamics NAV".

In Fiddler2, same error event but more explainable - "There is no Integration Record withing the Filter".

This error message much more meaninful and allow me to do next step in error investigation.

Error 2.

Second error "Account with ID=... not exist" looks not difficult. But here is the issue with this particular Integration:

- Because Customers was initially synched with existing Accounts in CRM using Duplicate detection feature, They have:

NAV Integration ID <> CRM Account ID

- In Customer to Account map no one link to Account.

So, if here is no Account look up fields in map, then what is the cause this error? (one more weired detail - even if error occur, record updated successfully in CRM).

Let see what fiddler can show us:

As you can see on screenshot, issue actually not with Account entity. During update Account, Connector trying update Customer Address for this Account at the same time and failed because, as I described above, NAV Integration ID <> CRM Account ID.

This is out of box feature(Customer Address Integration) and I cannot turn it of. But I'm not really worry about this error, because my Accounts updated correctly and I don't care about Customer Address Entity.

So, if you going to work with Connector, I would strongly recommend you start using Fiddler2 as soon as possible and it will save you incredible amount of time.

Feb
17
2012

Connector for MS Dynamics R2- new features overview

Nice and short video overview about new V2(FP7) Connector features was posted by MSFT Team on their Connector Blog recently. In This overview Chris show us - how to use Map Filtering - what does mean new CRM 2011 Adapter setting and how to use it - How to use Connector with SL2011 - Changes in Licensing (very good possibility for Customers with integration CRM - Custom Software)
Feb
1
2012

Item synchronization - should we sync blocked Items into CRM or not?

In one of my first Integration project Customer said that he don't wan't to sync blocked Items with CRM Prodicts.

Sure, why not. I checked Connector Manual, not found any specific about this case and simple exclude Blocked Items from Integration process using Codeunit 5150.

That was my mistake ... because after Go-Live they start to experience issue with blocking Items.

So, what happen if using for blocked Items filtering in NAV?

Let's say you have not blocked Item_1 in NAV. After Initial sync it's created as Product_1 in CRM with Active status.

When after while you block Item_1 in NAV, filtering function(in Codeunit 5150) will mark this record as Deleted in "Integration Record" Table and Connector will try to delete related product in CRM.

But Product_1 already used in some CRM Documents and cannot be deleted.

Result: In NAV Item_1 - blocked and cannot be used, In CRM related Product_1 still Active and can be used in any Documents.

After having this Issue, I had to stop filtering out blocked Items and start to sync always all items but mapping Blocked field with Prodict Status.

So, logic is very simple:

IF NAV Blocked=No THEN Product Status=Active (0)

IF NAV Blocked=Yes THEN Product Status=Inactive (1)

For some reason, Mapping State field not included in standard Item to Product map and you have to do this manually. Here is the mapping formula to change Status in CRM Product:

State =If(EqualTo(Blocked, "Yes"), 1, 0)

Hope this will help you avoid similar issues in your Integration Projects

Jan
31
2012

How to update Production Dynamics Connector from Development environment

If you doing implementation for Dynamics NAV Connector and using for design you development environment, probably you already have some difficulties to transfer designed maps into your Production Connector. If you will save into file map created in your Dev Connector and try to create this map from file in Production Connector, you would receive next error message: " Object reference not set to an instance of an object." The issue with custom CRM Entities. Each Custom Entity has unique Metadata ID and when you include your entity in Integration, Connnector add "EntityMetadataId" property into Object Adapted: And this MetadataId unique per any CRM Organization. So, here I want to give you one of the methods to decrease headache during update process from Development to Production or Test environments. CASE 1: Creating Production Integration from Development Connector
  1. Install Production Connector
  2. If Connector service was run, stop it
  3. If you have NAV Custom Tables in your Integration:
    1. Import all customization from DEV Database. This should include all custom Tables, Pages and updated codeunit 5150
    2. Update WebScervice and Integration Pages Tables with your custom Integration Pages
  4. Update Connector Settings for NAV - You should mark all Tables which you going to use for Integration (all NAV Adapters should be created for chosen Company)
  5. If you have Integration for several NAV Companies, repeat Step 4 for each Company
  6. Import Connector Solution into CRM
  7. Update Connector Setting for CRM - Mark all Entities which will be used for Integration.
  8. Open your DEV Connector Client - Right click on your DEV Integration and Save. It will save all maps in Template file (*.intx)
  9. Copy this file in your Production Connector: "C:Program Files (x86)Microsoft DynamicsMicrosoft Dynamics AdapterTemplates"
  10. Copy all CRM Adapters from DEV Connector: "C:Program Files (x86)Microsoft DynamicsMicrosoft Dynamics AdapterAdaptersMicrosoft.Dynamics.Integration.Adapters.Crm40ObjectConfigCRM Organization"
  11. Paste copied adapters into same folder in your Production Connector with replacing existing Adapters (this adapters change will allow you to use maps from DEV Connector)
  12. If you have several CRM Companies for Integration, repeat Step 11 for all of them
  13. Start Create Integration in Production Connector:
    1. Click "New Integration" button
    2. Chose "From Template"
    3. Open Templates Pick List and choose Blank Option(This is your previously saved Integration Tempale. I don't know yet how to put Name in this template).
    4. Choose Company for Application 1
    5. Choose Company for Application 2
    6. Hit Create. (System will create new Integration with all your maps)
  14. If you need to create multiple Integrations, repeat Step 13.
  15. Start Connector Service
  16. Begin Initial Integration
... CASE 2: Update existing Production Connector with maps for new Tables/Entities
  1. If Connector service was run, stop it
  2. If you have NAV Custom Tables in your Integration:
    1. Import all customization from DEV Database. This should include all custom Tables, Pages and updated codeunit 5150
    2. Update WebScervice and Integration Pages Tables with your custom Integration Pages
  3. Update Connector Settings for NAV - You should mark Tables which you going to include in existing Integration
  4. If you have Integration for several NAV Companies, repeat Step 3 for each Company
  5. Import in CRM Solution with your Custom Entities
  6. Update Connector Setting for CRM - Mark all Entities which should be added in Integration. (Don't forget check "Skip complete configuration ...")
  7. Copy all CRM Adapters from DEV Connector: "C:Program Files (x86)Microsoft DynamicsMicrosoft Dynamics AdapterAdaptersMicrosoft.Dynamics.Integration.Adapters.Crm40ObjectConfigCRM Organization"
  8. Paste copied adapters into same folder in your Production Connector with replacing existing Adapters (I even would suggest before paste, move out ALL existing Adapters from this folder)
  9. If you have several CRM Companies for Integration, repeat Step 8 for all of them
  10. In DEV Connector Save new created Maps into files.
  11. In Production Integration, Create all new Maps from files.
  12. If necessary, repeat Step 11 for all Integrations
  13. Start Production Connector Service
  14. Activate created Maps
Hope those instructions will help to reduce your frustrations during creating/updating Production Connector
Jan
2
2012

New Connector FP7 released

Yesterday was released new Featured Pack 7 Connector version.

You can read about release on Team Blog:

http://blogs.msdn.com/b/dynamicsconnector/archive/2011/12/26/new-connector-for-microsoft-dynamics-release-available.aspx?wa=wsignin1.0&CommentPosted=true#commentmessage

Setup and Install Documentation available for public:

http://www.microsoft.com/download/en/details.aspx?id=10381

Installation files can be downloaded from Partner Source site:

https://mbs.microsoft.com/partnersource/deployment/resources/productreleases/MDNAV2009R2_CRMConnector

Some major new features was included in this release, such as Source filtering or Connecting to CRM with IFD mode.

So, lets read updated documentation, Install new version and ...viagra Good Luck with testing.

Sep
2
2011

Connector for Microsoft Dynamics Feature Pack 6 for Microsoft Dynamics NAV 2009 R2

New Featured Pack 6 for NAV Connector was released. You can download it from PartnerSource: Dynamics NAV Connector Featured Pack 6 Release At first look they changed integration for Currencies : instead sych Currencies with existing Rates, they sync Currencies Codes which Connector can meet during Customers synchonisation. Will try to play more with this release later but I really expected much more from this release ... All my customers pretty stable with their currencies and enough sync currency list at the beginnig and not touch anymore. Have no idea what I can offer clients from this release that he will agree to spend some money for this upgrade ...
Aug
30
2011

Connector sync Error: There is an error in XML document (1, 700)

Yesterday I did initial synchronization from NAV to CRM for 20000 Customers and got next error:

"There is an error in XML document (1, 700)"

I understand that here is an issue with data, but how I can find it in 20000 records???

Unfortunately I was not able to find this XML file and just used old fashion method - start sync in batches.

I split data into two equal batches and tried sync the first one. If batch failed, I sync second one and then split broken batch again.

That was a long day…

At the end, as I expected, I found record with forbidden character in Salesperson Code field. After deleting this character all data come through NAV Connector without any issue.

I would like to use any other way for resolving issues like that much faster but have only described above.

At least you know what can cause this issue and have one working method to resolve it.

Blog Author

Konstantin Levchenko