通过在侧面添加WF按钮来更改文档库的显示 [英] Change display of Document library By adding WF button to the side

查看:46
本文介绍了通过在侧面添加WF按钮来更改文档库的显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个文档库

以及我使用按钮运行的批准工作流程

and an approval workflow that I run with a button

如何通过在项目侧面添加工作流程按钮来更改图书馆的显示?

HOW can I change the display of my library by adding the workflow button to the side of the item??

示例:

推荐答案

卡尔扎尔,

Hi Karzal,

请参阅以下文章

http://buildsharepointconcepts.blogspot.ch/2017/05/run -sharepoint-workflow-on-button-click.html

Please refer the below article

http://buildsharepointconcepts.blogspot.ch/2017/05/run-sharepoint-workflow-on-button-click.html

包括在视图页面上添加内容编辑器Webpart并插入以下代码.

Include add a content editor webpart on the view page and insert the below code .

请进行以下更改

Please do the following change

I)更改工作流程名称

I) Change the WorkflowName

II)替换siteURL

II) replace the siteURL

III)提供列名称.这里是编辑".列.

III) Provide the column name. Here it is "edit" column.

<script src="https://siteURL/SiteAssets/jquery-3.2.1.min.js"></script>
<script src="/_layouts/15/SP.Runtime.js"></script>
<script src="/_layouts/15/sp.workflowservices.js"></script>
<script src="/_layouts/15/wfutility.js"></script>
<script>
/**/

var itemID = '';
var ItemGUID = '';
var WFSubscriptionID = '';
var WorkflowName = 'Meetings WF';


