当前位置:文档之家› BOS V6.2开发指南_Web开发平台

BOS V6.2开发指南_Web开发平台

金蝶BOS开发指南

Web开发平台

目录

1.概述 (3)

1.1.简介 (3)

1.2.产品功能 (3)

1.3.产品特性 (3)

1.4.定义、首字母缩写词和缩略语 (3)

1.5.参考资料 (3)

2.开发过程 (4)

2.1.概述 (4)

2.2.环境准备 (4)

2.2.1. 开发工具 (4)

2.2.2. JDK约束 (4)

2.3.开发规约 (4)

2.4.序时簿开发 (5)

2.4.1. 序时簿界面开发过程 (5)

2.4.2. 通用过滤实现 (14)

2.4.3. 框架内置服务 (16)

2.5.编辑界面开发 (17)

2.5.1. 编辑界面开发过程 (17)

2.5.2. 权限服务 (26)

2.5.3. 编码规则服务 (27)

2.5.4. 工作流服务 (28)

2.6.单据转换 (30)

2.6.1. 概述 (30)

2.6.2. 定义单据转换规则 (30)

2.6.3. 单据关联生成 (30)

2.7.集成EAS门户 (31)

2.7.1. 编制jsp页面 (31)

2.7.2. 配置portlet模板信息 (31)

2.7.3. Portlet业务配置信息设置 (32)

2.7.4. Portlet基础定义设置 (32)

2.7.5. 页签配置 (32)

3.技术特性 (33)

3.1.编程模型 (33)

3.1.1. AOM (33)

3.1.2. 数据校验 (34)

3.1.3. 数据绑定 (34)

3.1.4. Ajax技术 (35)

3.1.5. 拦截器 (37)

3.1.6. 对象注入 (41)

3.1.7. Winlet (41)

3.1.8. 多语言处理 (46)

3.1.9. 多色彩方案 (47)

3.1.10. 应用上下文 (48)

3.1.11. 登录认证 (49)

3.1.12. 异常处理 (50)

3.2.部署模型 (51)

1.1. 简介

Web开发平台的核心职能类似GUI框架,是EAS Web产品开发的基础平台,跟GUI应用框架共用EAS Web服务端组件,协同BOS框架和业务模型(BIM)实现模型驱动架构(MDA)。它提供统一的业务开发模型,简化开发逻辑,形成一致的开发模式,最大限度实现代码的重用机制。

Web开发平台作为业务逻辑的核心支撑平台,主要负责以下控制:

●UI处理流程管理,如页面打开展现等;

●UI通用处理,如RPC交互、数据绑定、异常处理、通用查询等;

●业务服务调用,如权限控制、BOTP、工作流等。

Web开发平台与EAS BOS平台的关系:

●Web开发平台是金蝶BOS平台的一个组成部分;

●跟GUI共用一套元数据模型和设计工具;

●跟GUI共用一个应用服务器;

●基于更先进的技术特性,如动态注入、IoVC、约定优先于配置等。

1.2. 产品功能

Web开发平台提供了业务开发的基类体系和界面模板库,以及集成了单点登录认证、权限管理、套打、BOTP、工作流、编码规则、网络互斥、日志及色彩方案等基本服务。

1.3. 产品特性

●Web开发平台提供了设计开发工具,支持Web界面的布局,业务逻辑的编写,大大提

高了开发效率。

●Web开发平台提供了基础业务单据开发的基类体系和界面模板库,以及大量的基础组

件,让业务功能开发更加简单。

●Web开发平台本身集成了各种服务,让业务开发的功能很容易使用这些通用服务进行

协同工作,让业务功能集成和部署更加方便、轻松。

1.4. 定义、首字母缩写词和缩略语

●AOM:Apusic OperaMask,金蝶中间件公司的Web开发框架

●AAS:Apusic Application Server:金蝶中间件公司的J2EE应用服务器产品

●Ext JS:一套基于Java Script的浏览器端UI组件库

1.5. 参考资料

●张留欢,《Waf使用指南及规范.doc》2008-6

●陈乐辉,《Waf开发指南.doc》,2008-8

●李大伟,贺鹏辉《web开发帮助文档.doc》2008-10

●张留欢,《金蝶BOS Web开发平台.ppt》,2008-11

●EAS BOS V6.2Web设计器用户使用指南.doc

2.1. 概述

基于Web开发平台开发业务系统,也是一个模型驱动的开发过程,下面以协同办公的费用报销系统为案例作为基础,实现从费用申请开始,到费用报销结束的一个业务过程,来介绍如何基于Web开发平台来做业务系统开发。

2.2. 环境准备

2.2.1.开发工具

下载地址:https://www.doczj.com/doc/8814785685.html,/download/aom_download

Apusic:https://www.doczj.com/doc/8814785685.html,

Apusic Studio:https://www.doczj.com/doc/8814785685.html,

