App层插件,如何删除(Delete)单据,IDeleteService.Delete()
Ø 运行在App层的插件
包括操作插件、单据转换插件、反写插件、账表取数插件等,此类插件掌控着某种特定服务的执行过程,与交互界面无关;
Ø 实现思路
调用Kingdee.BOS.App.dll组件的ServiceHelper类提供的GetService泛型方法获取删除服务
Ø 插件准备
插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、Kingdee.BOS.DataEntity.dll
类文件引用相关命名空间,详见示例代码
Ø 接口介绍
IDeleteService提供两个Delete方法,其区别在于
参数不带元数据描述信息的,直接执行数据库删除操作,把数据删除
public void Delete(Context ctx, object[] Ids, DynamicObjectType dynamicObjectType)
参数带元数据描述信息的,执行删除操作的服务端完整服务,如执行删除操作的校验器、删除操作的服务端服务、删除操作的服务端插件
public IOperationResult Delete(Context ctx, BusinessInfo businessInfo, object[] Ids, OperateOption option = null, string operationNumber = "")
Ø 参数介绍
名称 | 类型 | 说明 |
ctx | Context | 系统上下文全局信息 |
Ids | object[] | 待删除数据的id集合 |
dynamicObjectType | DynamicObjectType | 待删除数据的动态实体类型 |
businessInfo | BusinessInfo | 待删除数据的元数据描述信息 |
option | OperateOption | 业务控制额外选项,删除的服务端服务和插件都能持有此对象 |
operationNumber | string | 删除操作的操作码 |
Ø 示例代码
C# | |
using Kingdee.BOS.Contracts; 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 Class5 : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction( BeforeExecuteOperationTransaction e) { //获取删除服务 IDeleteService deleteService = Kingdee.BOS.App.ServiceHelper.GetService<IDeleteService>(); //获取元数据服务 IMetaDataService metaDataService = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>(); //获取物料元数据 FormMetadata materialMetadata = metaDataService.Load(this.Context,"BD_Material") as FormMetadata; //执行删除服务的完整过程(推荐方式) deleteService.Delete( this.Context, materialMetadata.BusinessInfo, new object[] { 10001, 10002 });
// 直接执行数据删除 (风险极高,仅适用于未定义单据,只是利用ORM模型存取数据的情况) // 调用此服务会跳过删除校验,仅删除ORM模型内含表格的数据,其他相关数据不会处理,如果有上下游单据及反写,不会撤销关联及回滚反写,从而造成数据错误! deleteService.Delete( this.Context, new object[] { 10001, 10002 }, materialMetadata.BusinessInfo.GetDynamicObjectType()); } } } |
App层插件,如何删除(Delete)单据,IDeleteService.Delete()
本文2024-09-23 04:16:52发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164296.html
- 鼎新e-GoB2雲端ERP B2 線上課程報價單建立B4.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程B2-4庫存單位及換算單位建立.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程H2生管前置作業.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程F6採購單建立.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程H5製令單.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A2共用參數設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程G4進銷存開帳.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程F2-1廠商資料建立.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程H1生管參數設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C8自動分錄拋轉.pdf