电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

单据操作插件-插件基类

来源:金蝶云社区作者:金蝶2024-09-234

单据操作插件-插件基类

1 插件基类介绍

系统预置了一个操作插件基类 AbstractOperationServicePlugIn,实现了操作插件接口;

自定义的操作插件,扩展预置的操作插件基类 AbstractOperationServicePlugIn 即可。


单据操作说明:

系统预置了一批操作,可以绑定在界面菜单、按钮上;用户点击按钮时,即自动执行这些操作,完成特定的操作功能。

 

这些预置的操作,可以根据是否写数据入库,分为两大类:

  • 表单操作:仅对表单界面及界面上的数据进行处理,不会写数据入库,如”新建”、”关闭”操作;

  • 实体操作:会写数据入库,只能配置在单据、基础资料上,如”保存”、”提交”、”审核”操作。

可以给单据上绑定的实体操作,单独开发操作插件,对操作写数据入库的过程,进行干预。

 

本节介绍单据操作插件及其事件。

  • 表单操作,不会写数据入库,只能针对表单界面及界面数据进行处理,不支持操作插件,但可以开发表单插件,对表单操作进行适度的干预;

  •  与表单操作相关的表单插件事件,包括:

      1. 菜单、按钮点击事件(beforeitemClick, itemClick, beforeClick, click),可以取消操作的执行;

      2. 操作执行前后事件(beforeDoOperation, afterDoOperation),准备操作参数、接收操作执行结果刷新界面。


说明:实体操作清单。

下表列出了系统预置的实体操作,只能对这些操作,开发操作插件(其他未列出的操作属于界面操作,不能开发操作插件)。

操作

功能说明

保存 (save)

把单据数据包中的数据,存入单据表格

保存并新增 (saveandnew)

把单据数据包中的数据,存入单据表格;

保存成功后,清空界面数据,进入新增状态

状态转换 (statusconvert)

切换单据状态字段值,并更新单据表格

提交 (submit)

切换单据状态字段值为”审核中”,并更新单据表格

提交并新增 (submitandnew)

切换单据状态字段值为”审核中”, 并更新单据表格

提交成功后,清空界面数据,进入新增状态

撤销 (unsubmit)

切换单据状态值为”暂存”, 并更新单据表格

审核 (audit)

切换单据状态值为”已审核”,并记录审核人,更新单据表格

反审核 (unaudit)

切换单据状态值为”暂存”,并清除审核人,更新单据表格

禁用 (disable)

切换使用状态为”停用”,并更新单据表格

启用 (enable)

切换使用状态为”启用”,并更新单据表格

作废 (invalid)

切换作废状态为”作废”,并更新单据表格

生效 (valid)

切换作废状态为”正常”,并更新单据表格

删除 (delete)

从单据表格中,删除单据数据

空操作 (donothing)

特殊的实体操作,本身并不写单据入库;

但会执行操作的全部过程,包括权限校验、写日志,支持操作插件开发,触发全部操作事件;  


2 插件接口

单据操作插件接口为IOperationServicePlugInIOperationService。


3 方法介绍

插件基类 AbstractOperationServicePlugIn 内置了如下属性方法和本地变量,供插件访问,用以获取操作执行上下文:

方法

说明

billEntityType

单据主实体

operateMeta

操作配置,据此获知当前执行的操作信息

operationResult

操作结果,可以向其中添加操作提示信息

getOption()

自定义操作参数字典,可以包含各种自定义操作参数


4 创建并注册插件

自定义的单据操作插件,需要扩展单据操作插件基类 AbstractOperationServicePlugIn

如下例:

package   kd.bos.plugin.sample.bill.bizoperation.bizcase;
 
import   kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import   kd.bos.entity.plugin.AddValidatorsEventArgs;
import   kd.bos.entity.plugin.PreparePropertysEventArgs;
import   kd.bos.entity.plugin.args.AfterOperationArgs;
import   kd.bos.entity.plugin.args.BeforeOperationArgs;
import   kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
import   kd.bos.entity.plugin.args.EndOperationTransactionArgs;
import   kd.bos.entity.plugin.args.RollbackOperationArgs;
 
/**
 * 演示操作插件全部事件的捕获及触发时机
 *
 * @author rd_johnnyding
 * @remark
 * 本示例代码,捕捉的事件,由前往后触发
 *
 */
public class OperationEventSample extends AbstractOperationServicePlugIn {
 
    /**
     * 操作执行,加载单据数据包之前,触发此事件;
     *
     * @remark
     * 在单据列表上执行单据操作,传入的是单据内码;
     * 系统需要先根据传入的单据内码,加载单据数据包,其中只包含操作要用到的字段,然后再执行操作;
     * 在加载单据数据包之前,操作引擎触发此事件;
     *
     * 插件需要在此事件,添加需要用到的字段;
     * 否则,系统加载的单据数据包,可能没有插件要用到的字段值,从而引发中断
     */
    @Override
    public void   onPreparePropertys(PreparePropertysEventArgs e) {
         this.print

单据操作插件-插件基类

1 插件基类介绍系统预置了一个操作插件基类 AbstractOperationServicePlugIn,实现了操作插件接口;自定义的操作插件,扩展预置的操作插...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信