//FIELDS - Values
// Get Text Value
Xrm.Page.getAttribute("feildName").getText();
//Get Picklist Value
Xrm.Page.getAttribute("FieldName").getValue();
// Set Value
Xrm.Page.getAttribute("FieldName").setValue(newValue);
//GENERAL
// Get Form Type
Xrm.Page.ui.getFormType();
//Get Record Id
Xrm.Page.data.entity.getId();
//Prevent Saving
ExecutionObj.getEventArgs().preventDefault();
//Get user Id
Xrm.Page.context.getUserId();
// Force Submit
Xrm.Page.getAttribute("FieldName").setSubmitMode("always");
//Set Required Level
Xrm.Page.getAttribute("FieldName").setRequiredLevel("none");
Xrm.Page.getAttribute("FieldName").setRequiredLevel("required");
Xrm.Page.getAttribute("FieldName").setRequiredLevel("recommended");
//Get Server Url
var context = Xrm.Page.context;
var serverUrl = context.getServerUrl();
//IFRMAE
//Set IFrams url
Xrm.Page.getControl("IFRAME_Name").setSrc(URL_IFRAME_CALLSCRIPT);
//SHOW/HIDE/DISABLE
// Disable Field
Xrm.Page.getControl("FieldName").setDisabled(true);
//Hide Field
Xrm.Page.ui.controls.get("FieldName").setVisible(false);
//Hite Section
Xrm.Page.ui.tabs.get("TabNumber").sections.get('SectionName').setVisible(flag);
//Hide Tab
Xrm.Page.ui.tabs.get("TabNumber").setVisible(false);
//Tab Expand
Xrm.Page.ui.tabs.get(1).setDisplayState("expanded");
Xrm.Page.ui.tabs.get(1).setDisplayState("collapsed");
//PICKLIST
// Get Selecte Text from picklist
Xrm.Page.getAttribute("FieldName").getSelectedOption().text;
//Remove Option from Picklist
Xrm.Page.getControl("FieldName").removeOption(3);
//Add Option to Picklist
function AddOption(value, text, index) {
var option = new Option(); option.text = text; option.value = value; typeControl.addOption(option, index);
}
//LOOKUP
//Populate Lookup
function PopulateTemplateLookup(recordid, recordName) {
Xrm.Page.getAttribute("lookupId").setValue([{ id: recordid, name: recordName, entityType: "EntityName"}]);
}
//Get/Check Lookup Values
var lookupObject = Xrm.Page.getAttribute("lookupfield");
if (lookupObject != null) {
var lookUpObjectValue = lookupObject.getValue();
if ((lookUpObjectValue != null)) {
var lookuptextvalue = lookUpObjectValue[0].name;
var plookupid = lookUpObjectValue[0].id;
}
}
//Disable Form Fields
function doesControlHaveAttribute(control) {
var controlType = control.getControlType();
return controlType != "iframe" && controlType != "webresource" && controlType != "subgrid";
}
function disableFormFields(onOff) {
Xrm.Page.ui.controls.forEach(function (control, index) {
if (doesControlHaveAttribute(control)) {
control.setDisabled(onOff);
}
});
}
//Set Email To [Party List]
function setToPartyList() {
var partlistData = new Array();
partlistData[0] = new Object();
partlistData[0].id = '{08C6AFB3-9673-E011-8720-00155DA5304E}'; // userId
partlistData[0].name = 'Jill Frank'; //user name
partlistData[0].entityType = 'systemuser'; // Entity name
Xrm.Page.getAttribute("to").setValue(partlistData);
}
MSDN Reference :http://msdn.microsoft.com/en-us/library/jj602964.aspx
Tuesday, July 30, 2013
CRM 2011 - Javascript samples
Tuesday, July 23, 2013
CRM 2011 Add/Remove user from Team
Code snippet :
public void AddUserToTeam(Guid userid, Guid TeamId) { AddMembersTeamRequest req = new AddMembersTeamRequest(); req.TeamId = TeamId; Guid[] aryMembers = new Guid[1]; aryMembers[0] = userid; req.MemberIds = aryMembers; AddMembersTeamResponse resp = (AddMembersTeamResponse)service.Execute(req); } public void RemoveUserFromTeam(Guid userid, Guid TeamId) { RemoveMembersTeamRequest removeRequest = new RemoveMembersTeamRequest(); removeRequest.TeamId = TeamId; Guid[] aryMembers = new Guid[1]; aryMembers[0] = userid; removeRequest.MemberIds = aryMembers; service.Execute(removeRequest); }
Tuesday, June 25, 2013
Unable to start debugging. The Silverlight Developer Runtime is not installed. Please install a matching version.
Today I tried to run Silverlight sample project in my
machine and I got below error.
“Unable to start debugging. The Silverlight Developer
Runtime is not installed. Please install a matching version.”
I checked the Silverlight version I installed and it was version
4. Then I just did a Google search and found the below blog post, after
installing Silverlight_Developer.exe I was able to run Sample Silverlight
application successfully.
Thanks
Monday, June 24, 2013
CRM 2011 Filtered sub grid
Filtered sub grid is very commonly used feature in CRM 2011.
As you may already know we can use CRM default feature to
filter sub grid data by selecting different views for sub grid. But you may
come across situations where system needs to filter sub grid data based on opening
record field,
For example you need to filter Contact sub grid based on
Account form City field. So sub grid should only Contacts which have same city as
Account City:
In this kind of scenario we can use javascript to add
filter to the sub grid.
Use advance find and generate fetch xml for filter contact
function setContactSubGrid() {
var grid = $('#accountContactsGrid')[0];
var accountCity = Xrm.Page.getAttribute("address1_city").getValue();
if (grid == null || grid.readyState != "complete") {
setTimeout('setContactSubGrid()', 2000);
}
else {
var fetchXml = "" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
" " +
" " +
" ";
grid.control.setParameter("fetchXml", fetchXml);
grid.control.refresh();
}
}
Call this function on Account onLoad event.
Sunday, June 23, 2013
How to Refresh a SubGrid in MS CRM 2011
Code snippet 1 :
function LoadSubGrid(SubGridName) {
var grid = document.getElementById(SubGridName);
if (grid) {
if (grid.readyState == "complete") {
grid.Refresh();
}
}
}
Code snippet 2 :function LoadSubGrid(SubGridName) {
var grid = Xrm.Page.ui.controls.get("SubGridName")
if (grid) {
if (grid.readyState == "complete") {
grid.Refresh();
}
}
}
Friday, June 21, 2013
Using OData endpoint in MS CRM 2011
As most of you already know in CRM 2011 there are two ways which we can write client script to work with CRM Data.
Here I’m explaining one of the easiest ways to retrieve data using OData query designer.
Download Link OData Query designer: http://crm2011odatatool.codeplex.com/
For this example I’m getting Template Id by Name,
First Generate query using CRM 2011 OData Query Designer

