Activate Deactivate Record using JavaScript in CRM
Hello everyone,
Setting statecode and statuscode attributes using javascript in CRM is not easy as setting other fields unfortunately. But it can be done
Normally we expect below javascript code snippets to work but it does not if you try to change the statecode value.
1
2
| Xrm.Page.getAttribute( "statecode" ).setValue(1); Xrm.Page.getAttribute( "statecode" ).setSubmitMode( "always" ); |
In this blog post I am going to talk about activate deactivate record using javascript in crm. You will learn how to change statecodes and statuscodes using javascript in CRM as well.
In this example I’m going to deactivate a custom entity record with a statuscode 2which refers to Resolved in my case.
Activate – Deactivate Record using JavaScript in CRM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| function changeRecordStatus(EntityLogicalName, RECORD_ID, stateCode, statusCode) { // create the SetState request request += "<s:Body>" ; request += "<Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">" ; request += "<request i:type=\"b:SetStateRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:b=\"http://schemas.microsoft.com/crm/2011/Contracts\">" ; request += "<a:Parameters xmlns:c=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">" ; request += "<a:KeyValuePairOfstringanyType>" ; request += "<c:key>EntityMoniker</c:key>" ; request += "<c:value i:type=\"a:EntityReference\">" ; request += "<a:Id>" + RECORD_ID + "</a:Id>" ; request += "<a:LogicalName>" + EntityLogicalName + "</a:LogicalName>" ; request += "<a:Name i:nil=\"true\" />" ; request += "</c:value>" ; request += "</a:KeyValuePairOfstringanyType>" ; request += "<a:KeyValuePairOfstringanyType>" ; request += "<c:key>State</c:key>" ; request += "<c:value i:type=\"a:OptionSetValue\">" ; request += "<a:Value>" + stateCode + "</a:Value>" ; request += "</c:value>" ; request += "</a:KeyValuePairOfstringanyType>" ; request += "<a:KeyValuePairOfstringanyType>" ; request += "<c:key>Status</c:key>" ; request += "<c:value i:type=\"a:OptionSetValue\">" ; request += "<a:Value>" + statusCode + "</a:Value>" ; request += "</c:value>" ; request += "</a:KeyValuePairOfstringanyType>" ; request += "</a:Parameters>" ; request += "<a:RequestId i:nil=\"true\" />" ; request += "<a:RequestName>SetState</a:RequestName>" ; request += "</request>" ; request += "</Execute>" ; request += "</s:Body>" ; request += "</s:Envelope>" ; //send set state request $.ajax({ type: "POST" , contentType: "text/xml; charset=utf-8" , datatype: "xml" , url: Xrm.Page.context.getServerUrl() + "/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) { Xrm.Page.data.refresh(); // refresr current crm form }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } }); } |
You can call above function to deactivate record like this:
1
| //Params:entityname,entityGuid,stateCode,StatusCode changeRecordStatus( "contact" , Xrm.Page.data.entity.getId(), 1, 2);
State and Status Code for all Entity:
|
Comments
Post a Comment