Add DLL to GAC for Microsoft Dynamics CRM SSIS packages

I recently developed a SSIS package for Microsoft Dynamics CRM and after deploying it on the production SQL server I got this Error:

 Data Flow Task:Error: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Xrm.Sdk, Version=6.0.0.0,
 Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
 File name: 'Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
 at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(Exception e)
 at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute()
 at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100 wrapper)

Since multiple CRM SDK  assemblies has been referenced in my SSIS project, the package execution failed with file not found error. In order to fix the issue,  those DLLs should be added to GAC in production server and here are the steps  to do it:

  1. My production environment is Windows server 2012, SQL server 2012, .net framework 4.0.
  2. In order to register DLLs I used Gacutil tool. The tool is part of Visual Studio tool set and in order to have it in production: Copy these two Gacutil files from dev environment
    • C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe
    • C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe.config
  3. Paste two files to “C:\Windows\Microsoft.NET\Framework\v4.0.30319” folder in production (.net 4.0):
  4. Run the command prompt as administrator and execute below command for each one of the CRM DLLs. for instance:
    • “C:\Windows\Microsoft.NET\Framework\v4.0.30319\gacutil.exe” /i “C:\Microsoft.Xrm.Sdk.dll”

now the package should run successfully on production server.

Using Informatica Cloud application to integrate propriety ERP system with Dynamics CRM

With release of office 365 cloud application and Dynamics CRM 2013 online, I’ve seen lots of SalesForce customers are switching to use Microsoft Dynamics CRM 2013.  it’s cheaper in the long run and will integrate better in enterprise environment with Microsoft back end and Microsoft office outlook.

One challenge of this transition would be transferring current integration from SalesForce to Dynamics CRM. Talking about integrating SalesForce and other systems, I find Informatica one of the best solution out there but when it comes to Microsoft Dynamics, it’s not as good as it should be, for instance it does not support CRM lookups inside the interface and you can’t do lookup directly inside the interface, and it also doesn’t give you much details while running integration, like number of rows before running integration.

There are two ways to do Dynamics CRM lookup in Informatica, using Visio informatica add-on or using easier way which is flat files.
in the next post I will talk about flat file Dynamics CRM lookup in Informatica.

Microsoft Dynamics GP and CRM Price list Integration

As I discussed in my previous post about GP and CRM integration,  here is the query for getting all the price levels in GP and combining them with Currency (in my example 2 currencies).

you can use this query in your integration application or your code to read the data from GP database and make it ready to send to Dynamics CRM price list.

SELECT [IV40800].[PRCLEVEL],
[IV40800].[DSCRIPTN],
[MC40200].[CURNCYID],
[MC40200].[ISOCURRC]
FROM [IV40800], [DYNAMICS].[dbo].[MC40200] [MC40200]
WHERE
[MC40200].[CURNCYID] = 'USD'
or
[MC40200].[CURNCYID] = 'CDN'

Microsoft Dynamics GP and Dynamics CRM Integration prerequisite 1

Before starting to put integration in place for Dynamics GP ERP system and Dynamics CRM make sure to check these requirements:

  • functional currency: each system should have the same functional currency. one of the first steps of integration is to bring all the functional currencies from GP to CRM.

Why it is important? Because certain entities in CRM like price list (in GP its called price level) are currency based but there is no currency defined in price levels in GP, if you have multiple currencies in GP , you should bring combination of all price level and system currencies in to CRM. It means if you have 2 currencies for instance CDN and USD in GP, for each price level you should create two records in CRM database one for CDN and the other one for USD.

stay tuned, I will update GP query for this post later on.

GP price level:

Pricelevel

Dynamics CRM price list:

Pricelist