65.9K
CodeProject 正在变化。 阅读更多。
Home

在 SharePoint 2013 / Office 365 (SharePoint Online) 中使用 JavaScript (JSOM) 处理工作流服务 – 第 1 部分(迭代工作流部署和订阅)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2014年6月6日

CPOL
viewsIcon

21272

迭代工作流部署和订阅

引言

SharePoint 2013 提供了一组 JavaScript 库,可用于管理工作流。首先,你需要引用 sp.workflowservices.js,该文件位于 _layouts/15/sp.workflowservices.js

<script src="/_layouts/15/sp.workflowservices.js"></script>

以下是一些使用该库的示例

  1. 获取部署到当前网站的所有工作流
  2. 获取附加到列表的所有工作流订阅
  3. 获取当前网站中的所有工作流订阅
  4. 获取工作流定义的所有工作流订阅

除了这些之外,你还可以通过以下方式获取订阅:

  • enumerateSubscriptionsByEventSource
  • enumerateSubscriptionsByListAndParentContentType
  • enumerateSubscriptionsByListWithContentType

获取部署到当前网站的所有工作流。

var context = SP.ClientContext.get_current();
var web = context.get_web();
var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web);
var wDefs = sMgr.getWorkflowDeploymentService().enumerateDefinitions();
context.load(wDefs);

context.executeQueryAsync(
    function(){
        var e = wDefs.getEnumerator();
        while (e.moveNext()) {
            var def = e.get_current();
            alert(def.get_displayName() + " id: " + def.get_id());
        }
    },
    function(a,b){
        alert(args.get_message());
    }
);

获取附加到列表的所有工作流订阅。

为此,你需要拥有与相关列表相关的 列表指南

var listGuid = "93A65752-DB60-496F-B9F5-CD864050DB39";     
var context = SP.ClientContext.get_current();
var web = context.get_web();
var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web);
var sservice = sMgr.getWorkflowSubscriptionService();
var ssubs = sservice.enumerateSubscriptionsByList(listGuid);
context.load(ssubs);
context.executeQueryAsync(
   function(){
       var e = ssubs.getEnumerator();
         while(e.moveNext())
         {
           var c =  e.get_current();
           alert("Name :" + c.get_name() + " sID: " + c.get_id());
         };

   },
   function(){ alert("error")}
;

获取当前网站中的所有工作流订阅。

var context = SP.ClientContext.get_current();
var web = context.get_web();
var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web);
var sservice = sMgr.getWorkflowSubscriptionService();
var ssubs = sservice.enumerateSubscriptions();
context.load(ssubs);
context.executeQueryAsync(
    function(){
        var e = ssubs.getEnumerator();
          while(e.moveNext())
          {
            var c =  e.get_current();
            alert("Name :" + c.get_name() + " sID: " + c.get_id());
          };
 
    },
    function(){ alert("error")}
);

获取工作流定义的所有工作流订阅。

var wfdefinitionId = "c791c3cb-abcd-4022-bc06-6fcc6ca4f6bc"; 
var context = SP.ClientContext.get_current();
var web = context.get_web();
var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web);
var sservice = sMgr.getWorkflowSubscriptionService();
var ssubs = sservice.enumerateSubscriptionsByDefinition(wfdefinitionId);
context.load(ssubs);
context.executeQueryAsync(
    function(){
        var e = ssubs.getEnumerator();
          while(e.moveNext())
          {
            var c =  e.get_current();
            alert("Name :" + c.get_name() + " sID: " + c.get_id());
          };
 
    },
    function(){ alert("error")}
);
© . All rights reserved.