




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HR自助服务单据开发快速入门用友软件股份有限公司北京分公司客户开发部2011年3月目 录1、NC自助服务单据开发1.1 总体概述1.2. 开发环境搭建配置Java运行时环境配置JAVA HOM环境变量 下载并解开Dorado5开发包安装 Dorado 5 Eclipse开发环境搭建搭建项目工程1.3. 自助单据开发流程 建立数据模型导入数据字典单据模板初始化导出Java源代码建立视图层 ViewModel。生成JSP页面建立后台控制类 功能节点注册 注册功能按钮按钮处理事件的定义单据属性设置附录:轻量级参照实现方式:审批流配置注意点轻量级查询模板实现方式 按钮动作前后台交互示例: 增加按钮动作
2、处理1、NC自助服务单据开发1.1. 总体概述NC自助服务模块使用的是 BSTEK公司推出的Dorado 5展现中间件技术。通过将Dorado和NC-UAP平台的整合,可以在自助服务中引用NC-UAP平台中的单据模板 ,提高了在自助下开发单据的效率。Dorado技术详细介绍请见 BSTEK公司官网:12 开发环境搭建1.2.1. 配置Java运行时环境通过Sun官网获取JDK开发包,下载的开发包解压缩到本地非中文名称的目录中;也可以直接使用NCHOM中自带的JDK开发包,如本机中 NCHOM的JDK开发包 D:nchome56nchomeufjdk1.2.2. 配置JAVA_HOME环境变量对
3、于环境变量的配置就不用多说了,本机的配置如下:1.2.3. 下载并解开Dorado5开发包通过如下的地址获取 dorado5的开发包:iJ:I将下载的zip文件解压缩到本地非中文名称的目录中,如本机的E:dorado5.21.2.4. 安装 Dorado 5在确保系统已经配置过 JAVA_HOM的前提下,并双击运行dorado 5开发包中的setup.bat文件, 该文件进行dorado5开发包的文件初始化工作。(特别声明:绿色食品,setup.bat的所有操作都是针对开发包所在的目录作初始化工作,不会对该目录之外的内容进行修改。)首先会打开一个命令控制台,要你确认是否执行初始化的工作:按任意
4、键继续初始化工作:这时候系统会在桌面上自动的生成一个dordo5 studio的快捷启动图表,并在控制台中出现让你选择是否直接启动 dorado的集成开发环境,也就是 dorado5的studio。以下统称studio 。如果选择y并按回车键确认打开 studio,可以看到下图:1.2.5. Eclipse开发环境搭建Eclipse开发环境的搭建在此就不做介绍了,主要的环境有NC56 eclipse 开发环境、nc56插件。1.2.6. 搭建项目工程对于自助服务的开发,需要同时用到Eclipse和Dorado工程,对于项目工程需要将 Eclipse工程目录和Dorado工程目录整合到一块,以便
5、对在两个开发工具对同一工程进行开发。本例中使用的开发工程为NC-HR自助模块的源开发工程HR_WEB5.6_dev在 Eclipse 中导入 HR_WEB5.6_de程,如下:在Dorado集成开发平台中导入 HR_WEB5.6_de程如下:1.3. 自助单据开发流程在自助服务下开发的 JSP界面,可将NC-UAP平台下的单据整合到自助服务中,这是通过将单据模板信息解析成 Dorado 控件来实现的,由于是根据单据模板信息表中的数据进行解析的,对于用元 数据制作的单据模板, 在自助服务界面目前还没有做到很好的兼容, 解析过程中还没有增加对元数据 的解析,故目前自助服务只能够对用数据字典制作的单
6、据模板进行正确的解析,下面介绍在NC56中,如何用数据字典在自助服务下开发轻量级单据界面。1.3.1. 建立数据模型根据具体的业务在 PowerDesigner 中建立对应的业务模型,本例中介绍的为休假计划的业务。1.3.2. 导入数据字典具体的数据字典导入在【客户化】t【二次开发工具】t【系统管理工具】t【数据字典管理】 节点来实现导入。1.3.3. 单据模板初始化在完成数据字典导入之后,就可以在【客户化】t【二次开发工具】t【模板管理】t 【单据模板初始化】节点通过数据字典制作相应的单据模板,具体的与NC5.2 初始化单据模板一致。本例初始化完的单据模板卡片界面显示如下:1.3.4. 导出
7、 Java 源代码通过UAP集成开发平台导出 Java源代码。在通过数据源生成 V0代码之前,一定要保证在数据库中将数据模型对应的表结构建立,否则在选择数据库表处看不到单据对应的数据库表,具体的建表SQL脚本可以在建模时,通过PowerDesigner生成。选择完对应的数据库表,设置对应的VO言息以及对应到文件导出目录 (当前eclipse工程%/ src / public 包)后,点击“确定”按钮,即可完成对VO的导出。1.3.5. 建立视图层 ViewModel 。ViewModel 是一种用于封装界面逻辑和操作逻辑的对象。即视图中包含哪些数据、这些数据以什ViewModel 看作是么方式
8、展现、视图中包含哪些控件、这些控件会激发什么操作等等。我们可以把Dataset 和各种控件的容器。ViewModel 般不用于定义各种控件最终在显示的布局,控件布局应通过其它方式进行定义。在 通常情况下,我们利用JSP来完成对ViewModel中定义的控件进行布局。在Dorado集成开发平台中打开项目工程,在对应的目录下,右键鼠标,如下:选择新建Module ,进入 ViewModel新建向导。选择通用的视图模型对象(CommoViewModel)即可,点击“ 0K,输入视图模型对象名称,即 会在相应的目录下生成一个视图模型对象的XML配置文件,配置文件名称为输入对象名称.view.xml,如
9、本例在新建视图模型对象的时候输入的名称为LeavePlanOne,则生成的视图模型对象的名称为:1.3.6. 生成JSP页面对于自助JSP页面是通过ViewModel生成的,具体生成 JSP的操作如下图所示: 选择相应的路径以保存生成的JSP文件。再生成JSP页面之后,需要对生成的JSP页面先进行简单的布局配置,如果需要配置其他在ViewModel中定义的控件显示,在定义完控件后再做详细的页面布局。对于使用NC-UAP平台的单据模板时,对应管理型界面的JSP界面配置如下:v/html137.建立后台控制类新建视图模型后台控制类,由于本例中开发的是带审批流的自助界面,具体的后台控制类应继承。对于
10、后台控制类的基本配置如下:public class LeavePla nOne exte nds PFViewModel /*返回单据VO*/Overridepublic AggregatedValueObject toBillAggVO() throws Exceptio n / TODO Auto-ge nerated method stubHRAggVO aggVO = this.toAggVO();AggLeavepla nHVO vo = new AggLeavepla nHV O();vo.setPare ntVO(aggVO.getPare ntVO();vo.setChildr
11、e nV O(aggVO.getChildre nV O();return vo;/*返回对应的单据模板的编码*/Overridepublic Stri ng getBillType() / TODO Auto-ge nerated method stubpublic String getBusiType() / TODO Auto-ge nerated method stub return n ull;*用于设置表头对应的 VO对象*/Overridepublic Classv? exte nds SuperVO getHeadClass() / TODO Auto-ge nerated m
12、ethod stub/*用于设置表体对应的 VO对象*/Overrideprotected void in itBodyTabCodes() / TODO Auto-ge nerated method stub视图模型后台控制类定义完成后,需要将后台控制类与对应的视图模型进行关联,通过设置 ViewModel 的 clazz 属性来实现关联。1.3.8. 功能节点注册通过NC业务系统【功能注册】节点注册功能节点,在功能注册时,需要注意几点。 功能性质:一定要选择“轻量级Web节点”。对应文件名或控制名:为对应的 JSP 文件。对新增的自助节点分配权限, 分配时一定要将该节点分配给相应的自助角色
13、才行, 产品自带的自 助角色有四种,在本例中分配给“自助角色 - 员工“这个角色。提示:如果在权限分配时, 在相应的节点树位置看不到刚刚注册的功能节点, 需到【自定义菜单】 节点对节点树的结构进行调整。到这里自助模块开发单据界面的大致框架就搭建起来了,现在在开发环境下重启NC中间件,登录自助界面就可以看到刚刚在自助节点开发的轻量级Web节点了。重要提示:对于在第1.3.6步中生成的JSP文件保存在Eclipse工程项目中,此时登录自助模块, 打开刚刚注册的自助节点时,是无法加载到对应的 JSP页面的,需要将该JSP页面按照相应的目录结构拷贝到NCHOM的nchomehotwebshrss 目录
14、下,Web容器在加载JSP页面时,才能够将该 JSP页 面加载到容器中。单击“休假计划练习一”轻量级Web节点,即可进入对应的 JSP界面。1.3.9. 注册功能按钮轻量级单据界面,是没有对应的功能按钮的,如果需要在画面中添加功能按钮,必须在NC业务系统【功能注册】节点注册相应的功能按钮。注册完功能节点后,需要在后台控制类中重写父类的 initBillState(ButtonFactorybuttonFactory2) 方法,以控制每个界面状态按钮的显示情况。需要先定义自己的按钮工厂类,该类需继承 义按钮工厂类,如下:public class LeavePlanOneBtnFactory pr
15、ivate static ButtonFactory /* 附件 按钮编码 */自助服务底层按钮工厂类会自带常用的功能按钮,对于不在自带常用的功能按钮集合内的按钮,.对于本例中,“审批意见”为自定义按钮,需要自己定extends ButtonFactory instance ;public static final String APPROVE_NOTE = approvenote private LeavePlanOneBtnFactory() Command 类名,响应的 js 和 java 方法/ 格式:按钮内码,和注册中相同的中文名称,响应的 名,要显示的图标名称, tooltips
16、提示String buttons = APPROVE_NOTE, 审批意见 , null , onApproveNote , unapprove.gif 查看审批意见 ;/系统自带的按钮信息是以二位数组的形式存放,/在自定义按钮是按照数组的格式定义并添加到二位数组中即可 super . strButtonlnfos=(String)ArrayUtils.addAII ( super . strButtonlnfos, buttons);public staticButt onF actory get In sta nce() if ( instanee= null ) in sta nee=
17、new LeavePla nOn eBt nF actory();retur nin sta nee;ini tBillState()自定义按钮的工厂类定义后,就需要在ViewModel的后台控制类中重写父类的方法,以控制具体画面状态下按钮的显示情况以及激活情况。*初始化该单据的所有状态,并且要设置好按钮在该状态下的可见、可用状态*/Overrideprotected voidin itBillState(Butto nF actory butt onF actory2) /TODO Auto-ge nerated method stubBillState billstate =new Bil
18、lState(BillState/定义该状态显示的按钮组billstate.addVisibleBt ns(new Stri ng Butt onF actory.SEARCH,Butt onF actory.NEW,Butt onF actory.EDIT ,Butt onF actory.DELETE,Butt onF actory.SUBMIT ,Butt onF actory.CALLBACK ,Butt onF actory.APPROVE,Butt onF actory.UNAPPROVE,/定义单据初始化状态STATE_INIT);LeavePla nOn eBt nFactor
19、y.APPROVE_NOTE);/定义该状态激活的按钮组billstate.addE nableBt ns(new Strin g Butt onF actory.SEARCH,Butt onF actory.NEW,Butt onF actory.EDIT ,Butt onF actory.DELETE,Butt onF actory.SUBMIT ,Butt onF actory.CALLBACK ,Butt onF actory.APPROVE,Butt on Factory.UNAPPROVE,LeavePla nOn eBt nFactory.APPROVE_NOTE);/将增加的单
20、据状态添加this .addBillState(billstate);super .initBillState(LeavePlanOneBtnFactory. getInstanee();在后台控制类定义完单据的状态以及对应状态按钮组显示情况后,需要在视图层控制对象 ViewModel加载时,添加相应的 JS事件,以控制单据画面初始化时所属的状态。到此,重启中间件,重新登录自助界面,即可看到单据初始化状态显示的按钮组。提示:对于在后台控制类中增加了新的方法,或者引用了新定义的类时,才需要重启中间件,其他情况 无需重启中间件。对于在视图控制对象 ViewModel中添加JS脚本后,首先需要保证E
21、clipse工程中对应的XML文件与在Dorado工具对ViewModel的配置保持同步;其次,再重新登录自助界面,如果发现新增加的 JS脚本没有起作用,这时要将IE的缓存清除,以保证能够加载到最新的 JS脚本(在java Web开发中经常会这样去做)。1.3.10. 按钮处理事件的定义通过以上9步,即可完成在自助服务下单据的界面模型的开发,接下来重要的工作就是定义单据界面中按钮的处理事件。组件Comman的method属性用于指定调用服务器接受类的指定方法的方法名(默认为视图模型中的方法名,即视图 ViewModel的关联的后台控制类中的方法 )。对于按钮在前台页面响应事件,是通过定义JS来
22、实现的,具体响应的JS函数的名称在后台按钮工厂类中已经定义。/格式:按钮内码,和注册中相同的中文名称,响应的Comma nd类名,响应的js和java方法名,要显示的图标名称,tooltips 提示String butto ns = APPROVE_NOTE,审批意见 “,null , onApproveNote,“unapprove.gif,查看审批意见“;如自定义的按钮“审批意见”在前台页面响应的JS函数的方法应为functiononApproveNote().1.3.11. 单据属性设置对于带审批流的单据,需要在UAP平台中进行一些审批流相关属性的设置,这与NC5.2中的设置类似,具体的
23、设置步骤如下第一步:单据类型定义如上图,输入“类型代码”、“类型名称”、“节点编号”,完成后点击“保存”按钮保存定义 的单据类型信息。(其中:此处定义的“类型代码”最好和单据模板定义步骤定义的单据模板编码一 致,否则在后面会遇到意想不到的问题。)第二步:单据号设置 如上图,设置单据号的生成规则。第三步:单据动作定义 第四步:单据动作脚本设置如上图, 在此处对于单据的动作脚本进行编辑, 具体的脚本可以直接从其他定义的单据动作脚本 拷贝过来即可 (因为笔者没有找到在何处去自动生成系统默认的单据动作脚本, 只能通过此方法来实 现)。在编辑完动作脚本后,在NCHOM对应的模块目录下的 META-INF
24、varsource 会生成相应的动作脚本类。第五步:单据V0对照具体的V0对照关系设置如下图:附录:轻量级参照实现方式: 对于自助开发下的单据中字段的参照与业务系统中有所不同,具体设置字段为参照的步骤如下: 第一步: 在单据模板中,将参照的字段的数据类型设置为参照,参照类型设置具体的参照编码,如下图。第二步:配置具体的参照,参照的配置是通过 XML文件来配置的,参照主要有三种展现类型:GRIDTREE TREEGRID 具体的配置请见当前工程的 homerefbusinessRefLeaveltemGrid.xml文件,为休假类别参照的 XML配置文件。第三步: 设置具体的参照配置文件与参照类
25、型编码的映射关系,对于映射关系的设置,目前还没 有具体的配置界面,只能够通过在后台表 hrss_ref_map 表中去配置具体的映射关系,下图为休假类 别参照对照配置。审批流配置注意点 要想在自助模块顺利使用审批流,需要在工程中做如下配置: 第一步: 设置和审批有关的字段的对应关系, 通过集成 PFConfig 类来配置具体的字段对应关系。(见 .LeavePlanOneConfig )第二步:配置Hrss单据信息,通过实现接口来进行配置。(详见第三步: 配置 Hrss 单据注册类,用于将自定义的单据信息注册到 Hrss 单据集中。public class LeavePlanPfConfigE
26、xtImpl implements IHrssPfConfigExt public IConfigMeta getPfConfigExt() / TODO Auto-generated method stub return new IConfigMeta new LeavePlanConfigMeta(), new LeavePlanOneMeta();在定义完具体的后台注册实现类后,需要在UPM文件(hr_hrss.upm )中进行配置。第四步: 配置审批流后台处理类。 第五步: 定义审批流。“提交”动作按钮特别说明:1、如果在 ViewModel 的后台控制类中,重写 Aggregated
27、ValueObject toBillAggVO() 方法返回 的类型为HYBillVO,则需要在聚合 V0(AggLeaveplanHVO)定义相关的BillField 接口实现类,以 配置具体的在审批流字段的具体对应关系。2、如果重写AggregatedValueObject toBillAggVO() 方法返回的类型为 HRAggVO则需要重写” 提交“按钮的动作脚本需要重新定义,由具体的审批流后台实现类完成具体提交字段的更新。轻量级查询模板实现方式第一步:定义查询控件MarmotQuery。属性设置分别如下,其中category属性设置的为对应的后 台查询模板的 ID。第二步:注册查询模板信息。由于自助模块查询模板的注册在UAP平台还
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销合同授信协议
- 房屋过户代理合同协议
- 酒店信贷协议合同
- 转正合同协议
- 门票协议合同
- 修建大棚合同协议
- 卖车用不用写协议合同
- 总教练聘用合同协议书
- 开饭店合同协议书范本
- 安置房房屋买卖协议合同
- GB/T 3512-2014硫化橡胶或热塑性橡胶热空气加速老化和耐热试验
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 民用爆炸物品安全管理条例课件
- (最新整理)海报设计课件完整版
- 全国中小学转学申请表
- 埃博拉病毒简介
- 新版《金融科技概论》考试复习题库(浓缩500题)
- 监控系统维保专题方案及报价
- 生育服务证办理承诺书空白模板
- 主播人设打造
- 英语人教新起点(一起)五年级下册-海尼曼分级阅读G2《The Hug》教学设计
评论
0/150
提交评论