NCC业务插件注册讲解及常见问题排查思路

关键代码

事件派发器:nc.bs.businessevent.EventDispatcher

插件加载sql

SELECT T0.owner,
        T0.listenertype,
        T1.sourceid AS sourceid,
        T1.eventtypecode AS eventtype,
        T0.implclassname AS implclassname,
        T0.operindex AS operindex,
        M.devmodule AS devmodulecode,
        T0.localtype AS localtype,
        T0.industrytype AS industrytype
FROM pub_eventlistener T0 left outer
JOIN pub_eventtype T1
    ON T0.pk_eventtype =T1.pk_eventtype
LEFT JOIN dap_dapsystem M
    ON M.moduleid=T0.owner
WHERE T0.enabled = 'Y'
        OR T0.enabled = 'y';

业务插件缓存清除方法

如果注册新插件后,不想重启,可调用此方法,但请注意,不要将此方法写入业务逻辑内,防止对性能造成影响

EventDispatcher.clearCache();

关键表

事件源:pub_eventlistener
事件类型:pub_eventtype

关键断点

778行,EventDispatcher.getListenersInfo()
该处会以【事件源id@事件类型编码】作为key加载缓存
只要在该处打上断点,即可查看所有正在加载的事件,与关键表中的数据进行对照,即可分析出插件注册点
在这里插入图片描述

新增事件派发器监听

此处以增加采购发票收回后插件为例,传参为:元数据ID+动作+vo

EventDispatcher.fireEvent(new BusinessEvent("8b387c3a-819b-4c4d-bc59-d90955d205e7", "1020", vos));

在这里插入图片描述
若自带业务插件中找不到此事件类型,则需要在前台业务插件注册节点自行新增
在这里插入图片描述

参考资料

PPT下载
讲解视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值