Add the below Functions in Javascript Webresource and be sure to pass correct StateCode and StatusCode for the particular entity.
function callRecordStatus() {
var recordGuid = Xrm.Page.data.entity.getId();
  //StateCode  2 - Disqualified
  //StatusCode 4 - Lost
setRecordStatus ("lead", recordGuid, "2", "4");
}
function setRecordStatus(entitySchemaName, recordGuid, stateCode, statusCode) {
 // create the request
var request = "";
request += "";
request += "";
request += "";
request += "";
request += "";
request += "EntityMoniker";
request += "";
request += "" + recordGuid +"";
request += "" + entitySchemaName + "";
request += "";
request += "";
request += "";
request += "";
request += "State";
request += "";
request += "" + stateCode + "";
request += "";
request += "";
request += "";
request += "Status";
request += "";
request += "" + statusCode + "";
request += "";
request += "";
request += "";
request += "";
request += "SetState";
request += "";
request += "";
request += "";
request += "";
  //send set state request Â
$.ajax({
type: "POST",
contentType: "text/xml; charset=utf-8",
datatype: "xml",
url: Xrm.Page.context.getClientUrl() + "/XRMServices/2011/Organization.svc/web",
data: request,
beforeSend: function(XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/xml, text/xml, */*");
XMLHttpRequest.setRequestHeader("SOAPAction",
"http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
},
success: function(data, textStatus, XmlHttpRequest) {
//Add code after changing Status of the record
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
Note:
Xrm.Page.context.getClientUrl() – New javascript function in CRM 2013 used to get ServerURL.
Please provide your valuable comments on this article.
