在 SharePoint 2013 / Office 365 (SharePoint Online) 中使用 JavaScript (JSOM) 处理工作流服务 – 第 1 部分(迭代工作流部署和订阅)
迭代工作流部署和订阅
引言
SharePoint 2013 提供了一组 JavaScript 库,可用于管理工作流。首先,你需要引用 sp.workflowservices.js,该文件位于 _layouts/15/sp.workflowservices.js。
<script src="/_layouts/15/sp.workflowservices.js"></script>
以下是一些使用该库的示例
- 获取部署到当前网站的所有工作流
- 获取附加到列表的所有工作流订阅
- 获取当前网站中的所有工作流订阅
- 获取工作流定义的所有工作流订阅
除了这些之外,你还可以通过以下方式获取订阅:
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")}
);