Wednesday, March 28, 2012

Release: XrmSvcToolkit v0.1 (a JavaScript Library for Microsoft Dynamics CRM 2011)

I am happy to announce the availability of XrmSvcToolkit v0.1, an upgraded version of CRM Web Service Toolkit, which now works with Microsoft Dynamics CRM 2011 by using the latest SOAP and REST endpoints.

The following functionalities are currently supported by the toolkit for SOAP and REST endpoints.
  • createRecord (REST)
  • updateRecord (REST)
  • deleteRecord  (REST)
  • retrieve  (REST)
  • retrieveMultiple  (REST)
  • associate  (REST)
  • disassociate  (REST)
  • setState (SOAP)
  • fetch (SOAP)
  • execute (SOAP)
There is a dependency of the toolkit, which is the JSON library that has been included in the downloadable solutions on codeplex website. The signature of all functions have been changed from previous version, so it may take a little effort to get used to. But if you have ever worked with jQuery, the interface may sound familiar to you. Hope you like the change.

To get started with the toolkit, you can import the solution files from codeplex website, or upload the provided JS files as web resources to CRM. Then you can add the library to your form so that you can consume it in your form script. Include both json2 and xrmservictoolkit in your form library, and make sure to have json2 before the toolkit. 

Where is the documentation?

As a matter of fact, I haven't invested much time writing the documentation of the toolkit. My fellow CRM MVP Mitch Milam is working on writing documentation for the toolkit in his secret upcoming project. I am counting on him.

In the meantime, you can check sample code in the accompanied unit test file (XrmSvcToolkitTest.aspx), which illustrate the typical scenarios how the toolkit can be used. 

Some Final Notes

I would like to apologize for the wait of the community for a new version of the toolkit, the primary reason is that I was late to the CRM 2011 party, and the new service interface was quite a challenge for me to have a level of confidence to get into the implementation of an upgrade.

One thing that I should point out is, after I have finished all the coding of the toolkit the other day (Feb 22, I believe), I was preparing for the release, so I started to create a new project on codeplex. I first picked a name of xrmservicetoolkit, but immediately realized that the project name had already been taken. What I noticed was that another community member (jaimieji) had already published an open source project using this name, which was doing something very similar. I had a look of the source code, it was a pretty good quality implementation. You may want to have a look of his implementation, as he has provided more functionalities than mine.

Also, Daniel René Thul has his implementation as well. His implementation is interesting and is based on jQuery, which you may want to check out as well.
I have been holding the release of the toolkit for about a month, until Codeplex sent me a final threatening email today that my project will be deleted from their system if I don't publish the project today.

Also, it should be noted, my implementation is not feature-rich enough to satisfy all your development needs. But I hope it can be used as a starting point or reference for your project engagement, and it should not be hard to add new features to the toolkit.

Since CRM R8 is going to be a cross-browser version according to Microsoft public announcement recently, there is some work to be done in order to support different browsers. Hopefully I am not occupied at the time so that I can provide an upgrade swiftly. 


  1. Hi Daniel:

    I am moving my CRM 2011 installation (that was using your CrmServiceToolkit) to a new CRM2013 . Obviously that library does not work in 2013 so I am planing to change it to the xrmservicetoolkit library.

    Do I have to modify every javascript that uses the initial CrmServiceToolkit manually to use the new library or is there another way of doing this upgrade?

    Any suggestion about this task would be very appreciated.

    Thanks a lot for your great work.


    1. @Miguel, there might be some misunderstanding, xrmservicetoolkit is not the same library as XrmSvcToolkit (sorry for the confusion, I could have picked a better name).

      Yes, if you do plan to use XrmSvcToolkit, you would very much have to rewrite your code. However there is a lot similarity between XrmSvcToolkit and the previous CrmServiceToolkit, so it shouldn't be something terribly difficult.


    2. Ok, Thanks a lot for your quick response. I just have to manually modify 18 files! ;-)