OData System Query Options Using the REST Endpoint : http://msdn.microsoft.com/en-us/library/gg309461.aspx
- SOAP endpoint: recommended for retrieving metadata, assigning records, executing messages
- REST endpoint: recommended for create, retrieve, delete and update, associating and disassociating records,
Here I’m explaining one of the easiest ways to retrieve data using OData query designer.
Download Link OData Query designer: http://crm2011odatatool.codeplex.com/
For this example I’m getting Template Id by Name,
First Generate query using CRM 2011 OData Query Designer

function GetTemplateId() {
var query = serverUrl + "xrmservices/2011/OrganizationData.svc/new_interventiontemplateSet?$select=new_interventiontemplateId&$filter=new_WebResourceName eq '" + webName + "'";
var templateId;
jQuery.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: query,
async: false,
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
if (data && data.d != null) {
templateId = data.d;
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
alert("Error : has occured during retrieval of the Template");
}
});
return templateId;
}
Update Record:
function Update(id, entityObject, odataSetName) {
var jsonEntity = window.JSON.stringify(entityObject);
var serverUrl = Xrm.Page.context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
data: jsonEntity,
url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "(guid'" + id + "')",
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
XMLHttpRequest.setRequestHeader("X-HTTP-Method", "MERGE");
},
success: function (data, textStatus, XmlHttpRequest) {
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (XmlHttpRequest && XmlHttpRequest.responseText) {
alert("Error while updating " + odataSetName + " ; Error – " + XmlHttpRequest.responseText);
}
}
});
}
You can call this function like below;
var pp = new Object();
// Update fields
pp.new_ApprovedOn = "2013/12/06";
Update(accountId, pp, "accountSet");
MSDN Sample for JSON : http://msdn.microsoft.com/en-us/library/1bb82714-1bd6-4ea4-8faf-93bf29cabaad#BKMK_UsingJQueryOData System Query Options Using the REST Endpoint : http://msdn.microsoft.com/en-us/library/gg309461.aspx
Thursday, March 29, 2012
Remove duplicate records from Generic List
Following code snippet give you a distinct values from the Generic int List. Here I'm using LINQ query to retrieve Distinct items
Out put :
4
2
3
1
6
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ListlistOfItems = new List ();
listOfItems.Add(4);
listOfItems.Add(2);
listOfItems.Add(3);
listOfItems.Add(1);
listOfItems.Add(6);
listOfItems.Add(4);
listOfItems.Add(3);
var duplicates = listOfItems
.GroupBy(i => i)
.Select(g => g.Key);
foreach (var d in duplicates)
{
Console.WriteLine(d);
}
Console.ReadLine();
}
}
}
Out put :
4
2
3
1
6
Subscribe to:
Posts (Atom)
MS CRM 2011 KB Article customization Issue.
Recently I have encountered some issue while customizing Kb Article Entity. I was doing following configuration in Article form. 1. Add Ba...
-
Recently I wanted to find out users who are not in the correct time zone in CRM System. To change the time zone or user related settings we ...
-
Recently I wanted to change the attribute type from 'Single line of text' to 'Multi line text' in CRM 2011. but we cannot do...
-
Do you need to recover lost files, photos or documents? You're sure that a file was on your hard disk some time ago, but now it seems to...