Introduction
In this blog, we are going to create a request using ExecuteWorkflow action and would execute the request that would execute a custom workflow. This approach would eliminate the need to create an Ajax request and is supported across web client, UCI and Mobile.
For demonstration purpose, we have created a custom workflow. This would create a task in our CRM related to the current account when it’s triggered by a JavaScript function.
Note: Make sure to keep your existing custom workflow available to run as an on-demand process.
Now with the help of execute request we are going to trigger that workflow.
Solution: Following is the piece of code to achieve the above objective.
In the above piece of code, we have created a dynamics request object named “ExecuteCustomWorkflowRequest” and we have passed current account id to it along with workflow id. We would recommend to retrieve workflow id dynamically. As of now, we have passed hard coded workflow id for demonstration purpose, which can be found in the URL of workflow as highlighted in blue colour in the following screenshot:
Once the “triggerCustomWorkflowRequest” request is built, we would pass it to execute method which would then invoke “ExecuteWorkflow” action. This action will execute our workflow to create task related to the account record whose id was passed in the “triggerCustomWorkflowRequest” request.
Upon execution of our custom workflow via execute method, following task is created.
Also, following is a link to execute workflow via HTTP Request: https://www.inogic.com/blog/2016/11/execute-workflow-using-web-api-in-dynamics-365-2/
For more information on execute method visit the following link: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-webapi/online/execute
You can find complete list of WebApi actions here: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/actions?view=dynamics-ce-odata-9
Hope it helps.
Cut short 90% of your manual work and repetitive data entry!
Get 1 Click apps and say goodbye to all repetitive data entry in CRM –
Click2Clone – Clone/Copy Dynamics 365 CRM records in 1 Click
Click2Export – Export Dynamics 365 CRM Report/CRM Views/Word/Excel template in 1 Click
Click2Undo – Undo & Restore Dynamics 365 CRM data in 1 Click
The getMetadata typeName for the workflow is incorrect. It should be “mscrm.workflow”
Thanks for your comment.
Type name “mscrm” is an alias for Microsoft.Dynamics.CRM as shown in below screenshot. So we can use both “Microsoft.Dynamics.CRM” and “mscrm” as a typeName for workflow.
Hope this helps.
Thanks!
Does the success callback execute once the workflow has been completely executed or rather when the workflow is determined to be able to be successfully executed?
Success callback is called when workflow request is executed successfully and not when workflow completes its respective functionality .
For more information about the other parameters of Xrm.WebApi.online.execute method, you can refer the below link:
https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi/online/execute
Hope this helps.
Thanks!