function getItems(ListTitle, Id) {
    var d =


.Deferred(); var url ="/_api/web/lists/getByTitle('" + ListTitle +')/getItemById(" + ID +)";
.Deferred(); var url = "/_api/web/lists/getByTitle('" + ListTitle + "')/getItemById(" + Id + ")";


. ajax({ 网址:_spPageContextInfo.webAbsoluteUrl +网址, 类型:"GET", 标头:{ "accept":"application/json; odata = verbose", "content-Type":"application/json; odata = verbose"; }, 成功:功能(数据){ console.log(数据) d.resolve(data); }, 错误:function(){ d.reject('错误请求') } }); 返回d.promise(); } 函数GetGUID(z,Id){ itemID = ID; getItems(z,Id).then(function(data){ console.log(data.d.GUID); ItemGUID = data.d.GUID; GetWFSubscriptionID(ctx.listName,itemID,ItemGUID); }) } 函数StartWorkflowJsLink(overrideCtx){ //overrideCtx.listName ="{88E4FF8A-94E8-40AA-89BE-79A98B1CB370}"; 返回<输入类型=按钮""; value =开始工作流程"; onclick =" GetGUID('+"'" + overrideCtx.ListTitle + quot;"" +',',"'''" overrideCtx.CurrentItem.ID +"'" +')" />'; } 函数registerListRenderer(){ var overlayCtx = {}; overrideCtx.Templates = {}; OverrideCtx.Templates.Fields = { '编辑': { 查看":StartWorkflowJsLink } }; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); } ExecuteOrDelayUntilScriptLoaded(registerListRenderer,'clienttemplates.js'); 函数GetWFSubscriptionID(ListID,ItemID,ItemGUID){ showInProgressDialog(); var listGuid ="88e4ff8a-94e8-40aa-89be-79a98b1cb370"; 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( 功能() { var e = ssubs.getEnumerator(); 而(e.moveNext()){ var c = e.get_current(); 如果(c.get_name()=== WorkflowName){ var subId = c.get_id(); WFSubscriptionID = subId; StartWorkflow4(WFSubscriptionID,itemID,ItemGUID); } //alert("Name:" + c.get_name()+"sID:" + c.get_id()); }; }, 功能() { }); } var errorMessage =出了点问题.要重试,请重新加载页面,然后启动工作流程. var theForm = document.forms ['aspnetForm']; 如果(!theForm){ theForm = document.aspnetForm; } 函数StartWorkflow(iwa){ var elIwaStart = document.getElementById("iwaStart"); elIwaStart.value = iwa; theForm.submit(); } var dlg = null; 函数StartWorkflow4(subscriptionId,itemId,itemGuid){ var ctx = SP.ClientContext.get_current(); var wfManager = SP.WorkflowServices.WorkflowServicesManager.newObject(ctx,ctx.get_web()); var subscription = wfManager.getWorkflowSubscriptionService().getSubscription(subscriptionId); ctx.load(subscription,'PropertyDefinitions'); ctx.executeQueryAsync( 函数(发送方,参数){ var params = new Object(); var formData = subscription.get_propertyDefinitions()["FormData"]; if(formData!=空&& formData!='未定义'&& formData!="){ var assocParams = formData.split(;#"); 对于(var i = 0; i< assocParams.length; i ++){ params [assocParams [i]] = subscription.get_propertyDefinitions()[assocParams [i]]; } } 如果(itemId){ wfManager.getWorkflowInstanceService().startWorkflowOnListItem(subscription,itemId,params); } 别的 { wfManager.getWorkflowInstanceService().startWorkflow(subscription,params); } ctx.executeQueryAsync( 函数(发送方,参数){ closeInProgressDialog(); /* var elWf4Start = document.getElementById("wf4Start"); elWf4Start.value = 1; theForm.submit(); */ window.location.href = window.location.href; }, 函数(发送方,参数){ closeInProgressDialog(); alert(errorMessage); } ); }, 函数(发送方,参数){ closeInProgressDialog(); alert(errorMessage); } ); } 函数closeInProgressDialog(){ 如果(dlg!= null){ dlg.close(); } } 函数showInProgressDialog(){ 如果(dlg == null){ dlg = SP.UI.ModalDialog.showWaitScreenWithNoClose(请稍候...",正在等待工作流程...",null,null); } } 函数HandleCheckinBeforeStartWorkflow(){ var strError =请在开始工作流之前检入此文档." window.alert(strError); } /*代码结尾*/ </script>
.ajax({ url: _spPageContextInfo.webAbsoluteUrl + url, type: "GET", headers: { "accept": "application/json;odata=verbose", "content-Type": "application/json;odata=verbose" }, success: function(data) { console.log(data) d.resolve(data); }, error: function() { d.reject('bad request') } }); return d.promise(); } function GetGUID(z, Id) { itemID = Id; getItems(z, Id).then(function(data) { console.log(data.d.GUID); ItemGUID = data.d.GUID; GetWFSubscriptionID(ctx.listName, itemID, ItemGUID); }) } function StartWorkflowJsLink(overrideCtx) { //overrideCtx.listName = "{88E4FF8A-94E8-40AA-89BE-79A98B1CB370}"; return '<input type="button" value="Start Workflow" onclick="GetGUID(' + "'" + overrideCtx.ListTitle + "'" + ',' + "'" + overrideCtx.CurrentItem.ID + "'" + ')"/>'; } function registerListRenderer() { var overrideCtx = {}; overrideCtx.Templates = {}; overrideCtx.Templates.Fields = { 'Edit': { 'View': StartWorkflowJsLink } }; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); } ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js'); function GetWFSubscriptionID(ListID, ItemID, ItemGUID) { showInProgressDialog(); var listGuid = "88e4ff8a-94e8-40aa-89be-79a98b1cb370"; 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(); if (c.get_name() === WorkflowName) { var subId = c.get_id(); WFSubscriptionID = subId; StartWorkflow4(WFSubscriptionID, itemID, ItemGUID); } //alert("Name :" + c.get_name() + " sID: " + c.get_id()); }; }, function() { }); } var errorMessage = "Something went wrong. To try again, reload the page and then start the workflow."; var theForm = document.forms['aspnetForm']; if (!theForm) { theForm = document.aspnetForm; } function StartWorkflow(iwa) { var elIwaStart = document.getElementById("iwaStart"); elIwaStart.value = iwa; theForm.submit(); } var dlg = null; function StartWorkflow4(subscriptionId, itemId, itemGuid) { var ctx = SP.ClientContext.get_current(); var wfManager = SP.WorkflowServices.WorkflowServicesManager.newObject(ctx, ctx.get_web()); var subscription = wfManager.getWorkflowSubscriptionService().getSubscription(subscriptionId); ctx.load(subscription, 'PropertyDefinitions'); ctx.executeQueryAsync( function(sender, args) { var params = new Object(); var formData = subscription.get_propertyDefinitions()["FormData"]; if (formData != null && formData != 'undefined' && formData != "") { var assocParams = formData.split(";#"); for (var i = 0; i < assocParams.length; i++) { params[assocParams[i]] = subscription.get_propertyDefinitions()[assocParams[i]]; } } if (itemId) { wfManager.getWorkflowInstanceService().startWorkflowOnListItem(subscription, itemId, params); } else { wfManager.getWorkflowInstanceService().startWorkflow(subscription, params); } ctx.executeQueryAsync( function(sender, args) { closeInProgressDialog(); /*var elWf4Start = document.getElementById("wf4Start"); elWf4Start.value = 1; theForm.submit();*/ window.location.href = window.location.href; }, function(sender, args) { closeInProgressDialog(); alert(errorMessage); } ); }, function(sender, args) { closeInProgressDialog(); alert(errorMessage); } ); } function closeInProgressDialog() { if (dlg != null) { dlg.close(); } } function showInProgressDialog() { if (dlg == null) { dlg = SP.UI.ModalDialog.showWaitScreenWithNoClose("Please wait...", "Waiting for workflow...", null, null); } } function HandleCheckinBeforeStartWorkflow() { var strError = "Please check this document in before starting a workflow."; window.alert(strError); } /*Code Ends*/ </script>



这篇关于通过在侧面添加WF按钮来更改文档库的显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