EAS-BOS编程模型
目 录
1. 简介 ........................................................................................................................ 4
1.1. 1.2. 1.3. 1.4.
目的 ..................................................................................................................................... 4 范围 ..................................................................................................................................... 4 适用对象 ............................................................................................................................. 4 参考资料 ............................................................................................................................. 4
2. EAS业务开发过程 ................................................................................................ 4
2.1. 2.2.
EAS应用架构简介 ............................................................................................................. 4 EAS开发流程 ..................................................................................................................... 5
2.2.1. 2.2.2. 2.2.3. 2.2.4.
2.3. 设计业务对象 ................................................................................................... 6 调整数据库结构 ............................................................................................... 7 设计查询对象 ................................................................................................... 7 设计界面 ........................................................................................................... 8 小结 ..................................................................................................................................... 8
3. 基本编程模型与操作过程 .................................................................................... 8
3.1. 3.2. 3.3.
样例需求简要描述 ............................................................................................................. 8 准备阶段 ............................................................................................................................. 9 实现一个单据编辑功能 ..................................................................................................... 9
3.3.1. 3.3.2.
3.4. 元数据建模 ....................................................................................................... 9 编写业务逻辑 ................................................................................................. 16 实现一个单据序时簿功能 ............................................................................................... 17 元数据建模 ..................................................................................................... 17 编写业务逻辑 ................................................................................................. 19 让程序运行起来 ............................................................................................................... 20 为单据加上打印功能 ....................................................................................................... 21 列表打印 ......................................................................................................... 21 单据打印 ......................................................................................................... 21 为业务操作加上日志功能 ............................................................................................... 23 为单据加上工作流 ........................................................................................................... 24
定义事件 ......................................................................................................... 25 定义业务功能 ................................................................................................. 26 定义流程 ......................................................................................................... 27 发布流程 ......................................................................................................... 27
3.4.1.
3.4.2.
3.5. 3.6.
3.6.1. 3.6.2.
3.7. 3.8.
3.8.1. 3.8.2. 3.8.3. 3.8.4.
4. 编程注意事项 ...................................................................................................... 28
4.1.
协议类 ............................................................................................................................... 28
4.1.1. 4.1.2. 4.1.3. 4.1.4. 不要在协议类中引用客户端或服务端特有的类 ......................................... 28 尽量使用Selector来限制查询数据量 .......................................................... 28 所有的金额、数量属性统一用BigDecimal类型 ........................................ 28 正确地构造BigDecimal................................................................................. 28
4.2. 服务端 ............................................................................................................................... 29
4.2.1. 4.2.2. 4.2.3. 4.2.4. 4.2.5. 4.2.6.
4.3. 不要用对象级的变量存储信息 ..................................................................... 29 在EJB组件中不要启动多线程 .................................................................... 29 获取当前登录信息 ......................................................................................... 29 数据库资源的正确释放 ................................................................................. 29 尽量使用参数化的SQL ................................................................................ 30 避免写只适用于特定数据库的SQL ............................................................ 30 客户端 ............................................................................................................................... 30
获取当前登录信息 ......................................................................................... 30 获取组件的远程接口 ..................................................................................... 30 侦听器的挂接和卸载 ..................................................................................... 30 菜单、工具栏、快捷键的禁用与启用 ......................................................... 31 后台线程更新UI ............................................................................................ 31
4.3.1.
4.3.2. 4.3.3. 4.3.4. 4.3.5.
5. 总结 ...................................................................................................................... 31
EAS-BOS编程模型
1. 简介 1.1. 目的
以一个简单的单据业务处理案例为例,描述EAS的开发流程和具体实现过程及细节,形成全面的编程模型供开发人员参考。
1.2. 范围
范围包括:开发实现过程, BOSStudio中的设计开发操作步骤、开发业务逻辑的细节和部分样例代码。
1.3. 适用对象
本文档适用于: ? 系统设计师 ? 开发工程师
1.4. 参考资料
略
2. EAS业务开发过程
2.1. EAS应用架构简介
EAS的客户端采用Swing作为界面展现方式,服务端采用J2EE应用服务器的无状态Session Bean组件模型,两者间的通讯由自定义的ORM RPC服务提供。相对于直接采用EJB远程接口的方法,ORM RPC可以跨越防火墙,客户端不依赖于J2EE平台;相对于Servlet响应HTTP请求的方法,ORM RPC有效率上的优势,可以在不同的通讯协议间切换。 以下是EAS应用架构的概要图:
UI通过远程接口向服务端发送请求,ORM RPC服务接受请求后转发给相应的EJB组件。在EJB组件中,我们可以通过ORMapping来访问数据库,对于特别复杂的业务,也可以直接编写符合KSQL规范的查询语句,由Kingdee JDBC Driver运行。KSQL针对不同的目标数据库对查询语句作必要的翻译。最终查询语句被送至各厂商提供的JDBC Driver执行并返回结果。
UI与服务端之间属于无状态连接,所以框架在服务端维护了一个会话信息(Context)的列表,在同一次会话的多次请求间建立了联系。登录等功能模块在这个会话信息中存储了当前财务组织、当前用户等业务数据,在实现业务逻辑时,可以直接从中获取相关数据。框架也将该信息缓存到客户端,只是在名字上有所不同(SysContext)。
上述步骤中网络通讯与数据库访问是耗时较大的过程,在编写业务逻辑时要尽量减少UI与应用服务器的交互,减少对数据库的访问,尤其注意不要在循环中执行这样的代码。
2.2. EAS开发流程