Sunday, September 21, 2008

Cybner / NSquaredSolutions Merger

Cybner has been undergoing a number of changes recently.

I'm happy to anounce that Nsquared Solution and Cybner have agreed to a merger. This is great news, in particular for our existing clients. In particular we now have access to many more resources in order to provide an even higher quality of service.




Sunday, September 7, 2008

Microsoft Dynamics CRM Javascript Access to Form Elements

Here's how to access each control on your forms using Javascript. Using this information you can add very useful functionality to CRM's front end.

There are a couple of ways to do this, you can choose which ever suits your situation best...

Currently displayed entitie's GUID:
        crmForm.ObjectId

To access a control on the form:
    crmForm.all.[attributename]
    // OR
    document.getElementById("[attributename]")

Hide/show attribute(set to visible or invisible):
    //Hide it
    crmForm.all.[attributename].style.display = "none";
    //Show it
    crmForm.all.[attributename].style.display = "inline";

Enable/disable attribute:
   //Disable
   crmForm.all.[attributename].Disabled = true;
   //Enable
   crmForm.all.[attributename].Disabled = false;

Does control/attribute contain any data?
   if (crmForm.all.[attributename] != null)
       //Contains some data

Control's value(this is the current on screen value. ie, may not have been saved yet):
   crmForm.all.[attributename].DataValue
   // OR
   crmForm.all.[attributename].value
   // OR if its a checkbox
   crmForm.all.[attributename].Checked = [true false=""]
   // OR if its a lookup
     //Descriptive name for the selected item
     crmForm.all.[attributename].DataValue.name
     //GUID value of the selected item
     crmForm.all.[attributename].DataValue.id
     //Type of entity selected in the lookup(1=Account, 2=Contact...)
     crmForm.all.[attributename].DataValue.type
     //Descriptive name for the selected entity type
     crmForm.all.[attributename].DataValue.typename


Reference External Javascript file in CRM form events

Some times you may have a great deal of Javascript code to insert into your CRM entity's form events, be it OnLoad, OnSave or OnChange of a control.

It is possible to encapsulate the functionality or procedures into separate JS files and reference them from the form. I often do this and have a list of standard JS files with specific functions as I need them. You can insert the file into your event by ading this block of code.

//Insert JS Functions to perform whatever functionality:

var script = document.createElement("script");

script.language = "javascript";

script.src = "http://crmserver:5555/ISV/JSFiles/CRMControlFunctions.js";

document.getElementsByTagName("head")[0].appendChild(script);


Don't forget to substitute your own server, port and filename. Ensure that it's hosted in a website or virtual directory and reachable from the CRMWeb website application.


Saturday, September 6, 2008

Access MS CRM data through the Web Service via Javascript SDK

So I was madly typing away and badly mixing my languages up as I tried to remember how to access the CRM Web Service using Javascript from the front end when I finally succumbed to calling on a Google search.

I don't usually post something that I've already been able to find on the net, but it took me a while to find this and when I did... Oh man it was like a gift from heaven.

A fantastic post by Jason Hunt at Ascentium:
A Microsoft Dynamics CRM JavaScript SDK
http://www.ascentium.com/blog/crm/Post129.aspx