二开案例.服务插件.反审核时获取工作流流程状态
【应用场景】
反审核时获取工作流流程状态。
反审核有以下两种执行场景:
<1>流程管理中心,终止且反审核(流程相关)。
<2>流程处理人在待办任务处理界面终止流程时,自动反审核(流程相关)。
<3>已审核单据,执行反审核。
【案例演示】
采购订单,反审核时获取工作流流程状态。
【实现步骤】
<1>编写服务插件,代码如下。
using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Util; using System; using System.ComponentModel; using System.Linq; namespace Jac.XkDemo.BOS.App.PlugIn { /// <summary> /// 【服务插件】反审核时获取工作流流程状态 /// </summary> [Description("【服务插件】反审核时获取工作流流程状态"), HotUpdate] public class GetStatusOperationServicePlugIn : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { base.BeforeExecuteOperationTransaction(e); if (this.FormOperation.OperationId != 26) { return; } #region 方案1 string[] ProcInstIds; if (this.Option.TryGetVariableValue("ProcInstIds", out ProcInstIds) && ProcInstIds != null && ProcInstIds.Length > 0) { // 当前单据的流程实例还在运行中 // TODO e.Cancel = true; e.CancelMessage = "流程运行中,禁止反审核!"; return; } return; #endregion #region 方案2 var ids = e.SelectedRows.Select(o => "'" + o.DataEntity[0] + "'").ToArray(); if (ids.Length == 0) { return; } // 查询当前单据的流程是否还在运行中 var sql = string.Format(@"SELECT DISTINCT b.FKEYVALUE,a.FPROCINSTID FROM T_WF_PROCINST a JOIN T_WF_PIBIMAP b ON a.FPROCINSTID=b.FPROCINSTID AND b.FOBJECTTYPEID='{0}' WHERE b.FKEYVALUE IN ({1}) AND a.FSTATUS='2'", this.BusinessInfo.GetForm().Id, string.Join(",", ids)); var objs = DBUtils.ExecuteDynamicObject(this.Context, sql); if (objs.Count > 0) { var dicPKIds = objs.Select(o => Convert.ToInt32(o[0])).Distinct().ToDictionary(o => o); foreach (var extendedDataEntity in e.SelectedRows) { if (dicPKIds.ContainsKey(Convert.ToInt32(extendedDataEntity.DataEntity[0]))) { // 当前单据的流程实例还在运行中 // TODO e.Cancel = true; e.CancelMessage = "流程运行中,禁止反审核!"; return; } } } #endregion } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展采购订单,反审核操作注册服务插件,保存元数据,开发完毕。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.服务插件.反审核时获取工作流流程状态
【应用场景】 反审核时获取工作流流程状态。反审核有以下两种执行场景:<1>流程管理中心,终止且反审核(流程相关)。<2>流程处理人在待办...
点击下载文档
本文2024-09-23 04:00:27发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162506.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章