JSOM启动工作流

工作流重新发布后,想重新启动新发布的工作流,先到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')
         });
})

 

posted on 2019-02-20 13:50  赢在当下_Victor  阅读(389)  评论(0编辑  收藏  举报

导航