Operamasks:https://www.doczj.com/doc/8814785685.html,/dist/aom_eas/

Operamasks Demos:https://www.doczj.com/doc/8814785685.html,/dist/aom-demos/,其中rcdemos是AOM 比较全面的控件示例,开发过程中必不可少的宝典之一。

Web设计器:BOS Studio的一部分,请安装bos6.2及以后版本的Bos Studio即可.

Ext:https://www.doczj.com/doc/8814785685.html,/deploy/dev/docs/

AOM控件: https://www.doczj.com/doc/8814785685.html,/help/index.jsp

2.2.2.JDK约束

目前Waf必须基于jdk1.5及以上版本,所以开发时,必须先安装jdk1.5,,在apusic 工程使用编译时会报版本不一致的问题。因此不能w:\jdk,而应该使用W:\eas\Server\jdk,如果这个还是有问题,到Sun的网站下载一个jdk1.5。

注意:研发内网不能采用w:\jdk,这个是被精简处理过的

2.3. 开发规约

Web开发平台对于view页面和对应的Bean的映射,采用“约定优先于配置”的原则,因此在建立Apusic标准工程的时候需要指定默认命名空间。以协同业务系统为例子说明这样一个命名原则:

假定业务系统包名为com.kingdee.eas.cp.bc ,后台web目录为eas_web.war ,开发单据testBill。根据开发一个业务功能需要对应一个View页面和对应的后台Managed Bean,那么相应的命名规范:

●View页面规范

view页面取com.kingdee.eas之后的cp.bc报名生成目录

.\eas_web.war\cp\bc\testBill.xhtml

●对应的Managed Bean命名规范

对应com.kingdee.eas.cp.bc之后添加web作为bean存放包名:

testBill对应的包名为com.kingdee.eas.cp.bc.web;

ManagedBean对应的类名为:页面名称(首字母大写) + Bean;

例如testBill对应的ManagedBean全名为:

com.kingdee.eas.cp.bc.web.TestBillBean。

●Managed Bean别名规范

别名的定义规范为:页面路径(路径分隔符号用.表示) + ManagedBean类名

例如:testBill对应的别名为:cp.bc.TestBillBean

因此,最终开发testBill功能生成的文件为下面2个:

cp\bc\testBill.xhtml

@ManagedBean(name="cp.bc.TestBillBean")

com.kingdee.eas.cp.bc.web.TestBillBean

2.4. 序时簿开发

请先参考EAS BOS V6.2Web设计器用户使用指南,熟悉下web设计器使用。

根据案例,先开发一个演示用的单据序时簿,功能界面如下图:

2.4.1.序时簿界面开发过程

2.4.1.1. 创建序时簿

1.在“包分类”视图中,选择右键菜单,选择〖新建〗→〖Web用户界面〗,如下图:

2.弹出“新建Web界面向导”对话框:

3.输入名称和别名。

最后的子包名必须是web

UI的名称首字母必须大写

4.如下图按【浏览】按钮选择“父WebUI对象”。

5.选择“ListUI”或“BillListUI”

6.按【确定】后,选择【下一步】

7.选择“Query UI”,按【选择BO对象】选择一个Query

8.按【确定】后选择【下一步】,如下图选择需在列表中显示的字段

9.按【完成】即创建一个列表UI。

2.4.1.2. 添加查询条件输入区域

1.如图

2.将“高级查询”绑定到queryAction

3.设置“查询”按钮的action服务端事件,以便处理查询逻辑。

2.4.1.

3. 设置工具栏

1.如图:

2.将工具栏上的各个按钮与相应的Action绑定,其中queryAction实现了通用过滤

2.4.1.4. 发布代码处理业务逻辑

在“包分类”视图中,选择需要发布代码的Web UI元数据(可以多选),弹出右键菜单,选择〖发布〗进入代码发布向导。如下图

2.4.1.5. 后台逻辑(ManageBean)实现

序时簿界面后台一般从ListBean集成,列表界面的集成体系如下,

列表界面(List Winlet)ManagedBean从ListBean继承,请实现如下方法:

●getQueryPK()

●getEditBeanName()

●getEditUrl()

●getBizInterface()

1、getQueryPK()

要求返回查询当前列表数据结果的Query PK,例如:

@Override

protected IMetaDataPK getQueryPK() {

return new

MetaDataPK("com.kingdee.eas.mydemo.app.PurReqQuery");

}

2、getEditBeanName()

要求返回列表对象对应的编辑界面的ManagedBean的名称,例如:@Override

protected String getEditBeanName() {

return"mydemo.PurReqEditBean";

}

3、getEditUrl()

要求返回列表对象对应的编辑界面的Url,例如:

@Override

protected String getEditUrl() {

return"/mydemo/purReqEdit.jsf";

}

4、getBizInterface()

类似编辑界面的同样接口实现。该业务接口的获取可以通过注入方式实现,例如:

