工作流重新发布后,想重新启动新发布的工作流,先到List的workflow Setting里将之前已经启动了工作流的项目的工作流全部删除,
然后通过JSOM将新的工作流绑定到项目上。
function startWorkflow(itemID, subID) { var context = SP.ClientContext.get_current(); var web = context.get_web(); var wfServiceManager = SP.WorkflowServices.WorkflowServicesManager.newObject(context, web); var subscription = wfServiceManager.getWorkflowSubscriptionService().getSubscription(subID); context.load(subscription); context.executeQueryAsync( function(sender, args){ //console.log("Subscription load success. Attempting to start workflow."); var inputParameters = {}; wfServiceManager.getWorkflowInstanceService().startWorkflowOnListItem(subscription, itemID, inputParameters); context.executeQueryAsync( function(sender, args){ console.log("Successfully starting workflow."); }, function(sender, args){ console.log("Failed to start workflow."); console.log("Error: " + args.get_message() + "\n" + args.get_stackTrace()); } ); }, function(sender,args){ console.log("Failed to load subscription."); console.log("Error: " + args.get_message() + "\n" + args.get_stackTrace()); } ); } SP.SOD.executeFunc("sp.js", "SP.ClientContext" , function(){ SP.SOD.registerSod(‘sp.workflowservices.js‘, SP.Utilities.Utility.getLayoutsPageUrl(‘sp.workflowservices.js‘)); SP.SOD.executeFunc(‘sp.workflowservices.js‘, "SP.WorkflowServices.WorkflowServicesManager", function(){ startWorkflow(listItmeId,‘workflowId‘) }); })
原文:https://www.cnblogs.com/learning-life/p/10406123.html