运行在App层的插件原创
13人赞赏了该文章
217次浏览
编辑于2024年05月13日 17:08:59
运行在App层的插件 包括操作插件、单据转换插件、反写插件、账表取数插件等,此类插件掌控着某种特定服务的执行过程,与交互界面无关;
实现思路
通过Kingdee.BOS.App.dll的ServiceHelper类获取ViewService服务,调用此服务提供的Load方法
插件准备
插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、Kingdee.BOS.DataEntity.dll
类文件引用相关命名空间,详见示例代码
using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.SqlBuilder; using Kingdee.BOS.Orm.DataEntity; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyOperaionServicePlugIn { public class Class6 : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { //加载id为10001的物料数据 //获取ViewService IViewService viewService = Kingdee.BOS.App.ServiceHelper.GetService<IViewService>(); //获取元数据服务 IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>(); //获取物料元数据 FormMetadata materialMetada = metadataService.Load(this.Context, "BD_Material") as FormMetadata; //构建过滤条件 QueryBuilderParemeter queryParameter = new QueryBuilderParemeter(); queryParameter.BusinessInfo = materialMetada.BusinessInfo; queryParameter.FilterClauseWihtKey = "FMaterailId = 10001"; //构建快捷过滤条件 OQLFilter filter = new OQLFilter(); filter.Add(new OQLFilterHeadEntityItem() { FilterString = "FMaterialId = 10001" }); //构建关心的字段片段信息 List<SelectorItemInfo> lstSelectorItemInfos = new List<SelectorItemInfo>(); //物料属性 lstSelectorItemInfos.Add(new SelectorItemInfo("FErpClsId")); //使用组织 lstSelectorItemInfos.Add(new SelectorItemInfo("FUseOrgId")); //方法1: DynamicObject[] objs = viewService.Load(this.Context,materialMetada.BusinessInfo.GetDynamicObjectType(),queryParameter); //方法2: objs = viewService.Load(this.Context,new object[] { 10001 },materialMetada.BusinessInfo.GetDynamicObjectType()); //方法3: objs = viewService.Load( this.Context,materialMetada.BusinessInfo,lstSelectorItemInfos,filter); //方法4: objs = viewService.Load( this.Context,"BD_Material",lstSelectorItemInfos,filter); } } }
赞 13
13人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0