Javascript前端启动SharePoint工作流
在企业内部,很多SharePoint上的需求是即时而小规模的,要求快速实现。用前端的技术很多时候也可以满足用户需求,同时避免了后端开发的部署,IIS重启等,减少了deliver的时间。在目前的很多小应用中,我很多都用SPservice来做前端。SPservice是基于JQuery来访问SharePoint webservice的javascript库,codeplex上有很多介绍。比如要点击一个button启动一个list上的workflow的代码如下:
<script type="text/javascript" language="javascript" src="http://xxxxx/JQuery/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="http://xxxx/jquery/jquery.SPServices-0.5.8.min.js"></script>
var g_workflow_templateid = "{d7b03357-1ad6-40b7-8d08-0c10d2935766}";
$().SPServices({ operation: "StartWorkflow", async: true, item: "http://{ServerName}/sites/{SiteName}/Lists/{ListName}/" + itemID + "_.000" , templateId: g_workflow_templateid , workflowParameters:"<Data/>", completefunc: function(xData, Status) { //prompt("test",xData.responseXML.xml); alert("workflow has been started."); } });
需要注意的参数是templateId:g_workflow_templateid,每次当你通过SharePoint designer修改workflow的时候,templateId会改变。它可从你通过list settings里手动启动workflow的页面的URL里取得,也可通过SharePoint designer查看workflow的配置文件里找到。另外一个需要传值的itemID 当然就是当前list item的ID。