操作插件示例代码题稿.docx
文本预览下载声明
操作插件示例代码修订记录Ver. No日期编制\修订校对批准修改的章节号V1.020150420丁振华张晋博赖碧云初始版本问题和意见如果你对文档有任何意见、问题或想法,或者你的问题未在此文档中找到答案,请通过电子邮件联系我们jinbo_zhang@操作插件概要说明操作插件,用于对操作的执行过程进行干预、控制,以实现自定义扩展功能;如可以为审核操作,附加插件,在审核前,进行数据检查,只有符合条件的数据才允许审核;审核后,进行自动下推,并与审核操作保持在一个事务,如果自动下推失败,则审核回滚,确保数据的完整性。特别说明:请谨慎使用单据维护界面插件的BeforeDoOperate事件、AfterDoOperate事件,进行操作前后处理。单据维护界面的这两个事件,与操作本身并不是同一事务,如果在AfterDoOperate进行同步数据处理,如果处理失败,则无法回滚数据,从而造成数据不一致。如何创建一个操作插件创建类库工程,包含插件类定义引用如下类库(类库文件在K/3 Cloud站点目录\Bin\)必选的类库文件包括:Kingdee.BOS.dll;Kingdee.BOS.App.dll;Kingdee.BOS.BusinessEntity.dll;Kingdee.BOS.Contracts.dll;Kingdee.BOS.Core.dll;Kingdee.BOS.DataEntity.dll;在类库中添加一个插件类操作插件概览如下是一个典型的操作插件定义代码:C#?using System;using System.Collections.Generic;using System.Linq;using System.Text;using Kingdee.BOS;using Kingdee.BOS.Util;using Kingdee.BOS.Core.DynamicForm.PlugIn;using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;namespace SamplePlugIn.ServicePlugIn{///summary///操作服务端插件示例////summary///remarks/// 1. 示例如何强制要求加载某字段/// 2. 示例如何注入校验器,校验器可以通用,为避免在各操作中重复编码,剥离出来,然后各操作注入剥离出的校验器/// 3. 说明一些关键事件的用途////remarks [System.ComponentModel.Description(操作服务端插件示例)]publicclassOperationPlugSample : AbstractOperationServicePlugIn {///summary///操作初始化时,确认操作执行参数////summary///param name=e/parampublicoverridevoid OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e) {base.OnPrepareOperationServiceOption(e); }///summary///数据加载前,确保需要的属性被加载////summary///param name=e/param///remarks///在列表上执行操作时,单据的字段并没有被完全加载。///如果操作插件用到了未被加载的字段,一定会中断;///本事件允许插件,强制要求加载某些字段,避免中断////remarkspublicoverridevoid OnPreparePropertys(PreparePropertysEventArgs e) {// 如下代码行,指定字段xxxxx的Key,强制要求加载字段 e.FieldKeys.Add(xxxxx); }///summary///操作执行前,加载操作校验器////summary///param name=e/param///remarks///在系统开始执行校验前,插件可以追加自己的校验器进入操作校验器集合////remarkspublicoverridevoid OnAddValidators(AddValidatorsEventArgs e) {// 如下代码行,示例加入自定义的校验器// 自定义的校验器,必须从基类 Kingdee.BOS.Core.Validation.AbstractValidator 派生 e.Validators.Add(newOperationSampleValidator());
显示全部