To execute a workflow we have to use the soap web service. We cannot use oData service.
So we have to create a soap envelope and post it to the organization web service.
The following function will execute the workflow.
function ExecuteWorkFlow(entityId,workflowId,url) { var OrgServicePath = "/XRMServices/2011/Organization.svc/web"; url = url + OrgServicePath; var request; request = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" + "<s:Body>" + "<Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">"+ "<request i:type=\"b:ExecuteWorkflowRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:b=\"http://schemas.microsoft.com/crm/2011/Contracts\">"+ "<a:Parameters xmlns:c=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">"+ "<a:KeyValuePairOfstringanyType>"+ "<c:key>EntityId</c:key>"+ "<c:value i:type=\"d:guid\" xmlns:d=\"http://schemas.microsoft.com/2003/10/Serialization/\">"+ entityId+"</c:value>"+ "</a:KeyValuePairOfstringanyType>"+ "<a:KeyValuePairOfstringanyType>"+ "<c:key>WorkflowId</c:key>"+ "<c:value i:type=\"d:guid\" xmlns:d=\"http://schemas.microsoft.com/2003/10/Serialization/\">"+ workflowId +"</c:value>"+ "</a:KeyValuePairOfstringanyType>"+ "</a:Parameters>"+ "<a:RequestId i:nil=\"true\" />"+ "<a:RequestName>ExecuteWorkflow</a:RequestName>"+ "</request>"+ "</Execute>"+ "</s:Body>"+ "</s:Envelope>"; var req = new XMLHttpRequest(); req.open("POST", url, true) // Responses will return XML. It isn't possible to return JSON. req.setRequestHeader("Accept", "application/xml, text/xml, */*"); req.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); req.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute"); req.onreadystatechange = function () { assignResponse(req); }; req.send(request); } function assignResponse(req) { if (req.readyState == 4) { if (req.status == 200) { alert('successfully executed the workflow'); } } }Happying Coding!
Hiya, I am really glad I have found this info. Nowadays bloggers publish only about gossip and net stuff and this is really annoying. A good website with exciting content, this is what I need. Thanks for making this web-site, and I will be visiting again. Do you do newsletters by email?
ReplyDeletestartup internet company