文档编号:
版 本 号:
密 级: 保 密
金蝶 EAS 和 BOS
开发培训教程
金蝶软件(中国)有限公司 成都分公司开发部
作者:杨剑
版本号
更新日期
编制人
审核人
修改的章节号及内容
1
2
3
2012-3-5
杨剑
杨剑
2017-3-10
杨剑
杨剑
2017-7-16
杨剑
杨剑
1 / 215
前言
为企业定制开发 ERP 业务是一项复杂的工程,需要把开发相关的产品、技术、平台进行综合贯彻
到企业的需求和应用中。
金蝶 EAS 和 BOS 是一整套面向企业 ERP 开发的优秀解决方案,它集 ERP 产品、ERP 业务平台、ERP
开发工具、运行环境于一体。这套方案在提供了高效率开发 ERP 业务的同时,也对开发者提出了更高
的要求:
熟练掌握 BOS 开发工具及其开发理念、开发方法
熟练掌握 EAS 所提供的 ERP 业务平台,例如:工作流、单据转换、报表、套打、编码平台、后台
事务等
熟悉 EAS 所提供的的 ERP 基础框架,例如:组织职位、用户及权限、职员、客商物料等等
其他:具有良好的业务理解能力、沟通能力等
所以,在很多分公司的 EAS 开发中,如果缺少一个经验丰富的 EAS 核心开发骨干带领,新人员的
成长将会非常困难,其入门门槛远远大于传统软件开发,很多顾问刚接触 BOS 开发时会淹没在各种平
台和技术文档的海洋中而无所适从。
本教程为准备学习 EAS 和 BOS 开发的零 EAS 开发基础的顾问提供一个从零开始学习路径,学习本
教程的人员应当具有基本的 Java 开发。
不教程不是开发知识库,不是大而全的开发书籍和代码库,而是从分公司项目开发实战出发,总
结大量项目开发案例,介绍核心开发要领和关键方法,其目的就是抛开海量的开发教程,删繁就简,
快速引导顾问具有基本开发技能并具有自我学习和进步的方法。
2 / 215
目
录
1.
2.
3.
2.6.
2.7.
2.4.
2.5.
EAS 和 BOS 开发概述 ................................................................................................................................ 12
1.1.
ERP 软件开发的特点.................................................................................................................12
1.1.1. 注重管理和业务................................................................................................................12
1.1.2. 注重用户感受 ....................................................................................................................12
1.1.3. 需求和结果容易出现偏差................................................................................................12
1.1.4. 持续建设 ............................................................................................................................12
1.2.
EAS 和 BOS 平台开发的优势....................................................................................................12
EAS 和 BOS 平台 ........................................................................................................................................ 14
2.1.
EAS 的架构 .................................................................................................................................14
EAS 和 BOS 的构成.................................................................................................................... 14
2.2.
EAS 和 BOS 安装 ........................................................................................................................ 14
2.3.
2.3.1. 安装包说明........................................................................................................................14
EAS 开发平台安装 .............................................................................................................15
2.3.2.
EAS 演示帐套 .............................................................................................................................15
EAS 服务器 .................................................................................................................................16
2.5.1. 重要特性 ............................................................................................................................16
2.5.2.
EAS 服务器的重要目录 .....................................................................................................16
EAS 管理控制台 .........................................................................................................................16
2.6.1. 开发需要关注的内容........................................................................................................17
EAS 客户端 .................................................................................................................................17
2.7.1. 重要特性 ............................................................................................................................17
2.7.2.
EAS 客户端的重要目录 .....................................................................................................17
2.7.3.
EAS 客户端框架 .................................................................................................................18
2.7.4. 客户端移植........................................................................................................................18
BOS 开发工具............................................................................................................................ 18
2.8.1.
BOS 开发透视图................................................................................................................ 19
2.8.2. 反编译设置........................................................................................................................20
BOS 解决方案............................................................................................................................ 20
2.9.1. 导入解决方案 ....................................................................................................................20
2.9.2. 解决方案目录 ....................................................................................................................21
2.9.3. 设置解决方案 ....................................................................................................................22
2.9.4. 测试账套设置 ....................................................................................................................22
2.9.5. 解决方案移植 ....................................................................................................................23
2.9.6. 备份解决方案 ....................................................................................................................23
BOS 和解决方案更新................................................................................................................ 24
2.10.1. 更新 BOS 工具 ................................................................................................................... 24
2.10.2. 更新解决方案 ....................................................................................................................24
BOS 开发总体介绍.................................................................................................................................... 25
模型驱动开发(MDA)............................................................................................................25
3.1.
2.10.
2.8.
2.9.
3 / 215
3.5.
3.6.
3.7.
4.1.
4.2.
4.3.
3.2.
3.3.
3.4.
模型要素及构成........................................................................................................................25
3.2.1. 模型的关键要素................................................................................................................25
3.2.2. 元数据................................................................................................................................25
BIM 和 BOS Studio 介绍 ............................................................................................................ 26
BOS 开发成果的发布、部署和运行........................................................................................26
3.4.1. 发布和部署........................................................................................................................26
3.4.2. 手工打包部署 ....................................................................................................................27
3.4.3. 开发代码在发布和部署中的传递 ....................................................................................27
3.4.4.
JVM 运行期加载开发成果 ................................................................................................28
客户化开发冲突........................................................................................................................28
3.5.1. 场景 .................................................................................................................................... 28
3.5.2. 元数据二开冲突解决........................................................................................................28
3.5.3. 代码的版本冲突处理........................................................................................................28
子系统树及生成........................................................................................................................29
EAS 和 BOS 二次开发规范 ........................................................................................................30
4. 元数据介绍及开发关注点........................................................................................................................31
什么是元数据 ............................................................................................................................31
实体(Entity) ...........................................................................................................................32
4.2.1. 基础信息 ............................................................................................................................33
4.2.2. 实体属性 ............................................................................................................................33
4.2.3. 实体方法 ............................................................................................................................35
4.2.4.
BOSTYPEID..........................................................................................................................35
查询(query)...........................................................................................................................36
4.3.1.
“定义”页签 .........................................................................................................................36
4.3.2. “字段”页签 ....................................................................................................................37
4.3.3. “其他”页签 ...................................................................................................................... 38
“SQL”页签........................................................................................................................ 38
4.3.4.
表(table) ................................................................................................................................39
界面(UI) ................................................................................................................................ 39
4.5.1. 常见的 UI 类型有: .......................................................................................................... 39
4.5.2. 重要视图及作用................................................................................................................40
4.5.3. 常见 UI 开发调整 .............................................................................................................. 40
4.6.
业务功能(facade) .................................................................................................................41
4.7.
功能(FUNCTION)...................................................................................................................41
4.8.
枚举(Enum)...........................................................................................................................42
4.9.
业务异常(exception)............................................................................................................43
4.10. 权限(permission).................................................................................................................. 43
4.11. 日志(log)............................................................................................................................... 43
4.12. 两个重要的配置文件................................................................................................................44
4.13. 常见 BOS Studio 开发 ................................................................................................................44
BIM 建模和模型调整 ................................................................................................................................ 45
5.1.
建模前的准备 ............................................................................................................................45
EAS 模型的业务类别和业务属性 .............................................................................................45
5.2.
4.4.
4.5.
5.
4 / 215
5.8.
5.9.
5.7.
5.3.
5.4.
5.5.
5.6.
5.2.1. 业务类别 ............................................................................................................................45
5.2.2. 业务属性 ............................................................................................................................45
建立包........................................................................................................................................ 45
建立模型(业务单元) ............................................................................................................46
模型属性设置 ............................................................................................................................48
为模型增加属性(字段)........................................................................................................49
5.6.1. 数据来源 ............................................................................................................................49
5.6.2. 字段的属性........................................................................................................................50
界面布局和调整........................................................................................................................51
5.7.1. 控件位置排布工具 ............................................................................................................51
5.7.2. 字段运行时的录入和显示顺序........................................................................................52
5.7.3.
KD_Layout 布局 ..................................................................................................................52
5.7.4. 字段锚定 ............................................................................................................................52
为模型增加功能和菜单按钮 ....................................................................................................53
5.8.1. 增加功能 ............................................................................................................................53
5.8.2. 增加菜单和工具栏 ............................................................................................................54
5.8.3. 功能的事务属性设置........................................................................................................55
5.8.4. 功能的参数设置................................................................................................................55
5.8.5. 功能的异常设置................................................................................................................57
为模型添加权限项 ....................................................................................................................57
5.9.1. 在 BIM 中添加权限项 ....................................................................................................... 57
5.9.2. 增加无功能权限项 ............................................................................................................58
5.9.3. 权限项在 EAS 客户端使用和授权 ....................................................................................60
5.9.4. 权限项编码规范化 ............................................................................................................61
5.9.5. 权限文件规范化................................................................................................................62
5.9.6. 建立权限文件的时机建议................................................................................................62
5.10. 为模型添加日志项 ....................................................................................................................62
5.10.1. 在 BIM 中添加日志项 ....................................................................................................... 62
5.10.2. 日志项使用方法................................................................................................................63
5.10.3. 日志项编码规范化 ............................................................................................................63
5.10.4. 日志文件规范化................................................................................................................63
5.10.5. 建立日志文件的时机建议................................................................................................63
BOS Studio 对模型的常见调整 .................................................................................................63
BOS Studio 发布元数据.....................................................................................................64
5.12. 模型挂接到系统主菜单 ............................................................................................................64
5.13. 模型发布和测试........................................................................................................................65
5.13.1. 同步数据库........................................................................................................................65
5.13.2. 发布错误分析处理 ............................................................................................................66
5.14. 自动生成代码 ............................................................................................................................66
5.15. 测试运行 .................................................................................................................................... 66
5.16. 部署开发成果 ............................................................................................................................67
5.17. 单据模型中通常需要增加的字段 ............................................................................................68
5.17.1. 【单据体】单据状态........................................................................................................68
5.11.
5.11.1.
5 / 215
6.
7.
5.19.
5.20.
5.17.2. 【分录】分录状态 ............................................................................................................68
5.17.3. 【单据体】审核时间........................................................................................................68
5.17.4. 【单据体】来源单据编号................................................................................................68
5.17.5. 【分录】来源分录 ID,来源分录序号........................................................................... 68
5.17.6. 【分录】来源单据 ID,来源单据编号........................................................................... 69
5.18. 单据模型通常需要增加的功能................................................................................................69
5.18.1. 审核和反审核 ....................................................................................................................69
BOS 开发的过程总结................................................................................................................ 69
BOS 建模开发技巧.................................................................................................................... 70
5.20.1. 模型共享 ............................................................................................................................70
5.20.2. 产品早期基础数据引用 ....................................................................................................72
5.21. 元数据校验................................................................................................................................73
BOS 代码体系............................................................................................................................................ 74
抽象类和实现类........................................................................................................................74
6.1.
客户端和服务端代码分工........................................................................................................75
6.2.
6.3.
值对象和值集合........................................................................................................................75
6.3.1. 值对象(Info) ..................................................................................................................75
6.3.2. 值对象的两类 get/set 方法及应用.................................................................................. 75
6.3.3. 关于 getLogInfo 方法 .........................................................................................................76
6.3.4. 值集合(Collection)........................................................................................................76
6.3.5. 值对象和值集合示例........................................................................................................76
6.4.
接口和工厂................................................................................................................................77
6.5.
EditUI,ListUI,ControllerBean................................................................................................ 77
BOS 核心代码开发.................................................................................................................................... 78
开发必备基础 ............................................................................................................................78
7.1.
7.1.1.
ID 和 BosObjectType.......................................................................................................... 78
7.1.2. 上下文................................................................................................................................80
7.1.3. 客户端和服务端代码分工................................................................................................81
7.1.4. 消息提示 ............................................................................................................................82
controllerbean.java.................................................................................................................... 83
7.2.1. 两种方法 ............................................................................................................................83
7.2.2. 要开发的框架方法 ............................................................................................................84
7.2.3. 常见开发内容 ....................................................................................................................84
7.2.4. 数据更新 ............................................................................................................................85
7.2.5. 代码示例:_save 和_submit ............................................................................................ 86
7.2.6. 代码示例:_delete............................................................................................................88
7.2.7. 代码示例:_audit............................................................................................................. 88
7.2.8. 代码示例:_unAudit.........................................................................................................90
EditUI.java...................................................................................................................................92
7.3.1. 层次结构 ............................................................................................................................92
7.3.2. 关于 editData.....................................................................................................................92
7.3.3. 重要方法说明 ....................................................................................................................94
7.3.4. 获取界面控件 ....................................................................................................................94
7.2.
7.3.
6 / 215
8.2.
7.4.
7.3.5. 控件定制 ............................................................................................................................96
}else{................................................................................................................................................................ 97
// 计算总人天=汇总表格所有行的人天数据,判断当前编辑的列=人天列..........................................99
7.3.6. 控件监听/自动处理 ........................................................................................................ 100
7.3.7. 新增默认值......................................................................................................................101
7.3.8.
Action 开发 ...................................................................................................................... 102
LISTUI.java................................................................................................................................ 104
7.4.1.
ListUI 的层次结构 ............................................................................................................104
7.4.2. 关于 mainQueryPK 和 mainQuery .................................................................................. 104
7.4.3. 重要方法 ..........................................................................................................................105
7.4.4. 获取单据 ID..................................................................................................................... 105
7.4.5.
Action 开发 ...................................................................................................................... 108
EAS 平台开发 ...........................................................................................................................................110
数据库操作..............................................................................................................................110
8.1.
8.1.1. 数据库查询结果集 ..........................................................................................................110
8.1.2. 关于 KSQL.........................................................................................................................110
8.1.3. 客户端数据库操作 ..........................................................................................................110
8.1.4. 服务端数据库操作 ..........................................................................................................111
8.1.5. 客户端查询分析器 ..........................................................................................................111
异常处理 ..................................................................................................................................113
BOSException................................................................................................................... 113
8.2.1.
8.2.2.
EASBIZEXCEPTION ............................................................................................................ 113
8.2.3. 重要!异常捕获处理......................................................................................................114
视图和 OQL..............................................................................................................................115
8.3.1.
OQL...................................................................................................................................115
8.3.2. 视图 ..................................................................................................................................116
选择项集合 SelectorItemCollection........................................................................................................116
F7 定制 ..................................................................................................................................... 117
8.4.1. 基本属性 ..........................................................................................................................117
8.4.2.
SelectUI .............................................................................................................................117
8.4.3. 视图 ..................................................................................................................................118
8.4.4. 监听 ..................................................................................................................................119
8.4.5. 常见 F7 定制方法 ............................................................................................................119
弹窗开发 ..................................................................................................................................121
8.5.1. 子窗体接收参数..............................................................................................................121
自定义 BOTP 函数...................................................................................................................122
8.6.1. 开发 FormulaFunction 类................................................................................................ 122
8.6.2. 在 Entity 上注册 FormulaFunction 类............................................................................ 123
多级基础资料 ..........................................................................................................................124
8.7.1. 多级基础资料模板 ..........................................................................................................124
8.7.2. 关键属性 ..........................................................................................................................124
套打数据源开发......................................................................................................................125
8.8.1. 默认单据套打方法 ..........................................................................................................125
8.3.
8.4.
8.
8.5.
8.6.
8.7.
8.8.
7 / 215
9.5.
9.5.1.
9.5.2.
9.5.3.
8.9.
9.4.1.
9.4.2.
9.4.3.
8.8.2. 员工花名册套打方法......................................................................................................125
8.8.3. 费用申请单套打方法......................................................................................................125
元数据开发..............................................................................................................................125
8.9.1. 元数据引擎......................................................................................................................126
8.9.2. 获取 Entity 及其 Bean..................................................................................................... 126
Method method = clsFactory.getMethod("getLocalInstance", Context.class);.........................126
8.9.3. 构造 Entity 对应的值对象.............................................................................................. 127
8.9.4. 检索 Entity 中的属性...................................................................................................... 127
8.10. 权限检查 ..................................................................................................................................128
8.11. 自动编码 ..................................................................................................................................129
8.12. 产品报表分析 ..........................................................................................................................129
EAS 产品改造开发 ...................................................................................................................................132
9.1.
元数据改造..............................................................................................................................132
EditUI/ListUI.java 扩展 .............................................................................................................132
9.2.
ControllerBean.java 扩展 .........................................................................................................133
9.3.
9.4.
DEP 脚本扩展 .......................................................................................................................... 133
pluginCtx.getUI() .............................................................................................................. 134
UI 脚本示例 ..................................................................................................................... 134
entity 脚本示例 ............................................................................................................... 134
DEP+BOS 的功能扩展..............................................................................................................134
UI 界面/实体方法扩展 ....................................................................................................134
UI 界面增加控件 ............................................................................................................. 135
UI 界面 Java 引用控件 .................................................................................................... 137
// 定义 EAS80 升级后增加的 DEP 控件对象 ............................................................................................138
10.
产品和错误分析..............................................................................................................................139
10.1. 产品分析 ..................................................................................................................................139
10.1.1. 客户端日志......................................................................................................................139
10.1.2. 主菜单..............................................................................................................................139
10.1.3. 线程挂起 ..........................................................................................................................140
10.1.4. 方法断点 ..........................................................................................................................141
10.1.5. 人为制造阻塞或异常......................................................................................................142
10.1.6. 类加载断点......................................................................................................................143
10.2. 错误分析 ..................................................................................................................................143
10.2.1. 错误堆栈 ..........................................................................................................................143
10.2.2. 异常断点使用 ..................................................................................................................144
10.3. 跟踪调试 ..................................................................................................................................146
10.3.1. 调试视图 ..........................................................................................................................146
10.3.2. 表达式视图......................................................................................................................147
10.3.3. 显示视图 ..........................................................................................................................147
10.3.4. 变量视图 ..........................................................................................................................148
EAS 接口开发 ...................................................................................................................................150
11.1. 数据流向 ..................................................................................................................................150
11.2. 物理连接 ..................................................................................................................................150
9.
11.
8 / 215