Monthly Archives: September 2011

Launching CRM Forms via Java Script in CRM 2011

Here’s a couple of examples demonstrating how to pop CRM forms via java script (from a CRM form event / ribbon button).

This first example shows how to pop an existing record, in this case a Case record.  In this scenario I have a field called Existing Case (new_existingcase) on the Phone Call form which is a lookup field to the Case entity.   This function reads the GUID and name value of that Case and then pops that record using a window.open command:

function PopCase() {
    //Get the value of the ExistingCase field
    var ExistingCase = Xrm.Page.data.entity.attributes.get("new_existingcase");
    if (ExistingCase.getValue() != null) {

        //Split out the GUID and Name from the ExistingCase field
        var ExistingCaseGUID = ExistingCase.getValue()[0].id;
        var ExistingCaseName = ExistingCase.getValue()[0].name;

        //Set features for how the Case form window will appear
        var features = "location=no,menubar=no,status=no,toolbar=no";

        //Pop the Case record
        window.open("/main.aspx?etn=incident&pagetype=entityrecord&id=" + encodeURIComponent(ExistingCaseGUID), "_blank", features, false);
    }
}

 

This second example shows how to create a new record, again let’s look at the Case entity.  In this scenario my code sits on the Phone Call form and want to create a new Case for the Customer specified on the Phone Call.  First I retrieve the details of the Customer from the CRM form (from the “from” field).  Then in a variable called extraqs I define the parameter values I want to pass across to the form so that some of the field values default, including the Customer field.   Note that to populate a Customer lookup field I have to provide 3 parameter values (for simpler lookup fields you supply just the first 2 values).  Then, to pop the form, it’s a simple window.open with the parameters variable included:

//Collect values from the existing CRM form that you want to default onto your new record
var CallerGUID = Xrm.Page.data.entity.attributes.get("from").getValue()[0].id;
var CallerName = Xrm.Page.data.entity.attributes.get("from").getValue()[0].name; 

//Set the parameter values
var extraqs = "&title=New Case";
extraqs += "&customerid=" + CallerGUID;
extraqs += "&customeridname=" + CallerName;
extraqs += "&customeridtype=contact"; 

//Set features for how the window will appear
var features = "location=no,menubar=no,status=no,toolbar=no"; 

//Pop the window
window.open("/main.aspx?etn=incident&pagetype=entityrecord&extraqs=" + encodeURIComponent(extraqs), "_blank", features, false);

 

Hope this is helpful.