解构金蝶EAS 开发工具
最近上手了金蝶 EAS 的二次开发,工作之余也顺带研究了一下结构,便于日后排查,这个研究仅针对 EAS 7.5 , 即 BIM 6.1.0 。我们重点关注BOS Modular 的基本结构、整个 EAS 源代码的功能是怎么分布的、以及反向整理 EAS 报告异常的格式。
BOS Modular 其实由一个 eclipse ganymede ,和多个制作成 eclipse 插件的金蝶插件组成。所以我会从业务建模和 设计视图这两个透视图的源码,结合金蝶自身的 xml schemas 来排查,使用时的各种看不懂的报错是什么意思。
目前(7.5)版本的开发工具,不放在 jar 包里面的 schemas 文件,,一共有5个,罗列在下面的表格就比较方便阅读了:
根目录 | 下级目录 | 文件后缀 |
---|---|---|
BOSModular | boscommon/eclipse/plugins/com.kingdee.bos.metadata_6.1.0/schema | .exsd |
BOSModular | boscommon/eclipse/plugins/com.kingdee.bos.toolcommon_6.1.0/schema | .exsd |
BOSModular | wfdesigner/eclipse/plugins/com.kingdee.bos.workflowdesigner_6.1.0/schema | .exsd |
BOSModular | rcs/eclipse/plugins/com.kingdee.bos.rcs_6.1.0/schema | .exsd |
BOSModular | webbim/eclipse/plugins/com.kingdee.bos.metadatareleasebridge_6.1.0/schema | .exsd |
还有在翻找各个插件模块的源码时,发现了BOSModular/boscommon/eclipse/plugins/com.kingdee.bos.common_6.1.0
目录里面的这几个宝贝,其中的 Context
类包含了完整的用户操作/ 登陆的信息:
根目录 | 类的名称 | 文件后缀 |
---|---|---|
/common.jar/com/kingdee/bos/ | Context | .class |
/common.jar/com/kingdee/bos/ | Context2 | .class |
/common.jar/com/kingdee/util/ | BaseException | .class |
关于与之相关的 ,BOSModular/boscommon/eclipse/plugins/com.kingdee.bos.metadata_6.1.0
下面的 /metadata.jar/com.kingdee.bos/ConetxtUtils.class
,我后面再作说明;先来看一下 BaseException
类里面一个方法,在单据提交和校验 UI 文件的时候经常会看到这些提示:
private Throwable replaceCause(Throwable oldEX){if (oldEX == null) {return null;}if ((oldEX instanceof SQLException)){SQLException oldEX1 = (SQLException)oldEX;Throwable newEX = oldEX1.getNextException();if (newEX != null) {return newEX;}}return oldEX;}
观察了代码之后,我们可以发现,BaseException
类在这里会输出两种异常,分别是 SQLException
和 Throwable
,也就是在调用单据查询和插入时发生
还有这个,经常在校验元数据时提示类似的信息
public String getMessage(){if (!this.hasCause) {return super.getMessage();}return super.getMessage() + "\nCaused exception message is: " + (this.hasSer ? this.causeMessage : this.cause.getMessage());}
比方说 ,校验之后,校验信息显示 nullCaused exception message is: null
。最后需要研究的就是BOSModular/bosstudio/eclipse/plugins/com.kingdee.bos.newstudio_6.1.0
目录下面的 newstudio.jar
, 关于各种控件的 schemas 定义、和开发工具界面绑定的 Action 类都在这里。等会儿就搞个大新闻。
还有些不成文的解决思路,比如运行或者发布代码时 IDE 挂掉了,先看看自己的磁盘和内存够不够(我一般用 500G 硬盘和 8 G 内存的组合,还能应付本机产品数据库和开发工具一起跑)。再就是,避免发布和标准产品表名称、字段名称一样的数据库表,防止冲突。有什么不懂的,在缺乏文档的情况下面,先研究标准产品的源代码。:)
解构金蝶EAS 开发工具相关推荐
- 金蝶EAS开发 第一弹:了解开发工具与基本使用(上)
毕业前夕,我来到了一家物流公司实习,为本公司做系统.我被分配的是用金蝶做财务系统的二次开发,没有文档的帮助真的让我头皮发麻,还好同事很热心,一直在帮助我,不然要上手这玩意还真的很有难度.入职已经两个星 ...
- 金蝶EAS开发 第二弹:了解开发工具与基本使用(下)
承接上一篇:金蝶EAS开发 第一弹:了解开发工具与基本使用(上) ,我们继续! 3.3. client目录是客户端相关的:里面可以配置各种功能的UI: 3.3.1. UI配置文件: 3.3.2. UI ...
- 【Windows 应用程序开发详解】三.Windows开发工具配置与使用(一)
[Windows 应用程序开发详解]三.Windows开发工具配置与使用 一.Visual C/C++ 我们都知道在应用程序开发的时候都是要依赖于开发工具的,Windows主机应用程序绝大多数都是使用 ...
- 金蝶EAS开发 第三弹:按钮变灰无法点击怎么办(包教包会)
从第三弹开始我准备写一些开发过程中遇到的一些问题该如何解决. 一.问题描述: 当在UI界面放置了一个按钮,已经为它绑定了action(事件),甚至都已经完成了事件代码的编写,但是在测试过程中按钮无法点 ...
- 金蝶EAS开发笔记(理论篇)
1.界面介绍 1. 新建业务单位,若无需求,默认选用财务组织. 2. 在项目路径下的\metadata\com\kingdee\eas\custom\bill 可改单据名称. 3. 标准:默认先在用户 ...
- 金蝶EAS开发认证考试
金蝶BOS考试 https://wenku.baidu.com/view/81c8a65465ce050877321391.html WAFII 帮助系统 http://waf2.kingdee.co ...
- 金蝶EAS开发认证考试2
1d 2B 3D 6C 7B 8C 9C 10B 11E 12D 14B 15D 16C 17D 18D 19A 20A 21A B 22AB 23ABC 24CDE 31对 32错 33 错 34 ...
- 解构金蝶 Apusic 中间件
接触 J2EE 也有些时间了.最近打算自己写一个 EJB 容器,琢磨了一下,打算就着技术书籍和 Apusic 的源码来搞个小研究. 先在这开个坑,毕竟每天在家,除了上班准点报道,下班又准点报道,周末连 ...
- 金蝶BOS开发中Edit编辑界面和List叙事薄界面需要写的代码
本人刚开始从事金蝶EAS开发,对于这个也是刚刚解除,下面是一些学习整理, EditUI中的代码 public class MyBillEditUI extends AbstractMyBillEdit ...
最新文章
- mpvue 转uniapp 导航栏样式错乱问题修复 tabbar 样式修复
- 独家 | 我们扒出了这家中国创业公司,竟比苹果iPhone X早两年推出黑科技,还不用借助深度摄像头
- 计算机网络---个人笔记整理
- 077_访问者的信息
- python从入门到精通pdf-跟老齐学Python从入门到精通完整版PDF_Python教程
- Bootstrap-按钮
- 「专题训练」k-Tree(CodeForces Round #247 Div.2 C)
- gigabyte计算机主板图解,技嘉主板BIOS如何设置及进入 技嘉主板BIOS设置图解教程(2)...
- python 网络监控系统手机版下载_云视通网络监控系统手机版下载_云视通下载手机版-太平洋下载中心...
- 如何裁剪动态图片?教你三步快速裁剪GIF
- 网络共享显示网络设备没有其他计算机,Win10如何寻找同一网络下的其他设备 网络发现功能无法使用怎么办...
- 【考研】计算机考研复试之智力题测试
- centos7图形化分区和ks文件分区的配置
- [USACO]完美的牛栏
- 字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)
- 浅析2D横版过关游戏关卡制作要点
- 基于openstack的云桌面开源框架
- 关于netty的IllegalReferenceCountException refCnt: 0, decrement: 1
- 2015年App Store审核被拒的23个理由
- 机器学习有哪些应用?可以用来做什么?