卷页.png
①绝密信息严禁泄露
P1
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
版权所有©1993-2012金蝶软件(中国)有限公司
①绝密信息严禁泄露
20120325大品牌Logo.png
C:\Users\yibo_wang\Desktop\素材\閲戣澏PPT姣嶇増瑙嗚鍏冪礌\灏忔柟鐮栦晶瑙嗗浘\PPT C-orange.png
K:\201203盛世确认可用输出\PPT\素材\玻璃砖素材\PPT C Lego.png
K:\201203盛世确认可用输出\PPT\素材\金蝶PPT母版视觉元素\五彩云\五彩雲.png
BOS WEB平台系统部
    范来华        2016.5
EAS820 Web开发培训                                ---高级
卷页.png
①绝密信息严禁泄露
P2
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
培训目标
WEB平台框架层次结构
WEB平台EventBus原理
WEB平台模板机制
常用开发场景样例演示开发
提纲
目录
卷页.png
①绝密信息严禁泄露
P3
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
培训目标六大增长动力:财务共享推广策略
出现问题可以定位出问题点
能定位问题
熟悉WEB台框架
理解WEB平台框架层次结构
可自主实现样例业务逻辑
能自主实现样
卷页.png
①绝密信息严禁泄露
P4
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
前端页面架构(浏览器层)
WafForm
WafList
WafEdit
DynamicForm
DynamicList
DynamicEdit
DynamicDBList
动态架构模板
DynamicDBEdit
。。。
卷页.png
①绝密信息严禁泄露
P5
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架页面请求基础流程
url
url
Js事件
PageOnLoad
Js事件
PageOnLoad
后插
逻辑
拦截器
拦截器
Web端框架
License
用户监控
行为采集
性能监控
主业务组织处理
WebonLoad
WebonLoad
功能权限
前插入逻辑
后插入逻辑
App端处理逻
App端处理逻
日志
数据权限
Client/Browse
Web Server
App
JSP页面
HTML页面
加载
HTML页面
卷页.png
①绝密信息严禁泄露
P6
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架- Ajax请求基础流程
action
action
Js事件处理
Js事件处理
前插入逻辑
覆盖逻辑
后插入逻辑
拦截器
拦截器
Web端框架
License
用户监控
行为采集
性能监控
主业务组织处理
Web端处理逻辑
Web端处理逻辑
功能权限
前插入逻辑
覆盖逻辑
后插入逻辑
App端处理逻
App端处理逻
日志
数据权限
Client/Browse
Web Server
App
卷页.png
①绝密信息严禁泄露
P7
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
initalizeAction
页面加载(pageOnLoadEvent)
WafForm初始化过程
页面
渲染
URL
请求
initalizeEvent
注册事件
页面
装载完
心跳
注册
初始化
数据
卷页.png
①绝密信息严禁泄露
P8
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
页面打开事件:pageOnLoadEvent
页面渲染事件:pageOnRenderEvent
界面完全装载事件:pageLoadCompletedEvent
页面初始化数据事件:initDataEvent
心跳线程:heartbeatRequestEvent
页面关闭渲染事件:pageOnCloseEvent
退出: closeActionEvent
退出(兼容历史): exitActionEvent
WafForm事件
卷页.png
①绝密信息严禁泄露
P9
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
界面标识:_uipk
界面元数据:_pageOriginMetadata
页面初始化参数:_pageInitData
国际化资源:_localeStr
界面标题:_pageTitle
心跳参数:_heartbeatParams
WafForm对象
卷页.png
①绝密信息严禁泄露
P10
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
信息提示相关
showMessage:错误、警告、提示
组件控制相关
可见、可编辑
事件相关
注册、反注册、触发事件
窗口控制相关
新增窗口、更新窗口、关闭窗口、修改标题
其他
提交用户行为分析、保存静态化文件,其他公共的方法、兼容历史版本的一些方法
WafForm功能
卷页.png
①绝密信息严禁泄露
P11
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
继承WafForm
该模板没有增加具体的实现
DynamicForm
卷页.png
①绝密信息严禁泄露
P12
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
initalizeAction
页面加载(pageOnLoadEvent)
WafList初始化过程
页面
渲染
URL
请求
initalizeEvent
注册事件
页面
装载完
心跳
注册
初始化
数据
页面
渲染
前处理
页面
加载
后处理
卷页.png
①绝密信息严禁泄露
P13
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
页面打开事件(后处理)pageOnLoadEvent
页面渲染事件(前处理)pageOnRenderEvent
新增事件:addNewActionEvent
编辑前校验事件:editBeforeActionEvent
编辑事件:editActionEvent
查看前校验事件:viewBeforeActionEvent
查看事件: viewActionEvent
删除前校验事件: deleteBeforeActionEvent
删除事件: deleteActionEvent
刷新事件:refreshActionEvent
复制并保存前校验事件:copyBeforeActionEvent
复制并保存事件:copyActionEvent
页面关闭事件:pageOnCloseEvent
注册表格配制事件:gridConfigActionEvent
WafList事件
卷页.png
①绝密信息严禁泄露
P14
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
编辑页面地址:editUrl
查看页面地址:viewUrl
WafList对象
卷页.png
①绝密信息严禁泄露
P15
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
WafList功能
获得当前页面中的表格组件
getGrid如果id不同可以覆盖此方法
表格相关
getQueryPK获得当前页面表格中查询使用的queryPK
getQueryUuid获得当前页面表格中虚模式查询使用的uuid
getBillTotal获得当前页面表格中虚模式查询结果全部记录数
表格操作相关
editAction用于表格中操作列上的编辑链接动作
viewAction用于表格中操作列上的查看链接动作
行选择校验数据
_rowSelectedValidate
卷页.png
①绝密信息严禁泄露
P16
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
initalizeAction
页面加载(pageOnLoadEvent)
DynamicList初始化过程
页面
渲染
URL
请求
initalizeEvent
注册事件
页面
装载完
心跳
注册
初始化
数据
页面
渲染
前处理
页面
加载
后处理
页面加载后处理
queryOnInitEvent
卷页.png
①绝密信息严禁泄露
P17
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
BOTP过滤条件:botpFilter
BOTP页面标识:botpTrace
DynamicList对象
卷页.png
①绝密信息严禁泄露
P18
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicList功能
获得当前页面中的通用查询组件
getBizCommonQuery如果id不同可以覆盖此方法
组织相关
getCurrentModelOrgType :获得当前数据对应的组织类型
getCurrentModelOrgProperty :获得当前数据对应的公司属性
getIsMultiOrg :获得是否为多组织页面
setIsMultiOrg :设置是否为多组织页面
getIsShare :获得当前页面的是否非共享模块
addEASMutilOrgParam :增加EAS全局参数参数,由模板进行具体实现
getGridOrg :获得当前页面表格中查询使用的公司
getGridSelectedOrg :获得当前页面表格中选择的记录的公司
卷页.png
①绝密信息严禁泄露
P19
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
主业务组织变化事件:afterMainOrgChangedEvent
页面初始化事件(后处理)initDataEvent
页面渲染事件(前处理)pageOnRenderEvent
编辑事件:editActionEvent
查看事件: viewActionEvent
删除事件: deleteActionEvent
复制并保存事件: copyActionEvent
查询组件初始化事件: queryOnInitEvent
打印事件: reportActionEvent
选择打印模板事件: selReportTempActionEvent
BOTP页面打开事件(后处理 pageOnLoadEvent
单据生成: createToAssBillActionEvent
单据上拉: pullToAssBillActionEvent
单据上查: traceUpActionEvent
DynamicList事件
卷页.png
①绝密信息严禁泄露
P20
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
单据下查:traceDownActionEvent
联查单据:navBillActionEvent
数据引入:importDataActionEvent
数据引出:exportDataActionEvent
查看流程图: viewProcessDiagramActionEvent
审批结果查看: viewOpinionActionEvent
执行多级审批事件: multiApproveActionEvent
查看流程活动: viewActivityListActionEvent
指定下一步参与人: specifyNextPersonActionEvent
生成凭证: actionVoucherActionEvent
删除凭证: deleteVoucherActionEvent
生成PCA凭证: actionPCAVoucherActionEvent
删除PCA凭证: deletePCAVoucherActionEvent
DynamicList事件
卷页.png
①绝密信息严禁泄露
P21
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
WafEdit初始化过程
initalizeAction
页面加载(pageOnLoadEvent)
页面
渲染
URL
请求
initalizeEvent
注册事件
页面
装载完
心跳
注册
初始化
数据
页面加载前处理获取表格配置
页面加载后处理
fieldOnLoadEvent
setOldModelEvent
初始化
数据后处理
卷页.png
①绝密信息严禁泄露
P22
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
WafEdit保存/提交
Action
保存/提交
saveActionEvent
saveBeforeEvent
fieldOnStoreEvent
doPost
Error.jsp
initialize
_pageInitByModelLoad
卷页.png
①绝密信息严禁泄露
P23
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
WafEdit退出
Action
退出
pageOnCloseEvent
judgeDataModifyActionEvent
doPost
卷页.png
①绝密信息严禁泄露
P24
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
WafEdit事件
数据保存前校验事件:saveBeforeActionEvent
数据保存事件:saveActionEvent
数据提交前校验事件:submitBeforeActionEvent
数据提交事件 :submitActionEvent
信息块新增一行事件 :appendRowActionEvent
信息块删除一行前校验事件:deleteRowBeforeActionEvent
信息块删除一行事件: deleteRowActionEvent
表格新增一行事件: appendEntryRowActionEvent
表格删除一行前校验事件:deleteEntryRowBeforeActionEvent
表格删除一行事件:deleteEntryRowActionEvent
卷页.png
①绝密信息严禁泄露
P25
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
WafEdit事件
新增事件: addNewActionEvent
删除事件: deleteActionEvent
复制事件:copyActionEvent
查看页面的编辑事件:editActionEvent
保存并新增事件:saveAndAddNewActionEvent
提交并新增事件:submitAndAddNewActionEvent
上一条事件:previousActionEvent
下一条事件:nextActionEvent
第一条事件:firstActionEvent
最后一条事件:lastActionEvent
设置原始数据事件:setOldModelEvent
判断数据改变事件:judgeDataModifyActionEvent
卷页.png
①绝密信息严禁泄露
P26
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
当前界面状态: operateState
编辑界面标志,仅为查看与编辑不是同一个界面时使用 : _editUrl
编辑界面数据模型: _model
编辑界面历史数据模型,仅为数据变化事件使用: _oldModel
是否需要判断数据变化: _judgeDataModify
数据模型变化后仅仅重新加载数据,不刷新界面: _onlyModelLoad
WafEdit对象
卷页.png
①绝密信息严禁泄露
P27
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
页面相关
获得分录属性名称、使用的信息块控件id 、使用的编辑表格控件id
组件绑定相关
根据字段设置控件值、可见性、可编辑
虚模式相关
获得当前数据模型对应的queryPKUUId、全部记录数、获得查询序号
WafEdit功能
卷页.png
①绝密信息严禁泄露
P28
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
继承WafEdit
该模板增加多组织、各种业务组件的缺省action
DynamicEdit
卷页.png
①绝密信息严禁泄露
P29
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicEdit初始化过程
initalizeAction
页面加载(pageOnLoadEvent)
页面
渲染
URL
请求
initalizeEvent
注册事件
页面
装载完
心跳
注册
初始化
数据
页面加载前处理获取表格配置
页面加载后处理
fieldOnLoadEvent
setOldModelEvent
初始化
数据后处理
getMainOrgF7Event
afterMainOrgChangedEvent
卷页.png
①绝密信息严禁泄露
P30
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicEdit事件
注册主业务组织事件:getMainOrgF7Event
主业务组织变化事件:afterMainOrgChangedEvent
页面打开后处理附件:pageOnLoadEventAfter
数据提交事件 :submitActionEventoverride
打印事件 :reportActionEvent
单据生成:createToAssBillActionEvent
单据上拉: pullToAssBillActionEvent
单据上查: traceUpActionEvent
单据下查:traceDownActionEvent
联查单据:navBillActionEvent
卷页.png
①绝密信息严禁泄露
P31
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicEdit事件
数据引入: importDataActionEvent
数据引出:exportDataActionEvent
查看流程图:viewProcessDiagramActionEvent
查看审核意见:viewOpinionActionEvent
执行多级审批事件:multiApproveActionEvent
查看流程活动:viewActivityListActionEvent
指定下一步参与人:specifyNextPersonActionEvent
生成凭证:actionVoucherActionEvent
删除凭证:deleteVoucherActionEvent
利润中心生成凭证:actionPCAVoucherActionEvent
删除利润中心凭证:deletePCAVoucherActionEvent
卷页.png
①绝密信息严禁泄露
P32
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
主业务组织控件: _mainOrgUn
获得当前数据对应的主业务组织类型:getCurrentModelOrgType
获得当前数据对应的主业务组织属性名:getCurrentModelOrgProperty
获得当前数据模型对应的主业务组织:getCurrentModelOrg
增加EAS全局参数参数:addEASMutilOrgParam
获得是否为多组织页面:getIsMultiOrg
设置是否为多组织页面:setIsMultiOrg
获得当前页面的是否非共享模块:getIsShare
DynamicEdit对象及功能
卷页.png
①绝密信息严禁泄露
P33
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
分层:核心层、模板层
核心层:WafFormWafListWafEdit
模板层:DynamicFormDynamicEditDynamicListDynamicDBListDynamicDBEdit
JSP:只保留一个通用的wafForm.jsp,为全部视图使用
Controller:只保留一个WafFormController,为全部Controller使用
UIC:每个核心超类和模板都分别对应一个UIC
分层结构
卷页.png
①绝密信息严禁泄露
P34
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
核心层:提供基础对象、数据模型、公共事件、公共方法
WafForm:实现页面的基本生命周期的完整过程;提供关闭
WafList:针对列表形式,提供对于数据查询条件和数据展现的统一方法接口;提供公共功能:新增、删除、修改、查看、复制、刷新、关闭
WafEdit:针对编辑形式,提供数据模型和数据绑定;提供新增、查看、删除、复制、保存、提交、新增行、删除行、导航(上一条、下一条、第一条、最好一条)
模板层:提供界面布局、默认按钮、默认控件(组件)、模板特征的实现、
DynamicFrom:直接从WafForm继承,界面布局中增加工具条和关闭按钮
DynamicList:单据的列表界面。界面布局中增加工具条和标准按钮,增加通用查询和数据表格、提供多组织的支持、提供标准组件的接口
DynamicEdit:单据的编辑界面。界面布局中增加工具条和标准按钮,提供多组织的支持、提供编码规则的支持、提供标准组件的接口
DynamicDBList:基础数据列表界面。界面布局中增加工具条和标准按钮,增加通用查询和数据表格、提供标准组件的接口
DynamicDBEdit:基础数据编辑界面。界面布局中增加工具条和标准按钮,提供多组织的支持、提供编码规则的支持、提供标准组件的接口
分层实现内容
卷页.png
①绝密信息严禁泄露
P35
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态平台对照
名称
JSP
JS
Controller
UIC
空白超类
wafForm.jsp
wafForm.js
DynamicWebController
CorePage.uic
列表超类
wafForm.jsp
wafList.js
DynamicWebController
ListPage.uic
编辑超类
wafForm.jsp
wafEdit.js
DynamicWebController
EditPage.uic
空白模板
wafForm.jsp
DynamicForm.js
DynamicWebController
DynamicCorePage.uic
单据列表模板
wafForm.jsp
DynamicList.js
DynamicWebController
DynamicListPage.uic
单据编辑模板
wafForm.jsp
DynamicEdit.js
DynamicWebController
DynamicEditPage.uic
基础数据列表模板
wafForm.jsp
DynamicDBList.js
DynamicWebController
DynamicDBListPage.uic
基础数据编辑模板
wafForm.jsp
DynamicDBEdit.js
DynamicWebController
DynamicDBEditPage.uic
卷页.png
①绝密信息严禁泄露
P36
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicWebController
WebPageOnLoadEventHandler
功能权限
PermissionFunctionCheckEvent
Web Server层空白超类初始化过程
获取界面元数据定义
Initialize
请求
DynamicWebController
获得相关页面信息并输出
界面元数据、多语言、心跳、静态化、模块化
初始化
数据事件
WafDispatcherInterceptorr
界面重定向
获取Action
权限事件
卷页.png
①绝密信息严禁泄露
P37
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
页面加载事件
com.kingdee.bos.webframework.dynamic.event.view.WebPageOnLoadEvent
com.kingdee.bos.webframework.dynamic.handler.view.WebPageOnLoadEventHandler
初始化数据事件
功能权限校验事件
com.kingdee.bos.webframework.dynamic.event.view.PermissionCheckEvent
com.kingdee.bos.webframework.dynamic.handler.view.PermissionCheckEventHandler
获得全部Action权限事件
com.kingdee.bos.webframework.dynamic.event.view.PermissionFunctionCheckEvent
com.kingdee.bos.webframework.dynamic.handler.view.PermissionFunctionCheckEventHandler
心跳控制事件
com.kingdee.bos.webframework.dynamic.event.view.HeartbeatActionEvent
com.kingdee.bos.webframework.dynamic.handler.view.HeartbeatActionEventHandler
页面注销事件
com.kingdee.bos.eventbus.event.view.ViewClosingEvent
com.kingdee.bos.webframework.dynamic.handler.view.WebViewClosingEventHandler
Web Server层空白超类事件列表
卷页.png
①绝密信息严禁泄露
P38
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicWebController
WebEditOnLoadHandlerr
功能权限
PermissionFunctionCheckEvent
Web Server层编辑超类初始化过程
获取界面元数据定义
Initialize
请求
DynamicWebController
获得相关页面信息并输出
界面元数据、多语言、心跳、静态化、模块化
初始化
数据事件
WafDispatcherInterceptorr
界面重定向
获取Action
权限事件
操作状态事件
卷页.png
①绝密信息严禁泄露
P39
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
 操作状态控制事件
com.kingdee.bos.webframework.dynamic.event.view.OperationStateChangeEvent
com.kingdee.bos.webframework.dynamic.handler.view.WebOperationStateChangeEventHandler
新增数据事件
com.kingdee.bos.eventbus.event.model.ModelCreateEvent
com.kingdee.bos.eventbus.handler.model.AbstractModelCreateEventHandler
处理编码规则事件
com.kingdee.bos.webframework.dynamic.event.view.NumberRuleEvent
com.kingdee.bos.webframework.dynamic.handler.view.NumberRuleEventHandler
加载数据事件
com.kingdee.bos.eventbus.event.model.ModelLoadEvent
com.kingdee.bos.eventbus.handler.model.AbstractModelLoadEventHandler
保存事件
com.kingdee.bos.eventbus.event.action.SubmitActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebSaveSubmitActionEventHandler
提交事件
com.kingdee.bos.eventbus.event.action.SubmitActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebSaveSubmitActionEventHandler
新增行事件
com.kingdee.bos.eventbus.event.action.AppendRowActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebAppendRowActionEventHandler
删除行事件
com.kingdee.bos.eventbus.event.action.DeleteRowActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebDeleteRowActionEventHandler
Web Server层编辑超类事件列表
卷页.png
①绝密信息严禁泄露
P40
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
新增事件
com.kingdee.bos.eventbus.event.action.AddNewActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebAddNewActionEventHandler
复制事件
com.kingdee.bos.webframework.dynamic.event.view.CopyActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.CopyActionEventHandler
编辑事件
com.kingdee.bos.eventbus.event.action.EditActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebEditActionEventHandler
删除事件
com.kingdee.bos.eventbus.event.action.DeleteActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebListDeleteActionEventHandler
第一条事件
com.kingdee.bos.webframework.dynamic.event.view.FirstActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.FirstActionEventHandler
上一条事件
com.kingdee.bos.webframework.dynamic.event.view.PreviousActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.PreviousActionEventHandler
下一条事件
com.kingdee.bos.webframework.dynamic.event.view.NextActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.NextActionEventHandler
最后一条事件
com.kingdee.bos.webframework.dynamic.event.view.LastActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.LastActionEventHandler
Web Server层编辑超类事件列表
卷页.png
①绝密信息严禁泄露
P41
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
DynamicWebController
WebEditOnLoadHandlerr
功能权限
PermissionFunctionCheckEvent
Web Server层单据编辑模板初始化过程
获取界面元数据定义
Initialize
请求
DynamicWebController
获得相关页面信息并输出
界面元数据、多语言、心跳、静态化、模块化
初始化
数据事件
WafDispatcherInterceptorr
界面重定向
获取Action
权限事件
操作状态事件
初始化
数据
后事件
卷页.png
①绝密信息严禁泄露
P42
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
导入导出事件
com.kingdee.bos.eventbus.event.action.ImportExportDataActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebImportExportDataActionEventHandler
打印事件
com.kingdee.bos.eventbus.event.action.TemplatePrintActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebTemplatePrintActionEventHandler
BOTP生成事件
com.kingdee.bos.eventbus.event.action.BTPCreateActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebBTPCreateActionEventHandler
BOTP查询事件
com.kingdee.bos.eventbus.event.action.BTPTraceActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebTraceActionEventHandler
查看流程图
com.kingdee.bos.eventbus.event.action.ViewWorkflowDiagramActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebViewWorkflowDiagramActionEventHandler
查看审批意见
com.kingdee.bos.eventbus.event.action.ViewAuditResultActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebViewAuditResultActionEventHandler
执行多级审批
com.kingdee.bos.eventbus.event.action.ViewActivityListActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebViewActivityListActionEventHandler
查看业务活动列表
com.kingdee.bos.eventbus.event.action.MultiApproveActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebMultiApproveActionEventHandler
指定下一参与人
com.kingdee.bos.eventbus.event.action.SpecifyNextPersonActionEvent
com.kingdee.bos.webframework.dynamic.handler.action.WebSpecifyNextPersonActionEventHandler
Web Server层单据编辑模板事件列表
卷页.png
①绝密信息严禁泄露
P43
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架---模块化说明
每个JS都是一个模块,模块可以对外暴露公开的方法和属性,模块与模块之间通过依赖来互相交互。
动态框架的每个页面按需加载JS资源,所以每个加载的JS都必须是一个模块。
框架中模块分两种,分别是通用模块和页面模块。
通用模块的依赖关系自己写在JS中,使用mod.defineModule来定义,通用JS需要自己编写,然后导入到定义工具中。
页面模块的依赖关系通过定义工具导入进来,使用mod.definePage来定义,定义工具会自动生成页面的相关JS结构。
前端页面加载时,会按照模块的依赖关系以此加载JS
模块化说明
卷页.png
①绝密信息严禁泄露
P44
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架---通用模块定义
defineModule(moduleName,deps,callback)
moduleName: 为自webviews目录下的路径名称+文件名,不带文件的后缀,比如上例中的文件路径为/webviews/fi/arap/js/common_utils.js,实际模块名为fi/arap/js/common_util
Deps: 依赖的JS,必须是一个JS数组,框架提供的通用模块可以从帮助系统中查看.
Callback: 当依赖的模块都加载之后执行的回调函数,回调函数的默认参数是waf, 如果要使用arap_util中提供的方法,可以在代码中定义变量arap_util,然后使用mod.useSync来获取arap_util对外暴露的方法。
通用模块定义
卷页.png
①绝密信息严禁泄露
P45
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架---页面模块定义
 definePage(moduleName, callback)
moduleName: 为自webviews目录下的路径名称+文件名,不带文件的后缀,比如上例中的文件路径为/webviews/fi/arap/js/common_utils.js,实际模块名为fi/arap/js/common_util
Deps: 一般不用定义页面的依赖关系,页面的依赖关系在定义工具中导入
Callback: 当依赖的模块都加载之后执行的回调函数,回调函数的默认参数是waf.
页面依赖的JS模块
页面依赖的JS模块
页面的主JS永远位于最后
页面的主JS永远位于最后
definePage的定义由定义工具自动生成
每个页面都有一个主JS,并且这个JS必须位于导入资源列表的最后一项。
页面模块定义
卷页.png
①绝密信息严禁泄露
P46
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架---页面模块示例
definePage中一般不用定义依赖关系。
如果在定义工具上导入了5JS模块,A区工具会自动的生成模块对应的变量。
B区中定义了变量_public_private,在工具中定义的事件等都会在_public_private中生成方法,_public中的方法调用_private中的方法。
真正的业务代码都写在C区间
像其他模块一样,页面也会返回_public中注册的方法,供外部使用。
页面重新保存之后,除C区之外,其他区域的代码会被覆盖。
页面模块示例
卷页.png
①绝密信息严禁泄露
P47
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架---页面依赖关系说明
如果A扩展自B, B扩展自C,则在定义工具资源列表中的顺序是C->B->A
每个页面有一个主JS, 页面运行时通过这个主JS驱动其他依赖项的加载,主JS必须位于资源列表的最后一项。
页面之间的依赖没有层级关系,依赖的页面自动使用主页面JS的依赖项。
比如A扩展自B, B中有三个依赖项分别是B1,B2,B3.
A的依赖项就是B1B2B3, B.
如果A增加了依赖项A1,并且A1B1B2B3B没有关系,则A的依赖项顺序是:B1,B2,B3,B,A1.
如果A中增加了依赖项A1A1也依赖了A2,应该将A2也加入到资源列表中,此时A的依赖项就是:B1,B2,B3,B,A2,A1.
每个模块只会被加载一次,比如B1B页面加载过之后,A页面依赖B1的时候,会直接从缓存中获取。
页面之间不能存在循环依赖,也就是A依赖B,同时B依赖A.
页面依赖关系说明
卷页.png
①绝密信息严禁泄露
P48
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Web动态框架---模块化与打包关系)
压缩打包
做好业务模块之后,打补丁的时候会对业务的所有JS进行压缩
压缩之后的JS放置在bin目录下,和webviews下的目录一致,只是把webviews变成了bin
开发期(debug=true
由主JS驱动,会将依赖的JS依次加入进来。
加入进来的每个JS是单个的JS文件,方便调试。
运行期(debug=false
会从元数据中解析所用到的所有组件,导入的资源等,并依次解析他们的依赖关系。
会对这些依赖关系进行排序,并动态的对压缩后的JS进行连接
当某个JS发生变化的时候,会自动的重新进行连接
模块化与打包关系
卷页.png
①绝密信息严禁泄露
P49
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
浏览器端处理逻辑
通过waf.getContext()获得context
Contextmainorgunitmainorgtype参数,分别对应主业务组织和主业务组织类型
框架提供了getMainOrgF7afterMainOrgChangedEvent两个事件
getMainOrgF7事件,返回当前主业务组织的F7控件
afterMainOrgChangedEvent事件更新Contextmainorgunit
发起页面请求或Ajax请求时,从Context获得mainorgunitmainorgtype参数并增加到Http请求的头信息中
通过getMainOrgF7正常改变主业务组织,框架自动更新context中的相关信息
如页面过程中,特殊改变主业务组织,需要通过代码更新context中的相关信息
Web动态框架---(多组织处理)
多组织处理
卷页.png
①绝密信息严禁泄露
P50
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
  Web Server端处理逻辑
通过拦截器获得http请求中的mainorgunitmainorgtype
增加这两个参数的内容到context中,WafContext.getInstance().getContext()
列表界面形成MutiOrgPermParam参数
空白页面、编辑界面增加一组数据<orgtype, mainorgunit>
通过线程变量传递当前context的内容到App Server
RPC调用时根据线程变量统一转化调用接口
如果有主业务组织,调用XXXRemoteInstanceWithObjectContext接口
否则,正常调用XXXRemoteInstance接口
Web动态框架---(多组织处理)
多组织处理
卷页.png
①绝密信息严禁泄露
P51
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
EventBus提供给JSWeb Server的唯一扩展方式,务必使用。
JS端初始化主要扩展二个事件:
pageOnLoad:可增加后处理,完成页面元数据加载后的业务处理逻辑
fieldOnLoad:可增加后处理,完成与数据相关的业务处理逻辑
Ajax请求,调用waf.doPost完成,不能使用其他类库
页面内申请打开新页面,调用_self.addNewWindow,不要直接使用其他方式。
开发建议
开发建议
卷页.png
①绝密信息严禁泄露
P52
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
Thanks
terimakasih
感謝
谢谢
ありがとう
ขอบคุณ
版权所有©1993-2012金蝶软件(中国)有限公司
20120325大品牌Logo.png
①绝密信息严禁泄露
C:\Users\yibo_wang\Desktop\素材\閲戣澏PPT姣嶇増瑙嗚鍏冪礌\灏忔柟鐮栦晶瑙嗗浘\PPT C-orange.png
K:\201203盛世确认可用输出\PPT\素材\玻璃砖素材\PPT C Lego.png
卷页.png
①绝密信息严禁泄露
P53
0310金蝶品牌下属logo-00.png
PPT C Lego.png
PPT C-orange.png
特别声明
没有金蝶软件国际软件集团有限公司的特别许可,任何人不能以任何形式或为任何目的复制或传播本文档的任何部分。本文档中包含的信息如有更改,恕不另行通知。
由金蝶软件(中国)有限公司和其分销商所销售的某些软件产品包含有其它软件供应商版权所有的软件组件。
Microsoft®WINDOWS®NT®EXCEL®Word®PowerPoint®SQLServer®是微软公司的注册商标。
IBM®DB2®DB2通用数据库、OS/2®ParallelSysplex®MVS/ESAAIX®S/390®AS/400®OS/390®
OS/400®iSeriespSeriesxSerieszSeriesz/OSAFPIntelligentMinerWebSphere®Netfinity®
Tivoli®InformixInformix®动态ServerTM是国际商业机器公司在美国或其他公司的商标。
ORACLE®ORACLE公司的注册商标。
UNIX®UNIXINTERNATIONALCO.,LIMTED的注册商标、OSF/1®Motif®OpenGroup的注册商标。
Citrix®Citrix徽标、ICAProgramNeighborhood®MetaFrame®WinFrame®VideoFrame®MultiWin®以及此处引用的Citrix产品名是CitrixSystems公司的商标或注册商标。
HTMLHATEMOGLUTEKSTILGIYIMSANAYIVETICARETA.S.的注册商标,DHTMLXMLXHTMLW3C®WorldWideWeb协会、计算机科学实验室的商标或注册商标,PureXML是国际商业机器公司的注册商标。
JAVA®是甲骨文美国有限公司的注册商标。
JAVASCRIPT®是甲骨文美国有限公司的注册商标,由其技术开发和实施商Netscape许可使用。
Apusic®是深圳市金蝶中间件有限公司的注册商标。
本文档提到的金蝶®、金蝶KIS®K/3®、金蝶EAS®、友商网®和其它金蝶产品和服务以及它们各自的徽标是金蝶软件(中国)有限公司在中国和世界其它一些国家的商标或注册商标。本文档提到的所有其它产品和服务名称是它们各自公司的商标。