Microsoft CRM 3.0 Experiences

Tuesday, January 23, 2007

Microsoft CRM 3.0 - Installing SQL Server Reporting Services Problem

I managed to solve a problem in the installing SQL Server Reporting Services stage of a Microsoft CRM 3.0 installation onto Microsoft Small Business Server 2003 this week. Which was nice.

The installation of SQL Server Reporting Services fails because it is looking for the IIS occurrence of the reportserver incorrectly.

CRM is set up pointing to http://servername/reportserver.

This is an error in the installation, it should be setup to point to https://servername/reportserver instead (should be https rather than http).

You can change this on the server by opening the Microsoft CRM Deployment Manager > Select the Server Manager folder > Right click on your Server > click on Select your Reporting Server URL > Change the URL to have an HTTPS.

If you do this, you need to Add Remove Programs and do a Repair of your Microsoft CRM installation - it will then generate all of the default Microsoft CRM Reports and enable Reportinng!

Monday, January 22, 2007

CRM Marketing Campaign - Polite Footer idea

My boss came across this from a marketing email he received from a Management Company. Rather than the standard usual style unsubscribe footer, they had this:

"We were kindly given your e-mail address and contact details when we telephoned your office. Thank you for being one of the 93% who have not (yet!) asked to be deleted from our database. However, if you would not like to receive any more information from us please click here."

What a great, innovative approach!

Thursday, January 11, 2007

Using the MS CRM Onload event to retrieve online, live company information

Being able to edit the Onload event on a Microsoft CRM Account (or Contact, Opportunity, Lead for that matter) is fantastic. There is all sorts of clever stuff you can do. In this example I'll demonstrate how to retrieve live company data from an online Company Information site (MINT - https://mintuk.bvdep.com ) using a custom Companies House number field I created and IFRAME. The Onload event takes appends the Companies House number to a custom url and passes it to the IFRAME at load time and hey presto you get live, relevant company data in the IFRAME!

Companies House Field

The job I did was to create a Companies House field for the Account record by Customising the Account Entity.

To do this Go to Customization > Customize Entities > Accounts > Attributes and create a new Attribute called "Companies House No" (new_companieshouseno). And then add this field to the standard Account form. Under the Entity:Account click on "Forms and Views" and edit "Form" and use the tools to plop your new field onto the Form.


Adding an IFRAME


Fill the IFRAME properties as per shown in the picture leaving the URL as "about:blank" (we'll be filling in the correct url using the Onload event next!).

The Onload Event

To edit the Onload event you need to click on Form Properties, select Onload and click "Edit".
You can add your own javascript here to do all sorts of things and in this case I:
  1. Retrieved the value of the Companies House No field.
  2. Appended it to a MINT url.
  3. Passed the url to the IFRAME

The IFRAME then loads the MINT Company Information page when the Account opens and if a Company Number is not passed it defaults to a MINT search page.

The script I use is as follows:

var CRM_FORM_TYPE_UPDATE = 2;
// Only attempt to retrieve the MINT information on Update and when Online

if (IsOnline())

{

if (crmForm.FormType == CRM_FORM_TYPE_UPDATE)

{

// put the Companies House number into a variable

var CompanyNo=crmForm.all.new_companieshouseno.DataValue;

// append the variable to the MINT url, note the url contains xxxxxx for username and password, obviously i'm not going reveal my mint account details ;o)

var URL='https://mintuk.bvdep.com/Search.DirectCompanyName.serv?product=Mint&tpl=reportframe&stack=1&Kick=1&user=xxxxxx&pw=xxxxxx&&companyId=' + CompanyNo;

// pass the URL to the IFRAME

crmForm.all.IFRAME_Mint_Info.src=URL;

}}

And the result is as follows (note I have also a dedicated TAB for my MINT stuff):

Wednesday, January 03, 2007

Retrieving the MS CRM AccountId in the Onload event of an Account

The Accounts accountid can be retrieve and used on the Account form by using the following in the Onload event for the form:

var Accid = crmForm.ObjectId;
alert(Accid);

Note the script here used is javascript.

We used this to copy the Account Id into a temporary field that could be used when extracting data.