I have added a custom item in ECB menu using CSOM. Now i want to start a sharepoint designer workflow on click of this custom menu item .Can anyone suggest me how to achieve this
1 Answer
Alas everytime you publish a Workflow it gets a new (GU)ID,
So starting by Workflow ID is a pain
You can start by Name (Note, this came from a button in a View, I deleted lines before pasting, so there might be typos)
event.preventDefault();
var TR = GetAncestor(this, 'TR');
var itemID = TR.id.split(',')[1];
var wfName = 'YOUR_WORKFLOW_TITLE_GOES_HERE';
SP.SOD.executeFunc('sp.workflowservices.js', 'SP.WorkflowServices.WorkflowServicesManager',
function () {
var ctx = new SP.ClientContext.get_current(),
wfsManager = SP.WorkflowServices.WorkflowServicesManager.newObject(ctx, ctx.get_web()),
wfSubs = wfsManager.getWorkflowSubscriptionService().enumerateSubscriptionsByList(_spPageContextInfo.pageListId);
ctx.load(wfSubs);
ctx.executeQueryAsync(function () {
wfsEnum = wfSubs.getEnumerator();
while (wfsEnum.moveNext()) {
var wfSub = wfsEnum.get_current();
if (wfSub.get_name() === wfName) {
wfsManager.getWorkflowInstanceService().startWorkflowOnListItem(wfSub, itemID, new Object());
SP.UI.Notify.addNotification('Init Workflow: ' + wfName + ' on item: ' + itemID, false);
}
}
},function(e){console.error(e)});
});