Welcome to MSDN Blogs Sign in | Join | Help

Configuring a Service Business in Microsoft Dynamics CRM 4.0

I’m excited to be the new writer on the Microsoft Dynamics CRM Product Documentation Team and I’m happy to contribute to this team blog.

When I first arrived I became very interested in the Service Scheduling feature and have written three articles about it for the Microsoft Dynamics CRM 4.0 Resource Center. In the article Configuring a service business in Microsoft Dynamics CRM 4.0 I use the example of a sports food service business to illustrate the power of the scheduling engine. The concessions business has some interesting dynamics: staff for food and drink stands, each resource having different skills (cashiers, cooks, counter servers), and some resources needing two skills, like a cashier for a mobile food service truck − who also must be able to drive the truck.

The article answers the question, how do we automatically schedule personnel based upon skill so that we can staff multiple food stands in a sports venue, like an arena or coliseum?  The answer is creating resource groups for skilled staff, creating services that require these skills in certain combinations, and then creating service activities in the scheduling calendar. It works! The power of the scheduling engine is amazing. Check it out and let me know what you think. If you have any insights or experiences around services scheduling (inbound or outbound), send them to me. I’d be delighted to hear them.

Kind Regards,

James Matteson

Posted by crmblog | 1 Comments
Filed under:

CRM Client AutoUpdate

A new feature in CRM 4.0 is for administrative ability to prompt clients to install patches on their CRM client. This feature is called AutoUpdate and it applies to any client where the user has administrative rights on his/her machine. I’ll document some common scenarios here and I’ll encourage you to read the Implementation Guide – Operating document for more detailed information.

When you install the CRM 4.0 client, one of the new components is a tool called Update. This is the client component of the AutoUpdate process. You can launch the Update tool directly, run it as a scheduled task quietly, launch it from Outlook under the CRM toolbar – Check for Updates or it will run each time you launch Outlook. Also, by default, the AutoUpdate check is performed on all CRM 4.0 clients* every 4 hours*.
* These options can be turned off or adjusted via registry keys.

In order to make updates available to clients, you need to post the updates to the server. The CRM Server installation comes with a new tool called the Client Patch Configurator. The tool is installed by default at [Program Files]\MSCRM\Tools\Microsoft.Crm.Tools.ClientPatchConfigurator.exe. You need to run a DOS command to call the XML file you can use to define the patches that will be provided to the client. The patch configurator process will add the patches to the MSCRM_Config database. You can use the tool to create, update or delete patch information, so if you add a patch you didn’t intend to add, you can remove it from being pushed to clients.

With that background information, here are the steps I give to customers asking how to set up AutoUpdate in their environment:

1. The first time you run autoupdate, go to your [ServerInstallDir]\Server\CRMWeb and create a new folder named crmpatches. Create this same folder on each subsequent web server in your deployment.

2. On each client, go to the registry and add a value in the HKEY_LOCAL_MACHINE\Software\Microsoft\MSCRMClient key called AutoUpdateDownloadUrl (String). Give it a value of http://[servername]/crmpatches/ (remember the closing /). If you don't set this value, the clients will look to http://go.microsoft.com/fwlink/?LinkId= then the value in the LinkId XML parameter.

3. Download the hotfix to your server (or each web server) and extract the contents to the [ServerInstallDir]\Server\CRMWeb\crmpatches folder.

4. Extract the contents of the client patch on your server to determine the PatchId value which is required for the XML file configuration.

