Wednesday, December 17, 2008

MS CRM 5 – Secure Code on the Server - OnLive

Click here to watch the Video

In this one we chat about how to write custom code in Dynamics CRM and have that run securely in the various deployment models available including on-premises, partner-hosted and even in CRM Online.

The current version of CRM allows code on the server (for plug-ins or workflows) and that code runs in full trust. That’s the primary reason why server code is not allowed on Dynamics CRM Online where you’re sharing the server with many other tenants.

There are a number of different areas where you might need to write custom code on the server; for instance, custom workflows, custom web apps, plug-ins. It’s not hard to allow that sort of thing. Where it gets tricky is allowing developers to do that in ways that don’t compromise security and performance.

List Web Part for Microsoft Dynamics CRM 4.0

The List Web Part for Microsoft Dynamics CRM 4.0 provides a way to view and update Microsoft Dynamics CRM records using a Windows SharePoint Services 3.0 SP1 or Microsoft Office SharePoint Server 2007 SP1 Web site. Microsoft Dynamics CRM users can create shared or personal List Web Parts of Microsoft Dynamics CRM records from a SharePoint Web site, open records in Microsoft Dynamics CRM 4.0 from the List Web Part, and create connected List Web Parts.

You can download it from Microsoft website. Click here to download

Tuesday, December 9, 2008

Using New CrmDeploymentService CRM 4.0.

We have a new webservice in CRM 4.0 i.e. CrmDeploymentService
This is the end-point for this web service

Using CrmDeploymentService we can do the following:
Create/Delete/Disable/Enable/Update/Set Default an organization etc.

There are two types of Microsoft Dynamics CRM deployment entities: Organization and Server. The Deployment SDK provides programmatic access for manipulating the Organization entity. It does not currently enable you to write code against the Server entity for actions such as enabling and disabling a Microsoft Dynamics CRM server.

We have a separate sdk for the Deployement. We can download the sdk at the following location

When working with the Deployment SDK, you should be familiar with software development practices in general and Microsoft Visual C# or Microsoft Visual Basic coding practices in particular. In addition, you should be familiar with using Web services and have access to a suitable development environment.

When using the Deployment SDK, it is helpful to have the Microsoft Dynamics CRM 4.0 Software Development Kit (SDK) available as a reference.

The Microsoft Dynamics CRM 4.0 SDK is the primary development resource for Microsoft Dynamics CRM 4.0 and is a guide for developers writing server-side code, custom business logic, plug-ins, integration modules, custom workflow modules, and more. The SDK provides an architectural overview of Microsoft Dynamics CRM, the entity model, security model, Web services, and sample code.

Some basic examples of using the service

// Create an instance of CrmDeploymentService
CrmDeploymentService myDeployService = new CrmDeploymentService(); 
myDeployService.Credentials = System.Net.CredentialCache.DefaultCredentials; 
myDeployService.Url = ” valid url”;
// To retrieve server license type information 
RetrieveLicenseRequest myLicRequest = new RetrieveLicenseRequest();
RetrieveLicenseResponse myLicResponse = (RetrieveLicenseResponse)myDeployService.Execute(myLicRequest);
MessageBox.Show(“License Type “ + myLicResponse.LicenseType.ToString());

// To get the organization information
RetrieveAllRequest myRetriveAllRequest = new RetrieveAllRequest();
// only organization is supported ( other is Server)
myRetriveAllRequest.EntityName = EntityName.Organization;
RetrieveAllResponse myRetriveAllResponse = (RetrieveAllResponse)myDeployService.Execute(myRetriveAllRequest);
foreach(DeploymentEntity myEntity in myRetriveAllResponse.Entities)
Organization myOrganization = (Organization)myEntity;

