Ø 运行在App层的插件
包括操作插件、单据转换插件、反写插件、账表取数插件等,此类插件掌控着某种特定服务的执行过程,与交互界面无关;
Ø 实现思路
调用Kingdee.BOS.App.dll组件提供的ServiceHelper类提供的GetService泛型方法,获取改变单据状态服务,调用此服务提供的SetBillStatus方法
Ø 插件准备
插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、Kingdee.BOS.DataEntity.dll
类文件引用相关命名空间,详见示例代码
Ø 接口介绍
SetBillStatus方法与SetStatus方法看上去类似,其实完全不一样,其参数列表也完全不一样,调用单据审核操作的服务端要使用SetBillStatus方法,SetStatus方法后续介绍
Ø SetBillStatus方法参数介绍
名称 | 类型 | 说明 |
ctx | Context | 系统上下文全局信息 |
businessInfo | BusinessInfo | 待审核\反审核数据的元数据描述信息 |
pkEntryIds | List<KeyValuePair<object, object>> | 待审核\反审核数据的id集合,此场景key和value都是id的值 |
paras | List<object> | 审核\反审核时附加的参数,包含两个值,第一个,同意与否,0:驳回;1:通过;2:反审核;第二个,审核意见,此参数默认可以为空 |
operationNumber | string | 审核\反审核操作的操作码 |
option | OperateOption | 额外业务选项,审核\反审核服务端服务和服务端插件都持有此对象 |
Ø 示例代码
C# | |
using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace MyOperaionServicePlugIn { public class Class3 : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction( BeforeExecuteOperationTransaction e) { //审核\反审核id为10001的物料数据 //获取单据状态转换服务 ISetStatusService setStatusService = Kingdee.BOS.App.ServiceHelper.GetService<ISetStatusService>(); //获取元数据服务 IMetaDataService metaDataService = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>(); //构建id为10001的数据集合 List<KeyValuePair<object, object>> lstKeyValuePairs = new List<KeyValuePair<object, object>>(); KeyValuePair<object, object> keyValuePair = new KeyValuePair<object, object>(10001, ""); lstKeyValuePairs.Add(keyValuePair); //获取物料元数据 FormMetadata materialMetaData = metaDataService.Load(this.Context, "BD_Material") as FormMetadata;
//反审核 IOperationResult unAuditResult = setStatusService.SetBillStatus( this.Context, materialMetaData.BusinessInfo, lstKeyValuePairs, null, "UnAudit"); } } } |
本文转载自:《K/3 Cloud BOS 插件开发百问百答》
作者:张晋博、丁振华
原文链接:https://open.kingdee.com/K3Cloud/Wenku/DocumentView.aspx?docId=117527
推荐阅读