A while back, a user on the Microsoft Dynamics forums asked how to assign a record using JavaScript. Here’s the code, remember to update the userid and recordid variables.
var header = GenerateAuthenticationHeader();
var userid = "838975f4-029c-de11-9693-0003ffc4c746";
var recordid = "9721c859-d185-dc11-ac34-000c291d8da3";
var target = "TargetOwnedAccount";
var xml = "" +
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
header +
" <soap:Body>" +
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <Request xsi:type=\"AssignRequest\">" +
" <Target xsi:type=\""+ target +"\">" +
" <EntityId>"+ recordid +"</EntityId>" +
" </Target>" +
" <Assignee>" +
" <PrincipalId xmlns=\"http://schemas.microsoft.com/crm/2006/CoreTypes\">"+ userid +"</PrincipalId>" +
" <Type xmlns=\"http://schemas.microsoft.com/crm/2006/CoreTypes\">User</Type>" +
" </Assignee>" +
" </Request>" +
" </Execute>" +
" </soap:Body>" +
"</soap:Envelope>" +
"";
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
(I pasted it here so that I can find it easily in future).
very cool & good tip, thank you very much for sharing.
Hello from Russia!
Can I quote a post in your blog with the link to you?
Yes, you can.
Hi,
i am trying to assign a case to a user using javascript, i tried your solution but using execute doesn’t work since ‘TargetOwnedIncident’ class doesn’t have Assign message which is used to assign a record. please suggest if there is any other way to do this using javascript? tried Update but that also didn’t work.
Hi ninad,
If you’re trying to assign an Incident record (or any other record that can be put into a Queue), you need to use the Route message (RouteRequest) and set the endpointid to be the GUID of the CRM user.
Hope that helps.
-S
Hi Shafraz,
the earleir solution by you works just fine, i was having wrong reference to webservice url. when it wasn’t working thought must be related to class TargetOwnedIncident message. gr8 post. thanx a lot for quick response.
ninad