工作流服务插件-输出审批人、审批意见到单据上

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

工作流服务插件-输出审批人、审批意见到单据上

## 工作流服务插件-输出审批人、审批意见到单据上 1. 以下示例插件,举例说明在用户审批的时候,如何获取一级审批节点的审批人、审批意见信息,并输出到单据上,示例未经测试仅供参考思路。首先到K/3 Cloud安装目录的WebSite\Bin子目录,引用如下基本组件(其他组件按需引用): Kingdee.BOS.dll Kingdee.BOS.Contracts.dll Kingdee.BOS.Core.dll Kingdee.BOS.DataEntity.dll Kingdee.BOS.ServiceHelper.dll ``` using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.Const; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Workflow.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Demo.Workflow.ServicePlugIn { /// <summary> /// 输出审批人、审批意见到单据上 /// </summary> [Description("服务插件,输出审批人、审批意见到单据上")] public class ApprovalInfoServicePlugIn : AbstractOperationServicePlugIn { private const string KEY_User1 = "FUserId1_Id"; private const string KEY_Opinion1 = "FRemarks1"; private const string KEY_TaskTitle1 = "FTaskTitle1"; private const int KEY_FirstNodeId = 5; public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); // 获取流程任务信息 var activityCollection = this.Option.GetVariableValue<ObjectActivityInstanceCollection>(BOSConst.CST_KEY_WfActivityInstance, null); if (activityCollection != null) { IMetaDataService metaService = ServiceFactory.GetMetaDataService(this.Context); IViewService viewService = ServiceFactory.GetViewService(this.Context); List<DynamicObject> rowList = new List<DynamicObject>(); // 每个任务传入一个ObjectActivityInstance对象,批量审批任务时会传入多个对象 foreach (ObjectActivityInstance actRow in activityCollection) { // 本例演示获取当前处理人的信息(每个任务可能有多个处理人,所有处理人存储在ReceiverList属性中) IActivityInstance actInstance = actRow.ActivityInstance; var currentReceiver =actInstance.CurrentReceiver; // 加载单据数据 FormMetadata rowMeta = metaService.Load(this.Context, actRow.ObjectFormId, true) as FormMetadata; var rowData = viewService.LoadSingle(this.Context, actRow.ObjectKeyValue,rowMeta.BusinessInfo.GetDynamicObjectType()); // 根据节点ID把审批人等信息输出到相应字段上,比如一级审核节点(如何查询节点ID参见下文)的审批人输出到FUserId1字段上 if (actInstance.ActivityDefineId ==KEY_FirstNodeId && currentReceiver != null) { // 可以输出审批人、意见、所选审批项、审批时间、任务标题信息 rowData[KEY_User1] = currentReceiver.ReceiverUserId; rowData[KEY_Opinion1] = currentReceiver.ActionOpinion; rowData[KEY_TaskTitle1] = currentReceiver.TaskTitle;// 任务标题属性,预计在8月后的补丁支持 } rowList.Add(rowData); } if (rowList.Count > 0) { ISaveService saveService = ServiceFactory.GetSaveService(this.Context); saveService.Save(this.Context, rowList.ToArray()); } } } } } ``` 1.2 如何查询节点ID ​ 首先在流程设计页面双击空白处,在弹出的“流程设置”页面勾选“显示节点ID”: ​ ![2.webp](https://wenku.my7c.com/download?fileName=010074fb67e926524f5eb66ce36c2052ca8d.webp) ​ 然后双击目标节点打开“节点设置”页面,就可以看到节点ID: ​ ![3.webp](https://wenku.my7c.com/download?fileName=0100364dabab3cdf4130b07d5b375945ae67.webp) 2. 如何注册审批动作服务插件 ​ 熟悉的伙伴可以略过下文。 ​ 先在操作上配置服务插件,然后在节点的审批项上配置操作。 ​ ![4.webp](https://wenku.my7c.com/download?fileName=0100d6c880fd996a4a84aa24b6773b8c81f4.webp) ​ 对于有审核操作的终审节点,可以在审核操作上配置服务插件。 ​ 打开BOS设计器中目标单据的操作列表,在审核操作上配置服务插件: ​ 在终审节点审批项上配置审核操作: ​ ![5.webp](https://wenku.my7c.com/download?fileName=010032a44bf95eb0418eab1a7e37c833e75c.webp) ​ 对于没有审核操作的普通节点,可以在审批项上配置空操作,然后在空操作上配置服务插件。 ​ 打开BOS设计器中目标单据的操作列表,新增用于输出审批人的空操作,并配置服务插件: ​ 在普通节点审批项上配置该空操作: ​ ![7.webp](https://wenku.my7c.com/download?fileName=0100a39907992005403ba06f99fa0d888df1.webp)

你好,咨询下设置审批项-表单操作是如何可编辑的呢?我们这边只能操作终止流程的表单操作。

另外,你这配置好后是否每个审批节点审批后都会同时同步,还是最终流程完后才同步?目前我没设置这个测试后仅流程完成后才同步。  谢谢啦,盼回复。

1d9b026f422863441f07ec058ae2166.webp

b15700ae26b52639cef8f3688262ca7.webp


工作流服务插件-输出审批人、审批意见到单据上

## 工作流服务插件-输出审批人、审批意见到单据上1. 以下示例插件,举例说明在用户审批的时候,如何获取一级审批节点的审批人、审批意见...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息