查找反编译平台组件插件的方法分享原创
金蝶云社区-邱育华
邱育华
31人赞赏了该文章 1,197次浏览 未经作者许可,禁止转载编辑于2022年04月28日 10:45:42

学习星空最关键在于了解业务,现实中的企业业务运行映射到系统的功能操作,这是最核心的。而作为星空体系下的开发人员,在了解业务的基础上,对星空系统的运行原理和BOS平台的理解对比其他角色的人员,又有更高的要求。 


系统的二开很依赖经验,社区的知识和文章提供了很多开发的技巧和解决方案。仅仅依赖社区老师的分享远远不够,主动从可触达的系统功能、组件去分析研究更为关键。


有时候想要了解标准功能的插件是如何编写构建的,调用方式是怎么样的,那么反编译标准组件看源码就少不了了。 分享一个从功能出发,查阅源码的方法(庞大的星空系统凝聚了多少老师的智慧结晶啊)


以其他出库单为例,对于"库存查询",从BOS元数据找到对应的配置入口,识别是"表单操作"

image.png


由表单类型,在对应数据表中找到实现的组件名

image.png

类似的看"无源单批号拣货服务",同样的操作方式查找,识别是"表单服务"


image.png


image.png

SELECT * FROM T_MDL_FORMBUSINESS  -- 可选表单服务 

SELECT * FROM T_MDL_FORMBUSINESS_L  -- 可选表单服务多语言 

SELECT * FROM T_MDL_FORMOPERATIONTYPE  -- 可选表单操作 

SELECT * FROM T_MDL_FORMOPERATIONTYPE_L  -- 可选表单操作多语言


对应组件及实现类:

Kingdee.K3.SCM.Business.DynamicForm.Operation.QueryStock,Kingdee.K3.SCM.Business.DynamicForm

Kingdee.K3.SCM.Business.DynamicForm.BusinessService.SingleLotPicking, Kingdee.K3.SCM.Business.DynamicForm


加载对应组件,反编译插件代码


image.png



说明:

1、反编译加载组件把组件放在包含所有组件的目录里,相当于加载bin目录下的组件,这样反编译会加载对应引用源码,较好的还原系统源码

2、反编译的源码由于解析的原因,部分变量可读性较差,跟源码还是存在一定差异,缺少注释,逻辑没问题,不影响学习使用

3、对于表单插件、列表插件等同样的原理,进行反编译

4、将系统功能的运行和代码相结合,对于二开的学习还是帮助挺大的

赞 31