@IBOSBizCtrl

p rivate IPurReq service;

@Override

protected ICoreBase getBizInterface() {

return service;

}

页面模板及组件

模板

●templates/list-templates.xhtml

定义了列表界面的布局模板,业务单据的列表界面视图从此模板继承,并提供相应的模板内容实现。

如何使用模板,请参考purOrderDemo的相关demo。

组件

●WEB-INF/components/billList-toolbar.xhtml

封装了单据列表界面工具条部分的内容,提供了标准的操作按钮以及统一的Action绑定,相关业务使用此组件时只需设置组件的beanName属性即可。

用法如下:

renderKitId="AJAX">

●WEB-INF/components/baseList-toolbar.xhtml

封装了基础资料列表界面工具条部分的内容,提供了标准的操作按钮以及统一的Action 绑定,相关业务使用此组件时只需设置组件的beanName属性即可。

用法如下:

renderKitId="AJAX">

beanName="#{com.kingdee.demo.CurrencyListBean}">

●WEB-INF/components/inner-window.xhtml

封装了列表界面跟其他页面进行Ajax交互的载体,支持UIWindow的弹出框(适用于通用过滤等),也支持其他通过javascript脚本弹出的对话框或新窗口(例如编辑界面或BOTP转换界面等)。

组件内容大概如下:

modal="true" maximizable="true" minimizable="true">

binding="#{beanName.updater}">

用法如下:

renderKitId="AJAX">

2.4.2.通用过滤实现

默认过滤

通过用户传递的query信息,构造动态的查询选择面板,用户可以根据所选字段来进行数据过滤,同时支持对于用户自定义方案的保存,该方案在基础框架中已经集成,用户不需要做什么扩展。

自定义过滤面板

可以在通用过滤界面添加用户的自定义面板扩展。

定义自定义页面和对应的webbean,规则与单据的规范一致,命名规范可以参考2.3章节。

用户定义webbean需要继承UserQueryBean这个类,也可以自行实现IUserQuery这个接口,UserQueryBean是IUserQuery的一个基本实现。

Init方法:这个是自定义页面初始装载时调用。

getCustomerParams方法:获取自定义面板的过滤信息集合,通过该方法实现对于方案的持久。

setCustomerParams方法:设置自定义面板需要的数据绑定信息,通过该方法实现对于持久方案数据的获取。

verify()方法:通过返回的string信息,向用户界面传递较验信息。

getFilterInfo()方法:用来返回通用过滤需要最终获得的过滤信息。

用户自定义页面应用需要开发相应界面。

和应用序时薄单据的集成:

重写基类方法,返回需要的页面即可

protected String getUserQueryView() {

return "/mydemo/purCommQuery.xhtml";

}

●和其他web应用的集成使用

通用过滤界面也可以和其他web应用集成,但是首先需要在一个sso应用场景类。如:

Portal流程中心的通用过滤和waf提供的过滤方案结合。通过Portal流程中心传递相关的参数发送对于通用过滤的url请求,打开新的页面,在通用过滤页面返回对应的filter组成的字符信息即可实现。

实现方式:添加waf应用的commonQuery.js到集成页面,调用demo如:

https://www.doczj.com/doc/8814785685.html,monQueryDialog('./winlet/CommonQueryDialog.jsf',{

//调用页面来源信息,可以为空

'PARENT_PAGE_NAME':'',

//query信息

'QUERY_NAME':'com.kingdee.eas.mydemo.app.PurReqQuery',

//自定义面板对应的url信息,如果没有可以为空

'USER_QUERY_VIEW':'/waf/mydemo/purCommQuery.xhtml'

});

通过该脚本打开窗口,关闭页面后通过window.returnV alue获取返回信息即可。

2.4.

3.框架内置服务

●单据套打

Web框架已经提供默认实现,用户只需要定义套打模板即可,通过导出PDF方式实现。

●网络互斥

目前框架已经实现了数据互斥,避免避免同时修改同一张单据。

●日志

框架默认已经提供,业务开发无需编码

色彩方案

目前支持蓝、绿、红、橙四种色彩方案,默认蓝色;

支持扩展(增加相应的色彩方案目录结构)

2.5. 编辑界面开发

序时簿开发完成后,需要进行相关单据的开发来录入数据。下面是根据案例准备实现的单据界面:

2.5.1.编辑界面开发过程

2.5.1.1. 创建单据编辑界面

1.如下图按【浏览】按钮选择“父WebUI对象”。

2.选择“EditUI”或“BillEditUI”

3.按【确定】后,选择【下一步】

4.选择“Entity UI”,按【选择BO对象】选择一个Entity

5.按【确定】后,选择【下一步】。如下图选择需在编辑界面中录入并绑定的字段。

6.选择【完成】即可创建一个编辑界面。

相关主题
文本预览
相关文档 最新文档