Run a workflow through JavaScript
/* the function */
ExecuteWorkflow = function(entityId, workflowId)
{
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\”>” +
GenerateAuthenticationHeader() +
” <soap:Body>” +
” <Execute xmlns=\”http://schemas.microsoft.com/crm/2007/WebServices\”>” +
” <Request xsi:type=\”ExecuteWorkflowRequest\”>” +
” <EntityId>” + entityId + “</EntityId>” +
” <WorkflowId>” + workflowId + “</WorkflowId>” +
” </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;
return(resultXml.xml);
}
/* call */
var theWorkflowId = “3FD2DD58-4708-43D7-A21B-F0F90A0AA9F2”;
//change to your workflow Id
ExecuteWorkflow(crmForm.ObjectId, theWorkflowId);
Thank you for writing and posting this tutorial. I created a custom button which needed to execute a workflow and this code did just that.
LikeLike
Thank you for posting this code. Are you using it on an event or is it executed under a button? When using is on the OnChange event of an entity I get an error when loading the page.
LikeLike
Ya…i m using on button… i did’t try on OnChange event but it should work..
Please check below link..it may be help you
http://blogs.inetium.com/blogs/microsoftcrm/archive/2008/10/29/triggering-a-workflow-with-javascript-in-crm-4-0.aspx
Regards,
Arvind
LikeLike