海南做网站的公司,wordpress 菜单栏高亮,网站开发那家好,网站修改工具前言
在日常的工作中#xff0c;会遇到各种各样的需要进行扩展开发的需求#xff0c;可以使用系统预留的扩展开发机制来实现#xff0c;避免修改源码。因NC产品已迭代至BIP版本#xff0c;所以前端扩展方式就再进行不赘述了#xff0c;本文主要介绍后端扩展开发方式…前言
在日常的工作中会遇到各种各样的需要进行扩展开发的需求可以使用系统预留的扩展开发机制来实现避免修改源码。因NC产品已迭代至BIP版本所以前端扩展方式就再进行不赘述了本文主要介绍后端扩展开发方式适用于NC6、NCC、BIP版本本文以采购订单新增后举例。 一、业务事件扩展
1.1、在private端创建Java类实现nc.bs.businessevent.IBusinessListener接口 1.2、打开【动态建模平台】-【开发配置】-【业务插件注册】 1.3、逐级找到对应单据的对应事件源注册扩展开发后的业务插件并保存 1.4、注册后启动开发环境在前端单据界面新增单据点击保存就会进入到扩展开发后的业务插件类。
备注如果在【业务插件注册】中找不到想要扩展的事件源则不推荐使用业务事件扩展。如果确实需要则需要修改单据源码支持业务事件扩展。 二、业务规则扩展
2.1、确认单据动作是否支持业务规则扩展找到对应单据动作实现类并跟踪源码找到BP类 如果源码中出现如图红框内所示代码则单据新增动作支持业务后规则扩展新增动作扩展插入点为nc.bs.pu.m21.plugin.OrderPluginPoint.INSERT。插入点确认后需要获取业务组件名、模块名、插入点这三个属性在下面组装规则类注册SQL时需要用到 2.2、在private端创建Java类实现nc.impl.pubapp.pattern.rule.IRuleE接口接口泛型为单据聚合VO 2.3、因规则类在前端无界面进行注册则需要通过后台数据库中执行新增数据的形式进行规则类的注册规则类注册表pub_pluginitem字段解析如下 规则类注册示例SQL
INSERT INTO pub_pluginitem(creationtime, creator, dr, industrytype, iorder, localtype, modifiedtime, modifier, pk_pluginitem, ts, vcomponentname, vdescription, veventtype, vextendmodule, vextendpointname, vextendtype, vmodulename, vruleclass, vtargetclass) VALUES (NULL, ~, 0, ~, 1, ~, NULL, ~, 1001Z8VTAX000006447Z, 2023-09-04 16:00:00, 21, 采购订单新增后规则类, after, test, INSERT, addAfter, PO, nc.rule.test.m21.PoOrderInsertAfterRule, NULL);
2.4、规则类注册后启动开发环境在前端单据界面新增单据点击保存就会进入到扩展开发后的业务规则类。
备注
1、如果在单据动作源码中找不到想要的扩展插入点则不推荐使用业务规则扩展。如果确实需要则需要修改单据源码支持业务规则扩展
2、如果扩展规则类 nc.rule.test.m21.PoOrderInsertAfterRule 在部署至NC服务中时补丁位置为home/modules/test/META-INF/classes文件夹下则 vextendmodule字段值为 test如果为其他模块则进行相应的变更。