Connector -- Integrating Dynamics ERP with Dynamics CRM

Connector for Microsoft Dynamics is an integration solution which is targeted specifically at the Microsoft Dynamics product family. Connector provides an out of the box integration between Dynamics CRM and Dynamics ERP solutions.

Lessons learned from a Partner when upgrading Connector for Microsoft Dynamics MSDI database

Lessons learned from a Partner when upgrading Connector for Microsoft Dynamics MSDI database

Rate This
  • Comments 3

The MSDI database that Connector for Microsoft Dynamics uses for storing information about integrations is intended to be used ONLY for Connector for Microsoft Dynamics.  Recently I was working with a partner who was experiencing some issues when upgrading to the latest version of Connector for Microsoft Dynamics.  The partner was receiving error messages similar to the following in during the upgrade from the Connector for Microsoft Dynamics installer:

And in the event viewer the following was recorded:

Warning SQL72015: The table . is being dropped, data loss could occur.

Error SQL72014: .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur. 

   at Microsoft.SqlServer.Dac.DeployOperation.<CreatePlanExecutionOperation>b__b(Object operation, CancellationToken token)

   at Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)

   at Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)

   at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)

   at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)

   at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, Action`2 reportStatus, CancellationToken cancellationToken)

   at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, CancellationToken cancellationToken)

   at Microsoft.SqlServer.Dac.DacServices.Deploy(DacPackage package, String targetDatabaseName, Boolean upgradeExisting, DacDeployOptions options, Nullable`1 cancellationToken)

   at Microsoft.Dynamics.Integration.Install.CustomActions.CrmAdapterCustomActions.<>c__DisplayClass1.<DeployDacPac>b__0()

   at Microsoft.Dynamics.Integration.Install.CustomActions.Utility.TryCustomAction(Session session, String customActionName, Func`1 action)

If you run into a similar situation, here is what might be going on.  In this customer's case they had installed other tables into the MSDI database for another application.  The .dpac utilities that are used for upgrading the MSDI database only have knowledge of the tables within a standard MSDI database and in this case, when the other tables were encountered the upgrade utilities failed because they did not know how to upgrade those tables.  This is similar to the situation that occurs when "extra" items are added to the tables in MSDI that the upgrade utilities do know about.  For example, if you have added a trigger to one of the tables in MSDI, then the upgrade utilities will drop that trigger.

 

PLEASE READ BEFORE POSTING
Please only post comments relating to the topic of this page.
If you wish to ask a technical question, please use the link in the Related Links section (scroll up, on right hand side) to ask on the Dynamics Communities. If you ask on the Communities, others in the community can respond and the answers are available for everyone in the future.
Leave a Comment
  • Please add 4 and 5 and type the answer here:
  • Post
  • Hi, i ran into the same problem, but with no "extra" items in the tables.

    Let me introduce my case, i have an old version and i want to install the new version, because we update CRM 2011(rollup 17) and the connector starts failing on test enviroment:

    First Issue:

    Problems login the account into active directory during the second step of the installation. Seems to be a double hop error into active directory. The only solution that i found is to install and create a local SQL database for the MSDI. Using a local account that not logons into the domain. So when installation finnished the account was changed to a Domain Account for the service.

    Second Issue:

    Trying to upgrade the old MSDI, i got the same error as you have, so i created a new one.

    Third issue:

    Importing mappings i got a random error "Object reference error", i fixed that restarting every time the connector

    Fourth issue:

    All mappings installed, y checked the filters in the mapping and they are lost!, I copied the filters for the mappings from production server.

    Fifth Issue still unfixed:

    The mappings between CRM and AX are working fine. Some integration errors but when retries the information is moving from CRM 2011 to AX 2009

    The mappings between AX and CRM returns an object reference error, no description, no log, no event viewer information, nothing. We checked MSDI tables for null values and everything seems to be fine.

    Checked on AX side and seems to be ok.

    We connected fiddler2 to the server and we have http 500 errors but the XML passed seems to be encripted, calling different methods.

    We go back to the old connector and have errors in method FindKeys from AIF Adapter.

    Note:

    CRM 2011 rollup 17

    AX 2009 SP1

    We cant use CRM 2011 adapter for integration because have problems trying to integrate CRM and AX, we fix it going for the standard CRM adapter. This problem cames from the old version of the connector and seems to never be fixed.

  • @Couchiman - did you follow the upgrade steps as listed in the user guide?  Have you logged a support case for these issues?

  • Hi, we finally found the problem.

    The problem was with the Contacts that are not present in AX Global Address table.

    It could be a nice feature to allow debug information that is passing between interfaces, like the AX Webservice just including the PDB of the code to use a Memory Profiler.

Page 1 of 1 (3 items)