有了SPServices这个客户端工具,我们可以方便的调用SharePoint提供的各种Web服务。上一章SPServices介绍之四中介绍了查阅项级联查询,今天介绍一下如何使用SPServices来启动工作流。
本质上SPServices是通过SharePoint 提供的Workflow Web Service服务中的StartWorkflow这个操作来启动工作流的,这个操作需要提供两个参数即可,一个是item的url,另一个是工作流的templateid,一下是这个web service操作的官方文档:
所以只需要知道工作流的templateid和当前item的url就可以启动工作流了(有时候还需要初始数据,可以通过workflowParameters这个参数指定)。
在工作流设置页面点击工作流,进入工作流的编辑页面,在URL中找到工作流的templateID,注意需要使用{E35B0505-08F1-450B-86EF-981DB3CC3EA8}这样的格式。
item的url也很容易得到,即站点url(http://server2013)+item对象的Url属性(形如“Lists/Tasks/1_.000”,其中1是item的id。
然后使用SPServices调用“StartWorkflow”这个操作:
$().SPServices({
debug: true,
operation: "StartWorkflow",
async: true,
item: "http://server2013/Lists/Tasks/1_.000",
templateId: "{E35B0505-08F1-450B-86EF-981DB3CC3EA8}",
workflowParameters: "<Data/>",
completefunc: function (data, status) { alert("Workflow started.");}
});
有一个需要注意的地方是,当templateId不存在或者错误的时候,并不会报错,也不会启动工作流。