Saturday, November 22, 2008

Integration of MS CRM (4.0) Online with SharePoint

Lot of people now a day’s talking about Integration of MS CRM (4.0) Online with SharePoint 2007.
Before we start thinking of Integration of MS CRM (4.0) Online with SharePoint we should be aware of the below restrictions of MS CRM Online.

Restriction(s) of MS CRM Online 4.0 hosted by MSFT

Plug-ins allow you to augment the Microsoft Dynamics CRM business logic with your own code, for both online and offline applications. These extensions can also be used for integration to external systems. In the previous version, this feature was known as callouts.

Plug-insYesPartner specificNo

Call out to external systems from your workflow rules. Create custom workflow activities that can be used by your workflow rules. In the previous version, this feature was known as workflow .NET assemblies.

Declarative workflows using workflow tools in Web applicationYesYesYes
Custom workflow activities (.NET Assemblies)YesPartner specificNo

The Probable solution would be:

1) Use standard/OOB workflows of MS CRM 4.0 Online and send out an email messages with the formatted message in the message body with all (or required) Values (Inserted / Updated / and record GUID in case of Deletion).

2) Add custom JavaScript in “OnSave()” event of the Entity, MS CRM forms where you can call out the web services (say using XmlHttpRequest / JSON) and there are chances that you will face the cross-domain Web service calls issues.

You can overcome the issue by hosting the “Internet Facing Web Services on your server” but that should be available over internet so that you can communicate CRM with exposed Web Service Server.

One more thing, I would like to share that “MS provides Partner Hosted Solutions”, you can go with it, but you have to pay (please correct me if I’m wrong), as it is paid service, I guess!!!!!

What's New in MS CRM 5.0

This posting is provided "AS IS" with no warranties, and confers no rights.

MS CRM 5.0 is currently on schedule to ship as part of the Office14 Wave (most likely sometime in 2010), and the team is only part way through the development cycle, having just completed Milestone 1 (M1). Even so, there is already much to get excited about. Here is a list of "features" that were discussed:

New Features For End Users
1. Enhanced Navigation
2. Single Page Forms
3. Data Filtering
4. In-line Visualizations
5. Team Ownership
6. Native SharePoint Integration
7. Unstructured Relationships

New Features For Administrators
1. Flexible Form Layout
2. Filtered Lookups
3. Form Headers & Footers
4. Solution Management
5. Multiple Option Sets
6. Drag & Drop Form Editor
7. Audit

New Features For Developers
1. Custom Code Sandbox
2. Plug-In Transaction Support
3. Automatic Plug-In Profiling

As you can see there is a lot to look forward to in CRM5, and I hope you are as excited as I am that the team has chosen to share this information early on.

Disclaimer: These postings are provided "AS IS" with no warranties, and confers no rights. The content of this site are my own personal opinions and do not represent my employer's view in anyway. In addition, my thoughts and opinions often change, and as a weblog is intended to provide a semi-permanent, point in time snapshot, you should not consider out of date posts to reflect my current thoughts and opinions.

Saturday, November 15, 2008

Assign Values to MS CRM attribute Types

Microsoft Dynamics CRM contains a set of attribute type classes used to define the attributes for each entity. These classes are specified in the following table.

The following sample shows you how to instantiate and set the value of each data type.
// Set up the CRM Service.
CrmAuthenticationToken token = new CrmAuthenticationToken();
token.AuthenticationType = 0;
token.OrganizationName = "AdventureWorksCycle";

CrmService service = new CrmService();
service.Url = ""http:
service.CrmAuthenticationTokenValue = token;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;

CrmBoolean boolean = new CrmBoolean();
boolean.Value = true;
CrmDateTime dateTime = new CrmDateTime();
dateTime.Value = "2006/5/27T17:00:00";
CrmDecimal dec = new CrmDecimal();
dec.Value = (decimal)10.1;
CrmFloat f = new CrmFloat();
f.Value = (float)10.1;
CrmMoney money = new CrmMoney();
money.Value = (decimal)10.00;
CrmNumber number = new CrmNumber();
number.Value = 10;
Lookup lookup = new Lookup();
lookup.Value = user.UserId;
lookup.type = EntityName.systemuser.ToString();
Owner owner = new Owner();
owner.type = EntityName.systemuser.ToString();
owner.Value = user.UserId;

Picklist list = new Picklist();
list.Value = 1;

Status status = new Status();
status.Value = 1;
EntityNameReference reference = new EntityNameReference();
reference.Value = EntityName.systemuser.ToString();

Key key = new Key();
key.Value = user.UserId;