//// To disable an organization
SetStateOrganizationRequest myOrgSetStateRequest = new SetStateOrganizationRequest();
myOrgSetStateRequest.EntityName = EntityName.Organization;
myOrgSetStateRequest.Id = new Guid(“4c7fc991-0a41-dd11-bfd9-001d7d22e1af”);
myOrgSetStateRequest.State = OrganizationState.Disabled;
SetStateOrganizationResponse myOrgSetStateResponse =(SetStateOrganizationResponse) myDeployService.Execute(myOrgSetStateRequest);

Monday, December 8, 2008

Error message when you log on to any organization in Microsoft Dynamics CRM 4.0: "The specified organization is disabled"

Consider the following scenario. You create two organizations in Microsoft Dynamics CRM 4.0. Then, you disable the default organization. In this scenario, when you log on to any organization in Microsoft Dynamics CRM, you receive the following error message:
Error: The specified organization is disabled

This problem occurs because a valid default organization does not exist in Microsoft Dynamics CRM.

To resolve this problem, use one of the following methods.

Method 1: Enable the default organization

Start -> Programs -> Microsoft Dynamics CRM -> Deployment Manager.
Click Organizations, right-click the default organization, and then click Enable.
Reset Internet Information Services (IIS). To do this, Start -> Run, type iisreset, and then click OK.

Method 2: Set another organization as the default organization

Start -> Programs -> Microsoft Dynamics CRM -> Deployment Manager.
Click Organizations, right-click an organization, and then click Set as Default Organization.
Reset Internet Information Services (IIS). To do this, Start -> Run, type iisreset, and then click OK.

Wednesday, December 3, 2008

RollUp 1 release for MS CRM 4.0

Microsoft has release rollup 1 for CRM 4. KB952858 can be downloaded here.

This upate is for Microsoft Dynamics CRM 4.0 Server, Microsoft Dynamics CRM for Microsoft Office Outlook, and Microsoft Dynamics CRM 4.0 E-mail Router.

Please note that if you have customized Microsoft Dynamics CRM 4.0 Help files, back up your customized files before you install this update !!!

MS CRM 4.0 upgrade issues list.

When upgrading MS CRM 3.0 to CRM 4.0, please follow the below chekclist to avoid failures:

1. Any Un supported customization will not upgrade

2. Any 3rd party tool will not upgrade like C360 components etc. It will give you trouble so first remove that and check your vendor for upgradeable version for CRM 4.0, I am sure they are upgrading it.

3. Any Connector like GP Connector, Biztalk Adapter will not upgrade

4. CRM Mobile Express 3.0 will not upgrade

5. CRM Accelerator for Seible will not supported to upgrade.

6. Sharepoint list webpart will not upgrade

7. Datamigration Pack will not upgrade

8. Your custom calls or code will not upgrade, you have to rebuild your code using new crm services, atleast you have to use crm discovery as it is multi-organizational system.

9. CRM Outlook Client will not upgrade

10. Any custom code for outlook will not upgrade

11. CRM Callouts need to modify and register with Plugin Register tool

12. Your code web to lead or web to contact need to modify by using CRM Discovery Service and updation manually

13. Any Code will not upgrade by MS CRM 4.0, you have to do all configuration manually.

14. Assembly written for workflow will not upgrade and link, you have to again link with it

Standard CRM Reports will be upgraded and link will automatically build with new CRM SRS connection. but following types of reports will not upgrade

  • The Reports has been modified to use expressions for linking will not upgrade.
  • The Report has been modified to use stored procedures will not upgrade.
  • Reports that use information about workflow, such as sales pipeline report etc will not upgrade.

Happy MS CRM 4.0 Upgrade.

Increase Attachment size in MS CRM 4.0

By default, MS CRM 4.0 file attachment size is 5 MB.
Below are the steps to increase the default size to 10 MB.

1. Open the web.config of MS CRM

2. Locate httpRuntime the key within the element and change the values to the following: httpRuntime executionTimeout = "9999"
maxRequestLength = "10240"

3. Locate httpRuntime the key within the element of the element, and change it to the following: httpRuntime maxRequestLength = "10240"

save the web.config and restart IIS.