a. Open a command prompt, and type [DownloadLocation]\CRMv4.0-KB[KB#here]-i386-Client-INTL.exe /x

b. You will be prompted for a location to which the files will be extracted

c. Once extracted, find the config.xml file at the root of the directory

d. Within the XML file, copy the value of the <patchid> element and paste it into your configuration file in step 5

5. Create your configuration XML file

Here's a sample configuration XML for the KB949086 fix:

<ClientPatches>

<Create>

    <ClientPatchInfo>

        <PatchId>{85F5616A-F266-4E0B-BB4C-39B5B3AECE5C}</PatchId>

        <Title>Duplicates in Outlook with Shared Calendars, Tasks or Contacts</Title>

        <Description>Sharing calendar, contacts or tasks can allow editors to clear all custom crm information resulting in duplicates when synching</Description>

        <IsMandatory>true</IsMandatory>

        <IsEnabled>true</IsEnabled>

        <ClientType>OutlookDesktop,OutlookLaptop</ClientType>

        <LinkId>CRMv4.0-KB949086-i386-Client-INTL.exe</LinkId>

    </ClientPatchInfo>

</Create>

</ClientPatches>

Note: You can add multiple <ClientPatchInfo> and container elements to post multiple hotfixes at one time. The title and description are up to the administrator to complete. The IsMandatory option dictates whether a user has to install this hotfix in order to continue using CRM functionality within CRM. The ClientType can be either OutlookDesktop or OutlookLaptop or OutlookDesktop,OutlookLaptop depending on which clients should receive the updates. There are several more options available, so please see the Implementation Guide for further detail.

6. In a command prompt, go to the directory where the ClientPatchConfigurator.exe is located ([ServerInstallDir]\Tools and type microsoft.crm.tools.clientpatchconfigurator.exe [configfile].xml

7. Once the patch has been uploaded, launch the Outlook client

When Outlook launches, the following screen will pop up:

clip_image002

When complete, you'll see this screen:

clip_image004

8. You can then proceed to use CRM with the hotfixes applied. The hotfix installs will show in the Installed Updates area within Programs and Features in the Windows Vista Control Panel or in Add/Remove Programs on Windows XP.

This feature provides administrators with the assurance that their clients will be on the most updated hotfix. Therefore, CRM client troubleshooting doesn’t have to begin with the question “Did you apply these patches?”

Eric Newell

Posted by crmblog | 0 Comments

Integrating CRM using SQL Integration Services (SSIS)

Today we welcome our guest blogger CRM MVP Darren Liu from the Crowe company.

Many Microsoft Dynamics CRM (MSCRM) implementations involved integration with other systems. When I think of integrations between systems, the common approaches pop up immediately in my mind are BizTalk, Scribe or to write a custom integration framework using the CRM Software Development Kit (SDK).

By working with Darren Hubert, Solution Architect from the Microsoft National Service Pursuit Team in my last project, I have discovered another approach that I encourage you to consider in the your integration project which involves using SQL Integration Services (SSIS) to integrate with Microsoft Dynamics CRM.

SSIS is a platform for building data integration solutions and it is a service that runs on the SQL Server. SSIS replaces the existing Data Transformation Services (DTS), which was introduced to the market as a component of SQL Server 7.0, and runs a unique package which stores the design of an ETL (Extraction -> Transformation -> Load) process.

Because SSIS in SQL 2005 was difficult to connect to Web Services by default, I did not spend much time into my research for my previous integration projects. Thanks again to Darren Hubert and his friends, who showed me a work around using a CRM proxy class in my last project. I was able to successfully integrate CRM 4.0 using SSIS. Here I would like to share with all of you on what I have learned so that you can leverage it on your next CRM integration projects.

Before we get started, here’s the list of requirements:

  • SQL Server 2005 Standard/Enterprise Edition with SQL Integration Service Installed
  • Microsoft Dynamics CRM 3.0/4.0
  • Visual Studio 2005 Professional Edition
  • CRM SDK , C# and VB.Net knowledge

In this blog, I will use a simple example to show you how to send contact data stored in a SQL database to MSCRM 4.0 via CRM Web Services using SSIS.

Source Data

The source data is from the data from the other system that you would like to send to the CRM system. You source data can be a text file, an Access database, an Oracle database, etc… In this example, I will create a simple Contacts table in a SQL database that’s already existed in environment.

Source Table: Contacts

First Name

Last Name

Phone

Email Address

John

Smith

312-888-8888

jsmith@crowe.com

Darren

Liu

312-999-9999

dliu@crowe.com

Adam

Johnson

312-555-5555

ajohnson@crowe.com

   1: CREATE TABLE [dbo].[Contacts](
   2:     [ContactId] [int] IDENTITY(1,1) NOT NULL,
   3:     [FirstName] [varchar](50) NULL,
   4:     [LastName] [varchar](50) NULL,
   5:     [Phone] [varchar](50) NULL,
   6:     [Email] [varchar](50) NULL,
   7:  CONSTRAINT [PK_Contacts] PRIMARY KEY CLUSTERED 
   8: (
   9:     [ContactId] ASC
  10: )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  11: ) ON [PRIMARY]
  12: GO
  13:  
  14: INSERT INTO Contacts (FirstName, LastName, Phone, Email)
  15: VALUES ('John','Smith','312-888-8888','jsmith@crowe.com')
  16:  
  17: INSERT INTO Contacts (FirstName, LastName, Phone, Email)
  18: VALUES ('Darren','Liu','312-999-9999','dliu@crowe.com')
  19:  
  20: INSERT INTO Contacts (FirstName, LastName, Phone, Email)
  21: VALUES ('Adam','Johnson','312-555-5555','ajohnson@crowe.com')
  22: GO

Create CRM Proxy Class

The SSIS framework provides a Web Service Task which executes a Web Service method, however it’s difficult to use. To reduce the complexity of the SSIS integration with CRM, generate a CRM Proxy class using Visual Studio. This will make the integration process much smoother and you will encounter less road blocks.

Start a New C# Class Library Project

clip_image002

  • Create a project name “CRM.Proxy”

Sign the Project

clip_image004

  • Right click on the project and select “Properties”.
  • Click on “Signing” tab and check the “Sign the assembly” checkbox.
  • Select “<New>” from “Choose a strong name key file” dropdown.
  • Give it a name for the Key. In this example, I use “integration” as my key name.


clip_image006

  • Click OK.

Add CRM Web Services

Add CRM Web Service and CRM Discovery Service to the CRM.Proxy project. Visual Studio will automatically run WSDL.exe in the background to create a proxy class for these two CRM Web Services which we will use later on in building the SSIS package.

  • Right click on Crm.Proxy project in the solution pane, then select “Add Web Reference…”.
  • In the URL text box, type in the CRM Web Service URL and give “CrmSdk” as the Web reference name. My CRM Web Service URL in this example is http://localhost:5555/mscrmservices/2007/CrmService.asmx


clip_image008


clip_image010

  • Compile the Crm.Proxy Project in Release Mode.


Deploy CRM Proxy Class to SSIS

In order to use the Crm.Proxy library in our SSIS package, we need to GAC the Crm.Proxy.dll and also copy the Crm.Proxy.dll to the .Net Framework 2.0 folder. The default location of the .Net Framework folder is C:\Windows\Microsoft.Net\Framework\v2.0.50727.

To GAC the Crm.Proxy.dll, you can simply drag and drop the dll file to C:\Windows\assembly folder.

clip_image012

Create SSIS Package

Start a New Integration Service Project

clip_image014

After creating the project, follow the steps below to setup the SSIS package.

  • Rename Package.dtsx to Contact.dtsx.
  • Right click on Data Source in the Solution Pane and then select “New Data Source”.
  • Follow the instruction on the wizard to create a database connection to the database contains your source data. In this example, I named my data source “CRMDB”.


clip_image016

  • Right click on Connection Managers pane to add a “New Connection From Data Source…”.

Add Control Flow Items

Drag and drop “Data Flow Task” from the Toolbox to the Control Flow Design Pane.

clip_image018

Add Data Flow Items

Double click on the Data Flow Task item and it will take you the Data Flow Design Pane. In here we will specify the source data and also write script to send data to CRM.

Specify Source Data

  • Drag and drop OLE DB Data Source to the design pane.
  • Double click OLE DB Source to open up the OLE DB Source Editor.
  • Select “CRMDB” from the OLE DB Connection Manager drop down box.
  • Select “Table or view” from Data Access Mode drop down box.
  • Select “Contacts” from Name of the table or the view drop down box.
  • Click OK.

clip_image020

Setup Script Component

  • Drag and drop Script Component to the design pane.
  • Select Transformation and then click OK.

clip_image022

  • Double click the script component to open up the Script Transformation Editor.
  • Select the column that you would like to send to MSCRM from the Input Column window. In this example, I selected FirstName, LastName, Phone and Email.


clip_image024

  • Remove Output in the Inputs and Outputs section since we are not output anything in this example.

clip_image026

  • Click on the Script tab, click on Design Script button. Visual Studio for Applications windows should open.

Add CRM Proxy Class to SSIS

Since we generated and GAC the Crm.Proxy library in the step above, we will add a reference to the proxy class in this step.

  • Right click on Reference and select “Add Reference…”.
  • Select Crm.Proxy from the list of the .Net components and then click Add.


clip_image028 clip_image030

Coding the Package

In order to complete the script, we also need to add the following reference: System.Web.dll, System.Web.Services.dll and System.Xml.dll. Then add the following imports statement

Imports Crm.Proxy.CrmSdk
Imports System.Xml
Imports System.Web.Services

Lastly, copy and paste the following code to the ScriptMain section:

   1: Public Class ScriptMain
   2:     Inherits UserComponent
   3:     Dim Service As CrmService
   4:  
   5: Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
   6:  
   7:      ‘Create Contact object
   8:         Dim contact As New contact()
   9:  
  10:         contact.firstname = Row.FirstName
  11:         contact.lastname = Row.LastName
  12:         contact.telephone1 = Row.Phone
  13:         contact.emailaddress1 = Row.Email
  14:  
  15:         Service.Create(contact)
  16:     End Sub
  17:  
  18:     Public Overrides Sub PreExecute()
  19:         MyBase.PreExecute()
  20:  
  21:         ‘Create CRM Service
  22:         Service = New CrmService()
  23:         Service.Credentials = System.Net.CredentialCache.DefaultCredentials
  24:         Service.Url = "http://localhost:5555/MSCrmServices/2007/CrmService.asmx"
  25:         Dim token As New CrmAuthenticationToken()
  26:       
  27:         ‘In this example, my organization name is MicrosoftCRM
  28:         token.OrganizationName = "MicrosoftCRM"
  29:         Service.CrmAuthenticationTokenValue = token
  30:         Service.PreAuthenticate = True
  31:     End Sub
  32:  
  33: End Class

 

clip_image032

Execute the SSIS Package

After done coding the SSIS package, right click on the Contact.dtsx package and then select Execute Package. After the package executed successfully, we should see the records in MSCRM.

clip_image034

Deploy SSIS Package

After successfully test the package, deploying the package is pretty easy. Just follow the steps below.

  • Right click on the CRM Integration project and the select Properties.
  • Click on the Deployment Utility tab and set Create Deployment Utility to True.

clip_image036

 

  • Recompile the CRM Integration project. You should now see CRM Integration.SSISDeploymentManifest in the bin\Deployment folder.
  • Double click on CRM Integration.SSISDeploymentManifest and follow the wizard to deploy the SSIS package.

After the package is deployed to your SQL server, setup a SQL agent job to execute the package according to your integration time interval.

Summary

That’s it! Hopefully you have gotten the idea of how to leverage the power of SSIS to send data to CRM. In the example here, I only demonstrated how to create records in CRM. In the actual integration implementation, you will also need to consider how to update/delete/link records, and also error handling. I hope this will help you in your next CRM integration project.

Darren Liu

Posted by crmblog | 1 Comments
Filed under: , , ,

CRM 4.0 Sample Data Available in 25 Languages

The Microsoft Dynamics CRM 4.0 Sample Database is provided for Microsoft Dynamics CRM 4.0.   Sample Data gives a Microsoft Dynamics CRM 4.0 application convincing, real life business data with the necessary breadth and depth to allow end users to explore the most important Microsoft Dynamics CRM 4.0 functionalities.  When you import Sample Data into Microsoft Dynamics CRM 4.0 you will have a live, fully working CRM implementation with rich, real-life business data that provides the appropriate amount of interactivity and flexibility for both training and sales/marketing demo needs to illustrate the features and benefits of the Microsoft Dynamics CRM 4.0 application.

The Microsoft Dynamics CRM 4.0 Sample Database will available for download for the following 25 languages: English, German, Dutch, French, Spanish, Chinese PRC, Danish, Italian, Japanese, Brazilian Portuguese, Chinese Taiwan, Korean, Chinese Hong Kong, *Finnish, *Hebrew, *Norwegian, *Swedish, *Iberian Portuguese, *Russian, *Turkish, *Czech, *Hungarian, *Polish, *Arabic and *Greek.

You can find the download on http://www.microsoft.com/downloads/details.aspx?FamilyId=D5F77EE7-3D01-4944-B5DC-C8CDC8123DF4 and you can find the Readme with installation instructions on http://www.microsoft.com/downloads/details.aspx?FamilyId=F44E89ED-6983-4A03-9BC0-A0B5B823FE37

*Sample Data content contains English content for these languages.

Cheers,

Emma Clarke

Posted by crmblog | 2 Comments
Filed under: ,

Connect for Microsoft Dynamics CRM

Finally, a one-stop Internet venue to make suggestions to Microsoft about any of our products. I have been waiting for the Dynamics implementation of Microsoft Connect to become a solid resource before I'd recommend it. It does require an Windows Live ID which is easy to create and you can use it for all Microsoft public sites.

My Connect Dashboard looks like this:

ConnectDashboard

In this screen shot you can see some of the Microsoft projects near and dear to my heart. First I am a beta tester for the Connect site and will remain so as we move forward. I'm also on the Dynamics Connect design team to make that experience as rich and full as possible.

A sub-forum called https://connect.microsoft.com/dynamics is now open to the public and something you might want to take a look at. I run the CRM customer suggestion triage team and we look at each suggestion that you the customer submits. The team consists of representatives from the dev, PM (program management), test, UE (user education), SE (support engineer) and marketing teams.

When you visit the Connect site and sign up for the Dynamics Connect portal, you will see this screen:

ConnectDYNsearch

Here you can search for CRM only suggestions that have already been made and vote on the ones you think are really important. You can also create a new suggestion for the CRM triage to consider.

To search the list of suggestions for only CRM I use the keyword 'CRM' and I see this:

ConnectCRMsearch

How do we use your suggestions? The CRM Customer Triage team consists of a rep from each of the following disciplines:

  • Dev
  • UE/UX
  • Test
  • PM
  • Marketing

We meet once a month to review the suggestions and port the unique, new ideas to our team tracking system. We assign a responsible owner and follow the progress of each new suggestion.

You can use the Microsoft Connect site for other Microsoft products too, especially if you are your company's expert on that program. We'd love to hear from you about your experiences with the new Connect site and any suggestions that you might have.

JaAG

Posted by crmblog | 1 Comments

Advanced Data Migration Map Editor for CRM 4.0 - Redux

Microsoft Dynamics CRM 4.0 shipped with Data Migration Manager (referred as DMM from here on) to provide customers a solution to migrate data from their current solutions to Microsoft Dynamics CRM 4.0. DMM has made people happy with its unique set of functionality. But, when it came to advanced data migration mapping, customers wanted more support in dealing with XML based maps.

That fortunately is not the end of story and just a beginning of a new one. The good news is that the UI is created to fulfill customers’ requirements for a UI interface which could have made their life easier by allowing them to create complex transformation maps, pick list maps, is found in a tool called ‘Advanced Data Migration Map Editor for MSCRM 4.0 data migration’ (‘Map Editor’ in short) which helps people create, edit data migration maps without looking at XMLs. A user can create and/or edit entity maps, attribute maps, complex transformation maps, and pick list maps, reference maps, and user maps. Not only can a user look at the summary of your map in the end, they can import it to a Microsoft Dynamics CRM 4.0 solution.

Where can I find this tool?

Tool is available for download at: http://www.codeplex.com/mscrmmapeditor

Who can use this tool?

Users who have to deal with deployment of CRM and Migration of data, administration and customization are the targeted users of the tool. The tool deals with CRM metadata and makes a call to CRM metadata service to retrieve it. To run this tool, user should have enough privileges to retrieve CRM metadata. System customizer role (Out of box) would solve the purpose.

How do I use this tool?

Though attempt is made to make UI very simple and intuitive, the problem the tool solves itself is of complex nature. To help user use the tool correctly, a User Guide for the tool is provided and it can be found by the name of ‘MSCRM DMM Map Editor – User Guide’ under ‘Releases’ tab at http://www.codeplex.com/mscrmmapeditor. The user guide attempts to provide complete picture of the tool with its usage, the screens and controls on each screen of the tool. A bunch of demo topics can further help in specific actions while creating/editing data migration maps.

Can you walk me through the tool?

Yes, of course. The tool starts with a welcome screen, which summarizes for you, what you can do further in the tool.

clip_image002

Clicking ‘Next’ takes you to screen with configuration details.

clip_image004

You need to provide details related to CRM deployment and authentication. The basic choice you have to make is for ‘mode’. You can choose to connect to ‘DM client’ or Server, for metadata and existing CRM map details. For server mode you can run tool from anywhere but for ‘DM Client’ mode, you will need to run the tool on the same machine as DM client and also make sure that ‘Microsoft.Crm.Application.DMHoster.exe’ is running. (If the user has launched DMM then this exe will be running). If it is not running then please run it from folder “\Microsoft Dynamics CRM Data Migration Manager\DMClient\res\web\bin”.

On clicking next on this screen, metadata and existing CRM maps are loaded. A pop-up will appear which will show you the progress for this operation. Once metadata is loaded, you can click on ‘OK’ button to advance to next screen.

clip_image006

This screen acts as ‘Home’ screen further. You can choose to

  • Create a new map
  • Edit existing CRM map
  • Import an XML to map editor and edit it
  • Import a map XML to CRM
  • Export an existing CRM map to XML file.

On choosing first 3 options, you will be taken to a series of screens which will help you define data migration map of your requirement. Please consult ‘User Guide’ for the tool as I said above, to walk you through all scenarios with examples.

That is it; isn’t it simple? You did not have to edit any XML directly even in more complex cases. The tool does it for you. So I say, “Happy Mapping”. Your feedback and comments will be of great value for me, so please feel free to provide those.

Thanks,

Gaurav Agrawal

Upgrading to CRM 4.0

CRMbennies

I have several customers looking to complete their upgrade from CRM 3.0 to 4.0, and they’re looking for advice on the steps they should follow both before and during the actual upgrade process. First, I suggest running two or more successful test upgrades before running the live upgrade. During this time, customers should write test cases for the critical functions they perform within CRM. After each upgrade, users should run through those test cases to make sure everything is working as expected.

Once customers are ready to upgrade, here are my suggested steps, broken out into work that can be done prior to the upgrade downtime and the work that needs to be done during the downtime for the upgrade. The goal is to minimize your downtime by doing certain tasks ahead of the actual upgrade.

Note: Always back up the existing CRM 3.0 database before adding a customization or moving to a new version of CRM.

1. Upgrade SQL databases to SQL 2005 SP2 (if not already done)

2. Upgrade SQL Reporting Services web sites to SQL 2005 SP2 (if not already done). Upgrade the reporting service database with SP2 script.

3. Verify the rights of the user running the upgrade

   a. Must have admin rights on computer, admin rights in SQL Reporting Services and server admin on SQL Server

   b. Must be able to create a security group within the OU where the 4 3.0 groups exist

   c. Must be in the same domain as the servers where the upgrade is run

   d. Must be a member of the system administrator role in CRM

4. Install Server Pre-requisites ahead of time

   a. SQL Reporting Services Report Viewer (2.0.50727)

   b. XML Core Services (6.0.3883)

   c. .NET Framework 3.0 (3.0.4506.30)

   d. SQL Native Client (9.0.2047)

   e. Microsoft Application Error Reporting Tool

5. Install Email Router ahead of upgrade and start configuration (completed after upgrade)

   a. If using forward mailbox, assure that you can access that mailbox via Outlook Web Access

   b. Assure that WebDAV is enabled on the Exchange server where the mailbox is located

   c. Configure outbound to use SMTP server

   d. Once you finish configuring the router, turn the service off until the upgrade is completed

6. Review the following KB article (949256) for CRM 4.0 hotfix information, and download any server hotfix packages and add the installation to your upgrade steps

7. If using AutoUpdate for clients (requires admin rights on clients), create web directory for client patches and store the client patch .exes in that folder

8. Save off backup copy of all custom report .rdl files

9. Delete all CRM 3.0 out of the box reports not being used (you'll get another copy of the report in 4.0)

10. Export all your customizations for reference purposes (cannot be upgraded outside of the server upgrade process)

11. Review all custom entities to make sure the primary entity does not have NULL values. If it does, run a SQL script to update values to ‘’ or some value

12. Download the CRM 4.0 Diag Tool so it's ready to be used in the event of errors received on CRM 4.0

13. If using an Internet Facing Deployment, review KB article 948779 and download IFD Configuration Tool

14. Review the following KB articles prior to upgrade 946590, 947061, 947997

The following steps should be completed within the downtime needed for the upgrade.

1. If running SQL replication, disable SQL replication

2. Turn off IIS on the web servers

3. Back up [CompanyName]_MSCRM and [CompanyName]_METABASE databases

4. Delete the t_update_queueitem trigger on the QueueItemBase table (to be fixed in a forthcoming hotfix - 948172)

5. Launch the upgrade

   a. Be sure to connect to the Internet to update installation files. If you don’t have Internet access on that machine, go to KB 948917 and following the links to download the installation files and bring them over to the server.

   b. Install Visual C++ runtime

   c. Enter your 4.0 server keys

   d. Choose a base currency

   e. Run the upgrade

6. Restart the web server

7. Complete the registration of the CRM 4.0 product

8. If you have additional web servers, upgrade CRM on those web servers

8. Complete the configuration of the Email Router by choosing the Deployment and testing the configuration

9. Apply all server hotfixes

10. If using AutoUpdate, run configurator tool to publish client hotfixes to clients

11. If Internet Facing Deployment, install the SQL Reporting Services Data Connector

12. If Internet Facing Deployment, run the IFD Configuration Tool

13. In SRS Report Manager, recreate any custom data sources under the 4.0 folder

14. Re-upload all CRM 4.0 reports that contained sub-reports and point the sub-reports to the appropriate parent report

15. Copy over any new customizations made on development 4.0 environments

16. Install the online and offline client (if used) for testing purposes

17. Test all functionality from Outlook and the web client

Once the final upgrade is completed, run through the test cases to make sure everything is working as you expected. If you are using the Desktop/Online Outlook client, you need to upgrade your clients right away after the upgrade of the server so they can access CRM functionality. If you are using the Laptop/Offline Outlook client, your users can remain offline until they are ready to upgrade to CRM 4.0.

Now you’re done and can enjoy the new features of CRM 4.0!

Eric Newell

Posted by crmblog | 1 Comments

CRM 4.0 Bulk Data Export Tool

There is no facility to Bulk Export the data from Microsoft Dynamics CRM 4.0. This sample tool  allows users to connect to OnPremise or Online Microsoft CRM 4.0 organization and export records of CRM entities in form of CSV files. The complete code for the tool is provided here for the advanced developers who want to develop solutions currently beyond the scope of this tool. The sample code included uses standard MSCRM SDK calls to achieve this functionality.

The Bulk Data Export Tool can be downloaded from http://www.codeplex.com/mscrmbulkdataexport. Follow the instructions in Readme.Txt for installations.

Once you have installed the tool, launch CrmDataExport.exe, select CRM configuration and specify the credentials:

clip_image002

If you are connecting to OnPremise CRM Organization, make sure to open Internet Explorer, connect to CRM server and Save Password. This is necessary as this tool uses stored credentials to connect to the CRM server in OnPremise configuration.

Once you are connected successfully, you can select the entities for which you want to export the records, specify output directory, data and field delimiters, and duration. Note that All Records option is not available for Online configuration. Click Export button to export the records.

clip_image004

The tool creates CSV for each selected entities in the directory selected. You can use this tool for periodic backup of your data.

Cheers,

Arun Kumar

Duplicate Detection Security Model

Security model of duplicate detection is in accordance with the security flow of MSCRM v4 which is very simple and quite intuitive. For performing duplicate detection rule create and publish or running duplicate detection job, user needs some security privileges which are provided through his role. All out-of-box security roles can run duplicate detection job but enabling/disabling duplicate detection and publishing duplicate detection rule is a privilege provided to selected few. As duplicate detection process is a collection of few well defined tasks, taking them one at a time and discussing what privileges are needed to perform that task.

1. Privileges needed to create/update duplicate detection rules: A Duplicate detection rule that is visible to user on UI forms with two entities, duplicate detection rule entity and duplicate detection rule condition entity. These entities share parent-child relationship and hence privileges on duplicate detection rule entity automatically trickle down to duplicate detection rule condition entity. Let’s look into create and update operations on per case basis.

a. Create a duplicate detection rule with duplicate detection rule conditions
Privileges required: Create, Append, AppendTo on DuplicateDetectionRule

b. Update a duplicate detection rule without updating rule conditions
Privileges required: Write on DuplicateDetectionRule

c. Update an unpublished duplicate detection rule with addition/deletion/updation of rule conditions
Privileges required: Write, Create, Delete, Append, AppendTo on DuplicateDetectionRule

d. Update a published duplicate detection rule with addition/deletion/updation of rule conditions
Privileges required: Write, Create, Delete, Append, AppendTo, Publish on DuplicateDetectionRule

e. Delete an unpublished duplicate detection rule with its rule conditions
Privileges required: Delete, AppendTo on DuplicateDetectionRule

f. Delete an published duplicate detection rule with its rule conditions
Privileges required: Delete, AppendTo, Publish on DuplicateDetectionRule

Please notice that while doing these operations on UI, user will need Read privilege also so that he can view the duplicate detection rule on UI. To view these privileges, open a role editor form, say Sales Manager role form as depicted below and navigate to Core Records tab.

clip_image002

2. Privilege needed to publish duplicate detection rule: There is a privilege defined in MSCRM called Publish Duplicate Detection Rules and any person with security role having this privilege can publish or unpublish duplicate detection rules. But as duplicate detection rule publish is an asynchronous type job, Read and AppendTo privileges on System Job entity is also required. Publish Duplicate Detection Rules privilege is available only to System Administrator and System Customizer among the Out-Of-Box security roles. Please note that mere creation of duplicate detection rules is not enough since these rules remain inactive unless and until they are published. Also to keep in mind is that publishing or unpublishing of any duplicate detection rule affects whole organization and hence publish duplicate detection rule privilege should be granted to those roles which are supposed to change organization wide settings. You can find this privilege under Core Records tab in miscellaneous section of Security Roles form.


clip_image004

3. Privileges needed to run system wide duplicate detection jobs: Technically any user can run system wide duplicate detection job provided that he has Read privilege on the duplicate detection rules and Read, AppendTo privileges on System Job entity. But to run system wide duplicate detection wizard from UI, user needs Read privilege on entity also for which he wants to run the job. That means if user don’t have Read privilege on accounts entity then he cannot run system wide duplicate detection from UI as wizard will not show that entity name in entity selection drop down.

4. Who can view the detected duplicates: All users with Read privilege on the base and duplicate records and Read privilege on System Job entity can view the duplicates. Every user will view the duplicates according to his access level on that entity. For example, if Tim has Basic read access on Accounts entity and Jack has Global read access, then for a duplicate detection job ran by Tim for all the account records in the system, Tim will see the duplicate account records that he owns but Jack will see duplicate account records, created by all users in the organization and detected in that run.

5. Administrative tasks: Only system admin can enable or disable organization wide duplicate detection. System Administrator can go to Settings > Data Management > Duplicate Detection Settings and he has the option to enable/disable either org wide duplicate detection or duplicate detection during create/update or duplicate detection during data import or duplicate detection during outlook sync. Let me discuss what these individual check box options mean

a. Enable duplicate detection: This enables duplicate detection rule publish and system wide duplicate detection jobs.

b. When a record is created or updated: This enables run time duplicate detection. For more details see this.

c. When Microsoft Dynamics CRM for Outlook goes from offline to online: This enables duplicate detection in laptop client offline to online synchronization. For more details see this.

d. During data import: This enables the functionality of detecting duplicates during import in Import Data wizard. For more details see this.


clip_image006

This discussion is very useful to system administrators while granting privileges to custom security roles for duplicate detection purposes. Granting or revoking of privileges should be done judiciously so as to prevent users from being blocked from performing their daily activities.

Sudhakar Singh

Microsoft SQL Server 2005 Data Mining Add-ins for Microsoft Office 2007 with Microsoft Dynamics CRM

SQL Server 2005 Analysis Services (SSAS) provides tools for data mining with which you can identify rules and patterns in your data, so that you can determine why things happen and predict what will happen in the future—giving you powerful insight that will help your company make better business decisions.

You can use data mining to answer questions such as:

  • What will customers buy? What products sell together?
  • How can a company predict which customers are at risk for churning?
  • Where has the marketplace been, and where is it going?
  • How can a business best analyze its Web site usage patterns?
  • How can an organization determine the success of a marketing campaign?
  • How can businesses prevent poor quality data from entering the system?

In March 2008, Reuben Krippner presented two breakout sessions at Convergence US on Extensibility with Microsoft Dynamics CRM.

During these sessions I covered a number of live demonstrations of how you can extend and integrate Microsoft Dynamics CRM. One of the “big hit” demos involved the use of the SQL Data Mining Add-in for Microsoft Excel 2007 with Microsoft Dynamics CRM. I have packaged up this example as a hands-on-lab for you to try for yourself. It is very important to note that as part of your investment in Microsoft Dynamics CRM the underlying SQL Server 2005 platform provides you with very powerful Analysis Services. Everything that is used as part of this example is included with SQL Server 2005 Standard and Enterprise editions and the Excel add-in is completely free of charge – incredibly powerful and your only investment is time!

For loads of background materials on SQL Server Data Mining go to http://www.microsoft.com/sql/technologies/dm/default.mspx

A few explanatory notes first! As always, the samples are supplied as is with no support or warranty provided by Microsoft. Feel free to take this utilize as you see fit. Special thanks go to Philip Rawlinson from the Microsoft Dynamics CRM UK team who set out the concepts for me to borrow and extend! This utility will work identically with either Microsoft Dynamics CRM 3.0 or 4.0.


Steps to follow:

Step 1: Install the Data Mining add–in for Excel 2007 (check that this has installed correctly by starting Excel 2007 and you will see a new section in the ribbon called ‘Data Mining’.

clip_image002

Step 2: Start Excel 2007

Step 3: From the ribbon interface in Excel 2007, select Data à From Other Sources à From Microsoft Query