Ø 运行在App层的插件
包括操作插件、单据转换插件、反写插件、账表取数插件等,此类插件掌控着某种特定服务的执行过程,与交互界面无关;
Ø 实现思路
调用Kingdee.BOS.App.dll组件提供的ServiceHelper类提供的GetService泛型方法,访问BusinessDataService服务的SetState方法
Ø 插件准备
插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、Kingdee.BOS.DataEntity.dll
类文件引用相关命名空间,详见示例代码
Ø 接口介绍
SetState方法直接操作数据库,执行update语句,按方法参数构建一条例如update xxx set xxx ='xxx' where xxx = xxx的指令
Ø SetState参数介绍
名称 | 类型 | 说明 |
ctx | Context | 系统上下文全局信息 |
tableName | string | 待执行update指令的表名 |
fieldName | string | 待禁用的状态字段的字段名 |
fieldValue | string | 待禁用的状态字段的目标值 |
pkFieldName | string | 当前表的唯一标识字段名 |
pkFieldValues | object[] | 当前表的唯一标示字段值集合 |
Ø 示例代码
C# | |
using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace MyOperaionServicePlugIn { public class Class4 : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction( BeforeExecuteOperationTransaction e) { //获取数据服务 IBusinessDataService businessDataService = Kingdee.BOS.App.ServiceHelper.GetService<IBusinessDataService>(); businessDataService.SetState( this.Context, "T_BD_Material", "FForbidStatus", "B", "FMaterialId", new object[] { 10001, 10002 }); } } } |
本文转载自:《K/3 Cloud BOS 插件开发百问百答》
作者:张晋博、丁振华
原文链接:https://open.kingdee.com/K3Cloud/Wenku/DocumentView.aspx?docId=117527
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *