金蝶EAS_凭证操作_二次开发_开发指南
概述
凭证操作是总账系统比较重要的功能,也是最为常见的操作,它包括:凭证保存,凭证提交,凭证删除,凭证审核,凭证反审核,凭证过账,凭证反过账,凭证作废,凭证生效。可能有些客户对某些操作有个性化的需求,要做一些扩展:比如凭证提交前,要验证某个科目的金额不能大于多少多少(前置操作);凭证删除后,要通知外部系统来源单要重新传凭证(后置操作)。由于之前没有提供标准的扩展方案,以至于二开代码形式多样化:有通过VoucherControllerBeanEx扩展的,有直接反编译VoucherControllerBean的,有直接反编译XxxVoucherService,有直接写SQL的,...。这些二开操作可能会给总账系统带来一些问题:事务一致性问题,并发控制问题,余额更新问题,补丁升级问题等。
为规范凭证操作二次开发,总账系统定义了供二开扩展的抽象类com.kingdee.eas.fi.gl.app.GLActionListener:
actionName:操作名,由eas定义,目前支持GL_VoucherSave,GL_VoucherSubmit,GL_VoucherDelete,GL_VoucherAudit,GL_VoucherAntiAudit,GL_VoucherPost,GL_VoucherAntiPost,GL_VoucherCancel,GL_VoucherAntiCancel。这些都是凭证的操作,后续可能会扩展到其它一些操作,比如结账。
pointCut:切入点,Before:前置操作,After:后置操作。
actionPerformed(Context ctx, Object param):需要二开扩展(实现)的方法,对于凭证操作,参数param为凭证对象,使用时做类型转换即可。
举例说明:
我们要扩展一个凭证提交的前置操作com.kingdee.eas.fi.gl.app.MyVoucherSubmitActionListener:
我们要扩展一个凭证删除的后置操作com.kingdee.eas.fi.gl.app.MyVoucherDeleteActionListener:
扩展类写好后,把它编译打包,放到私包目录eas\server\lib\sp下,再将这些类注册到总账操作监听器配置表T_GL_ActionListener中:
表中第10和11行是新加进去的;1到9行是系统预置的,用于给金蝶税务系统监听EAS凭证操作的,不用管它。
表列说明:
FActionName:就是前面说的操作名。
FPointCut:就是前面说的切入点。
FClassName:就是你的扩展类名。
FIsEnable:该监听器是否生效,系统只会取值为1的监听器来执行。
FDescription:该监听器的说明。
注意,为了提升性能,系统启动后,每个实例只会读取一次监听器配置表,然后缓存起来,后面用到的时候都从缓存中读取,如果配置信息有变化,需要重新启动应用服务器。
如此,凭证提交时会执行MyVoucherSubmitActionListener.actionPerformed,凭证删除时会执行MyVoucherDeleteActionListener.actionPerformed。注意,为了不影响凭证操作的性能,请不要在其中加太过耗时的逻辑。
版本迭代说明(不完全统计,新的在上):
补丁号(EAS881) | 发布时间 | 更新内容 |
原生支持 | ||
补丁号(EAS861) | 发布时间 | 更新内容 |
PT168687 | 2022-11-11 | 首次发布。 |
补丁号(EAS850) | 发布时间 | 更新内容 |
PT169465 | 2023-01-13 | 首次发布。 |
补丁号(EAS820) | 发布时间 | 更新内容 |
PT168234 | 2022-10-14 | 首次发布。 |
补丁号(EAS800) | 发布时间 | 更新内容 |
暂不支持 |
金蝶EAS_凭证操作_二次开发_开发指南
本文2024-09-22 18:24:05发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-100536.html