开发手册sg-uap快速实战指南_第1页
开发手册sg-uap快速实战指南_第2页
开发手册sg-uap快速实战指南_第3页
开发手册sg-uap快速实战指南_第4页
开发手册sg-uap快速实战指南_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

修订记版号修订说修订修订时审核333.4完善业务对象建模指南3.2引 概 适用范 ....................................................................................................................1开发环境部 平台获 平台的安 SG-UAPSEVER的安 SG-UAPIDE的安 SG-UAPIDE的运 数据库的安 统一流程平台(BPM)的安 快速开发指 创建UAP项 创建模块项 配置模块项 验证开发环 示例功能开 业务对象建 展现界面建 设计效果预 业务对象建模指南(补充 业务对象建 界面建 效果预 自定义调 展现界面建模指 常规操作步 界面效果预 持续优化调 流程快速开发指 流程配 流程集 配置依赖 服务端集成流 前端集成流 工作台集成待 任务调 执行组件开 5.1.1组件部署配 本地组件部署配 执行组件实 发布执行组件服 任务配 配置任 报表开 报表开发简 报表配 报表开 网格报 分组报 自由报 主从报 图表开 簇状条形 簇状柱形 报表集 直接调用即席报表页 引概SG-UAPAPI适用范名说国家电网统一应用平台StateGridUnifiedApplicationtform,全过程。(中文简称“统一应用平台”,英文简称SG-UAP个由项目管理人员统一开发人员只需要知道统一应用平台服端的地址。(简称“服务端SG-UAPSG-UAP(SG-UAPDevelopmentUAPWebOSGi(OpenServiceGatewayInitiative,开放服务网关OSGiVOPOPersistenceObjectjava每个任务执行步骤的业务操作的实现组件,具体可包括和插1开发环境部平台获业务项目组按照《平台管理办法实施细则》规定,按照平台使用申请流程,获得平台使用。平台的安SG-UAPSEVER安SG-UAPServertomcatwebapps下,启tomcatServerstartupinXXXXms,SG-UAPServer图 SG-UAPServer启动成SG-UAPIDE安双击SGCC_UAP_IDE-X.X.X_XXXXXXXX.exeSG-UAPIDESG-UAPIDE运在SG-UAPIDE中,找elipse 下的UAPStudio.exe文件,选择合适的工作空间,即可运行SG-UAPIDE,进入后界面如下:2SG-UAPIDE数据库的安的相关资料安装并启动数据库,以数据库管理员的登陆数据库,为UAP应用项目创建用户信息,并执行初始化建库。统一权限平台(ISC)的安按照统一权限平台的获取流程,获取ISC的使用,然后根据ISC提供ISC统一流程平台(BPM)的安按照统一流程平台的获取流程,获取BPM的使用,然后根据BPM提供BPM快速开发指SG-UAP引入了模型驱动架构(MDA)思想,业务模块的开发过程将围绕着“建模”展开,SG-UAP应用开发中模型主要包括对象模型和界面模型,分别对应于omui创建UAP项参照本文档第2部分完成开发环境的准备后,我们启动UAPStudio,创建一个磁盘(D:\uapWorks\QuickStart)Workspace,然后UAPUAP创建UAP项点击上的New按钮,选择“UAP项目”,也可以选择菜单栏中的“File->New->UAP3UAPUAPSG-UAPIDE4SG-UAPIDE“Next6UAP“Oracle)选中“OracleThin 10,在框中输入数据库ID、主机名、端、用户名、,并勾选“Save 示框,点击“OK”按钮关闭框。SchemeID。点击“Finish”按钮完成新建向导的配7UAP分册配置UAP项导航树展开“Plug-inDevelopment,选中“Targettform”配置项。AddNextAddDirectoryNext,LocationSG-UAPServer以简写 FinishjarFinishTargetDefinitions,OKuap-server,jar打开 .xml”文件(uap项目下 “FALSE打开“Servers”ApacheTomcat“AddandRemove…”项。在弹出的“AddandRemove”框中,将3.1.2中创建的UAP项目从左侧本例配置完毕后如下图所示,最后点击“Finish”导航树展开“UAPIDE更改界面预览中“Url前缀”配置项的值,取值隐含Tomcat的端和UAP项目名(本例“最后点“OK”创建模块项一个项目通常会划分为多个项目(或者说系统,SG-UAP平台中一个“模块项目”相当于项目中的一个“项目”。点击上的New按钮,选择“模块项目,也可以选择菜单栏中的12提示:模块项目详细介绍请查阅《SG-UAP_V2.0_高级开发手册_1提示:模块项目详细介绍请查阅《SG-UAP_V2.0_高级开发手册_1配置模块项打开UAP项目中的WebContent\WEB-INF\configuration\.xml配置文在“tform-dynamic-”项上点击鼠标右键,利用上下文菜单添加 (本例对应D:\\uapWorks\\QuickStart。module(demo验证开发环在模块项目(本例对应于demo)的 下创建o.jsp文件,修 “ServersUAP图 UAPIDE服务器视点击右上角的Start按钮(调试时前面的Debug按钮)启动UAP项应用启动成功后,控制台显示“ServerstartupinXXXms30打开浏览器在地址栏输入测试页地址本例为/demo/o.jsp,其中9000为端,uap-为UAP项目名称,demo为模块项目名称。若正常展示如下界面,则证明SG-UAP应用开发的第一步示例功能开为便于初次使用UAP用户快速,本章节基于一个示意性质的“公司信Step-By-StepSG-业务对象建1采用图形化的设计器,协助您从零开始建立完整的对象模型,该方式适用于2选式完成本章内容的学习。(*.om)“hr打开OM文件:点击“Finish”后,系统在“model/om/” 中创建创建业务实体:从设计模型设计器的Palette面板中选 pany创建主键属性id:在属性列表区域点击“新增属性”按钮,在弹出界面中“id, Name创建属性Name:Name“100“address创建属address:在弹出界面中设置名称为“adress设置显示名称“公“500“OK“OK保存模型文件:点击UAPStudio上,或通过快捷键“Ctrl+S”,om提提示:本步骤假定您的开发环境已做好以下准备1、已按照“3.1.1创建UAP项目”章节,完成数据库连接配置并测试连接成功2、在该数据库中成功创建数据库表 PANY",建表语句如下create (IDVARCHAR2(32CHAR) PANYNAMEVARCHAR2(32CHAR),ADDRESSVARCHAR2(500commentontable PANYis'公司信息';commentoncolumn PANY.IDis'id';commentoncolumn PANYNAMEis'公司名称';commentoncolumn PANY.ADDRESSis'公司地址';altertable PANYaddprimarykey(ID)usingindex;键选择“New->数据库反向建模(om)选择/选择数据源:从数据源列表中选择一个,然后点击“Next”按钮 新建/选择OM文件选择已有选项从模块项目中选择一个om文件,然后点击“Next”按钮(如模块项目中还没有om文件,则点击“新建om”,可完善转换后的业务实体:双击业务实体 pany所在列,将其修改为“,双击主键属性id显示名列将其修改“公司编号点“Next”“FinishOM打开生成代码向导:在对象模型设计器主界面中,点击上的“代码生生成代码后,模块项目(本例为demo) 结构如下图所示提示1提示1、如采用“方式二“数据库方向建模”,可忽略此步骤2、如在上一节的“生 代码”过程中勾选“同步到数据库,可忽略此步骤请手工在命令行或pl/sql工具中执行“demo/src/ddl/”目录下的 展现界面建1支持通过简单参数配置引导您快速创建业务应用中典型的场景代码和UI模2UIjs了解手工建模,请参考本文档“3.4打开场景向在当前模块项目根上,右键选择“New2.0(*.ui)“t1选择场景模选择数设置场景参数(可选系统默认在表格中显示所有属性,点击“Finish”,UI模型及前端代UIjs设计效果预启动服1.打开“Servers”ApacheTomcat,Start(调试时前面的Debug按钮)启动UAP项目预览界面效url, 业务对象建模指是初次使用,建议先完成“3.2示例功能开发”章节内容。123456业务对象建1、已参考“3.1UAPUAP2“3.1.3demo23、已参考“3.1.5数据库表准1)确认您已按照“3.1UAP章节,完成数据库连接配置,并测试2)执行以下文件,在数据库中创建"PROJ_MEMBERS、PROJ_PROJECTPROJ_TASK个数据库表键选择“New->数据库反向建模(om)选择/选择数据源:从数据源列表中选择一个,然后点击“Next”按钮选择(转换)数据库表:从表格中勾选“PROJ_MEMBERSPROJ_PROJECTPROJ_TASK”三个表,点击“Next”新建/选择OM文件:从窗口中,点击“新建om”->点击“浏览在弹出窗口中选择模块项目demo2(或您当前的模块项目);设置命名空间为“project理”,点击“Next”按钮进入下一步。使用同样方式依次将ProProject修改为“Project“ProjMembers修改为“Members“FinishOM改进实体关联属性可读性(可选步出关联关系编辑窗口,将导航属性名“tasks”改成“children”,表示任创建枚举“WorkType“Priority“TaskState“RateUnit为实体属性指定合适的编辑列,弹出属性编辑窗口,从,“OK,枚举时,请选择即可); 5)priority”属性设置下拉框,枚举类型选择;为实体属性设置校验属性编辑窗口,从Tab页中选择“校验器”选 “18,为“项目信息”的“budget”属性添加校验器,要求值大于10000。参照“10000在对象模型设计器主界面中,点击上的按钮,弹出代码生成窗口,生 代码后,模块项目(本例为demo2) 结构如下图所示展现界面建New2.0(*.ui)”,在弹出的向导窗口中,设置模型名称为选择场景模板:在向导窗口中,选择“表格+表单(单页)”场景模板“Finish”Weblet生成前端代码后,模块项目(本例为demo2) 结构如下图所示项目人员管理功能运行预UAPTomcat9000,Tomcat9000,New2.0(*.ui)”,在弹出的向导窗口中,设置模型名称为选择场景模板:“Finish”Weblet项目信息管理功能运行预3)UIurl,请按下图提示检“New->界面模型2.0(*.ui)在弹出的向导窗口中设置模型名称“task选择场景模板:在向导窗口中,选择“树表场景”模板Weblet任务信息管理功能运行预3)UIurl,请按下图提示检代码自定义调服务端代码自定义调OSGI模块更新命令“updateid1、javajava“//@keep”2、hbmhbm@keepBizc 前端代码自定义前端代码手工修改后,无需重新发布模块项目,直接刷新浏览器即可修代码调整后效果Bizc修改后,加载数据字典内容,可到对应的人员展现界面建模指3.1,并创建了业务对象模型(3.2.1。常规操作步创建ui文2.0(*.ui)添加同样的方式,鼠标拖拽“ToolBarItem”到刚才创建的“ToolBar”“ToolBarItem,id“btnAppend“btnSave“btnDelete添加数据表ToolBar(如下图所示。绑定数在右上角大纲视图(Outline)在弹出窗口中选择“公司信息”业务对象模型,点击“OK”展开“datasources”OKDataGrid编写函 ToolBarItem包含“onclick”,在名称上双击在“me._btnAppend_onclick”varvardataGrid=,,varvardataGridvarvardataGrid=最终的函数代码如下图所示生成代ui在“界面设计”页上方的工具条上点击“生成MX文件”按钮生成的代码将存放于当前模块项目的 下,如下图所示界面效果预启动服启动本机的开发调试服务(详见本文档“预览界面效url,提示:如不提示:如不 ,请确认tomcat启动端口是否是9000持续优化调完善函的,下面为其添加处理函数。击“”按钮,切换到(再次点击将切换回属性。vardataGrid=if(dataGrid.getCheckedItems().length>0)if(confirm("您确认删除数据吗?")){}}elsemx.indicate("info"vardataGrid=if(dataGrid.getCheckedItems().length>0)if(confirm("您确认删除数据吗?")){}}elsemx.indicate("info""调整展示效1)1)数据表格(DataGrid)2)2)(DataGrid)Window3)调整主界面布局效双击打 .ui文件,设置mainView的高宽属性值为100%mainView(注意插入点位置。在大纲视(outline)的组件树中展开新拖入的HSplit,鼠标选中ToolBar1节点拖拽到HSplit1的第一个area节点再选中DataGrid1拖拽到HSplit1area“0域释放(mainView。“DetailView“0HSpli(HSplit2area“auto在HSplit2第一个area中添加“ToolBar”控件;ToolBar上添加一个“btnSavetextHSplit2area“DataForm”id“comDataFormcomDataFormOK调整主界面功点击画布上的“视图切换”按钮,转到mainView界面mainViewToolBarToolBarItem,id“btnEdit,text选中mainView界面中的DataGrid,修改allowEditing属性值为“false“comDataGrid((选中btnEdit,在属性视图(Properties)中找到onclick注意单按钮处于选中状态,在名称上双击,切换到函数编辑页。(为me._btnEdit_onclick函数添加下述代码,注意是comDataGrid而非DataGrid1,DataGrid1varvardataGrid=if(dataGrid.selection==null){mx.indicate("info""请选择一条待编辑记录。");}varprimaryKey=varprimaryValue= vardetailController=me.getController("DetailView");vardetailForm=var_win=me._btnAppend_onclick vardetailController=me.getController("DetailView");vardetailForm=var_win=删除掉me._btnSave_onclick函数,切换到“界面设计”删除mainView中的DetailView保存功 .ui中切换到DetailView视图,为btnSave按钮添加onclickDetailView视图中me._btnSave_onclick处理函数代码如下varvardetailForm=me.getView().findControlById("comDataForm");在DetailView 函数中加入下述代码(me._onactivate中:varvardetailForm=varmainController=vardataGrid=detailForm.entityContainer.on("saved",function(e){DetailView函数最终的代码效果如下图所示优化处理逻 .ui中切换到mainView视图的“函数”窗口,找到原本注释掉的me.utils.customFn函数区。showDetailWindowme.utils.showDetailWindowme.utils.showDetailWindow=varm_view=me.getController("DetailView").getView();varm_form=m_view.findControlById("comDataForm");调整后的mainView函数代码效果如下图所示保存ui文件,重新执行生成代码步骤(详见调整逻辑执行效注意:me.utils对应于公共函数库,相关概念和使用方式请参考《SG-UAP_V2.0_使用手册_4.集成开发工具》可视化界面设计器相关章节(5.4.4流程快速开发指流程配登录BPM系统,设计流程图,并为流程节点指定执行者策略,具体的配置方BPM流程集在UAP模块项目中实现流程集成,主要是通过流程BPM系统的API,实BPMSG-UAPBPMBPMBPMBPMBPMBPM无BPM连接逻辑名BPMBPM服务器的地BPMdefaultWEB-INF\_srv\config\uddi-config.xml中BPMBPMdefaultWEB-INF\_srv\config\uddi-config.xml中BPM应用上下文BPMdefaultWEB-INF\_srv\config\uddi-config.xml中的<context>BPMBPMBPM端BPMdefaultWEB-INF\web.xml中的<param-param-valueBPMUAP 配置依赖BPM,UAPMANIFEST.MFBPMorg.sotower.bpm.api,32服务端集成流packageimport……//此处为代码省略 ("/dept"根据popublicclassDeptController{privateIDeptBizcpublicpackageimport……//此处为代码省略 ("/dept"根据popublicclassDeptController{privateIDeptBizcpublic@RawResponseBodyObjectstartWorkflow(HttpServletRequestrequest,@RequestParam(value="flowId",required=false)String ")Stringbusine StringuserID=null,userName=null,flowInstanceId=Map<String,String>condition=newif(request.getSession()!=null){MapuserMap=if(userMap!=userID=(String)userMap.get("id");userName=(String)userMap.get("name"); flowInstanceId=}}return} public@VoidResponseBodyObjectHttpServletRequestrequest,@RequestParam("workItemId")StringworkItemId){StringuserID=null,userName=nullMap<String,String>condition=newHashMap<String,if(request.getSession()!=null){MapuserMap=if(userMap!=userID=(String)userMap.get("id");userName=(String)userMap.get("name");}}return}……//}}packagepackageimportimportcom.sgcc importcom.sgcc.isc.service.adapter.factory.AdapterFactory;importcom.sgcc.isc.service.adapter.helper.IResourceService;……//*publicclassDeptBizcimplementsprivateIHibernateDaoprivateIDataDictionaryBizC*调用流程APIpublicStringstartWorkFlow(Map<String,String>condition)业务记录Stringbusine =condition.get("businessDataId");StringuserID=condition.get("userId");StringuserName=condition.get("userName");StringprcessDefId=condition.get("flowId");Map<String,Object>conditionMap=newHashMap<String,tryDeptdata=this.hibernateDao.getObject(Dept.class,busine StringproessDefNamedata.getBmmc(处理环节 = IBPMProcessInstManagerprocessInstManager= ", BPMCreateOptioncOption=newBPMCreateOption();longprocessInstId=proessDefName,true,return}catch(Exceptione){thrownewRuntimeException(e.getMessage(),}}*调用流程APIpublicvoidsendWorkFlow(Map<String,String>condition){StringuserID=condition.get("userId");StringuserName=condition.get("userName");StringworkItemId=condition.get("workItemId");Map<String,Object>relativeData=newHashMap<String,try = IBPMWorkItemManageriwfwMgr=relativeData.put("ispass","");FinishOptionoption=newFinishOption();,}catch(Exceptione){thrownew}}}……//}前端集成流dept.views.MainViewController={varme=varbase=var =me.getView={if(me.view=={me.view=newdept.views.MainView({controller:me}return/*为启动流程按钮编写逻辑方法*/me._btnWorkflowStart_onclickfunction(){ =new varpath="/workflow/start"vardata={busine :'210000000004425'}; if(typeofret==/*为流程流转按钮编写逻辑方法*/me._btnWorkflowSend_onclickfunction(){vardata={workItemId:varpath= }……//此处为代码省略returnme;前端直接调用流程JS方BPM集成模块egrate.bpm将流程处理逻辑封装成JS类。JS类所属的Weblet名称为bpmintegrate,JS类的完整命名空间为业务系统在开发界面时可直接调用这些JS方法(具体的JS方法及其作用请参考《SG-UAP_V1.2_高级开发手册_分册3.服务端开发.2.1章节,步weblet.jsJS类Webletonload:{在页面JS文件中创建流程JS对象 =new JSme._btnCreate_onclick={varid=varparams=\":\""+id+的请假me._btnFinish_onclick={工作台集成待待办工作单为任务调执行组件开任务调度组件是在Quartz基础上扩展开发的任务和任务建模工具,当前平台支持和本地组件两种部署方式。组件部署配1、配置uap应用perties文件中的TASKDISPATCH_DEPLOY(如果没有则表示默认配置)值为componentManagerRemote,该配置缺省为componentManagerRemote配置,如下图所示: ponent引入33本地组件部署配1、配置uap应 perties文件中的执行组件实在业务系统中新建Class,在Interfaces选择中添加继承执行组件bundle(c publicclassTeskBussinessTaskimplementsITaskDispatchService ponentcomppublicclassTeskBussinessTaskimplementsITaskDispatchService ponentcompreturn }}发布执行组件服SpringIOC<bean<beanid="testTask"class="com.testbussiness.TeskBussinessTaski"<module:serviceid="testTaskService"e.ITaskDispatchService"ranking="100"po

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论