CRM 2011 – Adding CRM folders to Outlook favourites

The default functionality in CRM 2011 Outlook client doesn’t allow you to CRM folders to the favourites section.  This is quite annoying because the CRM folders are held way down the bottom and can take a bit of time to navigate to.

There is a KB article from Microsoft which gives instructions on how to do this

There is no option to add Microsoft Dynamics CRM entities to favorites in Microsoft Office Outlook 2010

It does involve changing registry settings for Outlook so be careful when doing it and make sure you back up the originally registry setting.

Here are the instructions

  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient.
  3. Right-click MSCRMClient, point to New, and then select DWORD (32-bit) Value.
  4. Enter DisableSolutionsModule as the name.
  5. Right-click the DisableSolutionsModule REG_DWORD subkey, select Modify, and then set the valueto 1.
  6. Exit and then restart Outlook.

Then you will be able see any CRM folders in your favourites

CRM 2011 – Excellent Development resources

I stumbled on this page today, the Microsoft Dynamics CRM Developer Portal

CRM Developer portal

http://crm.dynamics.com/developer

CRM MVP’s Wiki –

http://social.technet.microsoft.com/wiki/contents/articles/microsoft-dynamics-crm-2011-development-resources.aspx

Brilliant page – Crash course in CRM 2011 development

http://blogs.msdn.com/b/publicsector/archive/2011/10/27/my-crash-course-in-dynamics-crm-2011-development.aspx

I was very impressed with the page above, if you are starting out as a CRM developer then the above link is a really good start.

 

CRM 2011 Hub

http://msdn.microsoft.com/en-us/dynamics/crm/bb467596

The CRM resource centre

http://rc.crm.dynamics.com/rc/2011/en-us/default.aspx?ver=5.1

The CRM 2011 online resource centre

http://rc.crm.dynamics.com/rc/2011/en-us/online/default.aspx?Ver=5.1&tt=CTP

CRM 2011 – using Javascript intellisense and Testpage.htm

I have been doing some Javascript development this past couple of days and although I have been using the CRM development toolkit it was more focused on plugins rather than writing javascript.

I then noticed a folder in the CRM 2011 SDK called templates and in there was a folder called xrm.pagescriptprojejcttemplate, this has been blogged about by the Microsoft team and you can read their version here or continue reading mine

CRM 2011\sdk\templates\xrm.pagescriptprojecttemplate

interesting.

There was a readme file with instructions on how to setup the project.

I won’t go through it all here because the readme file does a great job of going through setting up the project step by step.

There are a number of parts to the solution.

It has a visual studio template which creates XmlPageJScriptLibrary project.

This project creates a few pages but the most important ones are

XrmPageTemplate.js

The js script above has the functionality to add intellisense for the Xrm.Page commands.

For any new Javascript files you create you add a reference to this file and then when you type in Xrm you get intellisense for it.

You add the reference by adding the line to the top of your Javascript file

/// <reference path=”XrmPageTemplate.js” />

Now this is one part of the solution, which when you think about it has involved a good work around by the Microsoft team to come up with a solution.

You now have the Xrm.Page intellisense and now you need the intellisense for the entities and especially your entities, so you can access your custom variables you have added to entities.

There is a solution project you need to import into your organisation.

What this does is add a button onto all the Forms in CRM.  The button is XrmPagesnapshot is used to create the snapshot of your form for either onLoad, OnSave or onChange of a variable.

You go to customize on the entity form you want to write some Javascript for, you then press the XRM Page snapshot button.  This pops up a form and you can then copy the code to clipboard.

You then take this code and paste it into a file into you visual studio XRMPAge project into a file called PageData.js

The XrmPage Project has a TestPage.htm which allows you to test your code.

The TestPage is a nice way to test the code quickly.  The snapshot creates the variables in the state you took the snapshot.

So in my case I writing a function to test when a drop down was a certain value.  I could use the the testPage to test my function, it would open the function and the values of the variables would be set to the snapshot.

This means you don’t have to keep uploaded and publishing.

The only downside is we still don’t have proper intellisense for the entites unlike the workaround in CRM 4 – http://crm.vdsnickt.eu/ms-crm-javascript-intellisense-generator/

but its better than nothing.

Also the snapshot code does generate all the variables for you to look at, this means you can see all the variables and their potential values.  Below is dropdown I have with two values, property and person.  Below you can see the values and the int number for the dropdown.  This alone could save you some time.  Combined with the functionality of being able to quickly test this using the testPage.html makes Javascript development a bit easier.

{ “Name”: “meta_contacttype”, “Value”: 951850000, “Type”: “optionset”, “Format”: null, “IsDirty”: false, “RequiredLevel”: “none”, “SubmitMode”: “dirty”, “UserPrivilege”: { “canRead”: true, “canUpdate”: true, “canCreate”: true }, “InitialValue”: 951850000, “Options”: [{ “text”: “Property”, “value”: 951850000 }, { “text”: “Person”, “value”: 951850001}], “SelectedOption”: { “option”: “Property”, “value”: 951850000 }, “Text”: “Property”, “Controls”: [{ “Name”: “meta_contacttype”}] }

 

Overall I think the most useful part is the XrmPageTemplate.js file which I think you can use even without the whole javascript intellisense project.

The way Javascript works in CRM makes it very difficult to create proper intellisense.  I think what would be useful is perhaps code shortcuts and Javascript validation.