Tuesday, November 29, 2011

Unable to cast object of type 'Microsoft.Xrm.Sdk.Entity' to type '....'

When you use early bound classes to query the data in CRM 2011 you will get InvalidCastException with above error message when you are missing "serviceProxy.EnableProxyTypes();" at your OrganizationServiceProxy as below.

Wednesday, August 10, 2011

Example of CCA Hosted Web Application with Bing Search

Customer Care Accelerator (CCA) introduced for Microsoft Dynamic CRM 2011 is built using robust Microsoft User Interface Integration (UII) framework and CCA is the collection of hosted applications (CRM, Case, My Dashboard, Dialer, CTI, Notepad…  ), which work together to provide desired functionality.
So we shall start with simple example application to see how powerful UII framework is.

Requirement

Add a another workflow step “Bing Search” in between existing workflow steps and when user was unable to find CRM knowledge base items, which are related to selected case to resolve case, then user should be able to do Bing Search on internet using case title.

Integration Points:

When user clicks Bing Search, CCA should automatically pick the CRM case title and trigger the Bing Search by case title as below.

Implementation

What a powerful robust UII framework, we can implement above requirement with no any custom code, but just with some configuration entiries.

Create Hosted Web Application


·         First we must create Hosted Web Application using UII Web Application project template and it will ask URL of the hosted web application.

·         Then we must inspect the web application to identify the controls, which we will deal with, using UII inspector. It generates binding, as showing in below screens, required to identify the controls. Ones you pressed the add control button on UII inspector, it will copy the binding into UII web application project.
      Note:You should edit control name, which was auto generated by Inspector, with meaningful unique name. 


·         Create workflow activity to find the case title and do the Bing Search based on title.

Microsoft.Uii.HostedApplicationToolkit.Activity provides pre-defined set of work flow activities to deal with hosed applications within CCA and following sections describe what each activity does in workflow.

Get Control Value


Get the case title from the “CRM Case” hosted web application and assign it to CaseTitle output variable.

Control Finder

Find the control “Search Text”, which will be identified by binding that was generated by inspector, at Bing Search hosted web application.

 

Set Control Value

Set Search Text as CaseTitle, which was initialized at get control value section.

Execute Control Action

This will trigger default action of search button at “Bing Search” hosted web application.

·         Configure Action.
This allows you to configure action detail on Bing Search web application, which will be deployed at CRM 2011,  using workflow we just completed.



Browse work flow we just completed.


·         Deploy web application as a hosted web application on CRM 2011.
This will deploy all configuration entries required to run the application on CCA with CRM 2011. Clicking Deploy on context menu shows the logging window to log into CRM 2011 and it will allow you to deploy hosted web application “Bing Search”.



·         Add “Bing Search” into workflow steps in CCA.

In order to add Bing Search into workflow steps at above location at CCA, you must add below two configuration entries at UII section in CRM setting area.



Then you are good to go. Have fun! We haven’t done any single line of code to do this example.


Sunday, July 17, 2011

Gallery Feature to CRM 2011

One of the requirements that you may need to deal with is, when you develop public facing CRM web portal, showing gallery of images of products, equipment and so on. So how we can add gallery feature to web portal using out of the box CRM functionality? What about if used note section of an entity to attach the images? One of the limitations of note (annotation) entity is, it is not customizable entity. Why we need to customize the note entity? Because we need to identify the attached note images, which need to be displayed on web. Otherwise web portal shows attachments, which were added for other purposes by the user. Proposed solution to handle that situation is having intermediate entity to attach images.





Download Componant

Features of the solution

• Can be plugged this with any entity with 0 code changes.

Note: When you create one to many relationship between your entity and new_Gallery, you must name the lookup field name as "<publisher prefix><entity>id". Publisher Prefix has been set to “new_” in constant class.

• There is back end plugin to copy the images, which will be added to note section of Gallery entity, into the image folder of your web portal. Plugin will remove the image from the web portal, when you removed that image from the CRM note section.

Configuration for testing


• Import CRM solution, which is located at “..\CRM2011.Galleries\CRMSolution”
• Edit EntityName and EntityId properties of the control reference at default.aspx as required.
<uc3:viewgallery id="ctrlViewGallery" entityid="C21106C1-B491-E011-8551-0800270D5292" entityname="product" runat="server"></uc3:ViewGallery>
• Edit App setting values at web.config as required.
<add value="http://localhost" key="CRMServiceUrl"></add>
<add value="OrganizationName" key="CRMOrganizationName"></add>
• Edit below app setting value as required and then add it into the app setting section of web.config of CRM 2011
<add value="C:\ MyBlog\CRM2011.Galleries\images" key="WebPortalImagePath"></add>
• Deploy plugin “CRM2011.Galleries.Plugins” using solution located at CRM2011.Galleries.Plugins\Solution
• Set AppPool to run the web application with required credential to access CRM service.
• Give read write access level permission to CRMAppPool user for the image folder of the web portal.

Then you are good to go.

--Thushara Manchanayake--
http://dynamicscrmhelper.blogspot.com

Monday, February 21, 2011

Default values of Status and Status Reason attributes

When you work with MS Dynamics CRM 4.0 SDK it is very important to know the values of state and status code associated with particular status of record. So below PDF will be very helpful at your work.

Default Values of Status and Status Reason Attributes.pdf


--Thushara Manchanayake--
http://dynamicscrmhelper.blogspot.com/

Sunday, February 20, 2011

Thursday, January 20, 2011

How to write complex quires to get the data from MS Dynamic CRM 4.0 using web service.

Traditional CRM Query Attribute cannot be used to create complex queries and get the data from many entities using joins. Query attribute has ability to join many entities, but there is no way to get the data from few entities using single query. So we should go for Fetch XML.

When we wanted to generate complex queries then fetch XML also become complex. So then we think of way to generate XML using tool. I found nice tool “Fetch XML builder”, which does everything for me. It was the first tool that I found for MS CRM 4.0 and is a very simple user friendly tool that any developer can use it without any help.

Download FetchXML Builder

--Thushara Manchanayake--

http://dynamicscrmhelper.blogspot.com/