10 应用系统统一开发平台SG-UAPV2 0培训_快速开发-业务系统与BPM集成开发_第1页
10 应用系统统一开发平台SG-UAPV2 0培训_快速开发-业务系统与BPM集成开发_第2页
10 应用系统统一开发平台SG-UAPV2 0培训_快速开发-业务系统与BPM集成开发_第3页
10 应用系统统一开发平台SG-UAPV2 0培训_快速开发-业务系统与BPM集成开发_第4页
10 应用系统统一开发平台SG-UAPV2 0培训_快速开发-业务系统与BPM集成开发_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

应用系统统一开发平台(SG-UAP)培训BPM集成应用开发,2020年5月,目录,2,引言,3,课程目标:,熟悉统一权限管理系统的资源配置。熟悉工作流程的设计。掌握工作流、权限、业务系统之间的集成环境配置。掌握业务系统中的几种场景集成。,目录,4,业务系统与BPM集成概述,5,流程管理平台简称BPM。BPM是基于J2EE标准技术,在遵循BPMN2.0技术规范的基础上,结合国家电网已有业务流程应用,以及未来国家电网流程集约化管理的战略需求。BPM主要将系统的业务逻辑和流程逻辑进行分离,使开发人员更专注于与业务逻辑相关程序的开发,而将通用的与流程处理相关的逻辑交由BPM实现,从而缩短了系统的开发时间,降低了流程开发的复杂程度,提高了系统的灵活性和伸缩性,下图是BPM在业务系统中集成场景。,6,业务系统与BPM集成开发流程,统一权限注册资源,Bpm流程管理,Bpm与isc集成Bpm流程设计,业务系统,后台调用,前台逻辑开发,isc与业务系统集成配置Bpm与业务系统的配置启动bpm模块配置bpm服务地址添加bpm依赖包,集成环境配置,业务系统与BPM集成概述,目录,7,8,业务系统与BPM集成开发实例讲解,结合isc,bpm实现一个请假流程管理,主要是在业务系统对请假流程的一个发启、发送、查看已办、待办列表以及流程监控图。1.在isc注册资源,业务系统显示如下菜单,9,业务系统与BPM集成开发实例讲解,2.Bpm中设计请假流程,如下图,3.业务系统请假管理页面:主要是添加一个请假单以及进行编辑、删除、流程的发起功能(2种方式,后台API调用、前台JS调用),10,业务系统与BPM集成开发实例讲解,选择参与者(该流程中所用用户为uap1、uap2),11,业务系统与BPM集成开发实例讲解,配置人工任务,12,业务系统与BPM集成开发实例讲解,4.点击待办任务显示代办列表(平台默认提供),如下图(当前用uap1用户),5.点击待办任务/已办任务列表中的“工作项名称”链接打开当前工作项关联的业务表单,打开业务表单的URL中带有以下参数。,13,业务系统与BPM集成开发实例讲解,7.点击待办任务列表中的“状态图”打开一个流程监控页面,8.点击已办任务显示已办列表(平台默认提供),如下图,6.点击待办任务列表中的“流程实例名称”链接打开当前工作项所属流程实例的日志页面,14,业务系统与BPM集成开发实例讲解,在统一权限管理页面注册资源,配置基准组织机构、用户配置业务组织配置业务系统配置角色及授权配置BPM已办入口菜单,链接为:/bpm/yiban/index.jsp配置BPM待办入口菜单,链接为:/bpm/daiban/index.jsp注:1.待办/已办链接是固定的,bpm是模块名,daiban、yiban是场景名,待办/已办平台已经帮我们现实,在这直接加链接引用即可2.用户和角色绑定时,用户必须是缺省角色参考8、应用系统统一开发平台培训_分册_快速开发v1.0-ISC实例配置.pptx,15,业务系统与BPM集成开发实例讲解,bpm与isc集成根据SG-UAP_BPM与ISC集成升级步骤完成BPM与ISC的集成。流程设计开发登录BPMWorkspace流程管理页面,根据案例分析中的要求设计流程图;设计方法参照SG-UAP_BPM使用手册,BPM流程管理,16,业务系统与BPM集成开发实例讲解,集成环境配置,首先是:isc与业务系统集成配置,参考与ISC集成开发PPT其次是:bpm与业务系统集成配置1.集成环境启动bpm模块在白名单中打开bpm,如下图,17,业务系统与BPM集成开发实例讲解,2.bpm服务地址配置在UAP项目WebContentWEB-INFperties文件中配置BPM集成信息,将以下属性修改为与当前项目所使用的BPM对应的参数.,18,业务系统与BPM集成开发实例讲解,3、添加bpm依赖包在业务模块中的META-INF/MANIFEST.MF添加对流程相关包的依赖com.sgcc.uap.bpm.api,com.sgcc.uap.bpm.exception,org.sotower.bpm.api.data,如下图,19,业务系统与BPM集成开发实例讲解,通过前端Js处理对流程进行处理操作,需要在业务模块的weblet.js中添加对流程JS代理类Weblet依赖,如下代码,mx.weblets.WebletManager.register(id:leave,name:leave,requires:bpm/bpmintegrate,onload:function(e)$import(bpmintegrate.utils.BPMClient);,onstart:function(e)varmvc=newleave.views.MainViewController();e.context.rootViewPort.setViewController(mvc););,20,业务系统与BPM集成开发实例讲解,1、通过调用JS实现流程创建,varbpmclient=newbpmintegrate.utils.BPMClient();/创建js代理对象varparams=BUSINESSID:+dataGrid.getCheckedIDs()0+;/业务主键/*创建流程实例,可以选择是否立即启动,可带参数*注意事项:*如果第一、二个参数为空,则抛出异常*如果第一参数对应的流程定义找不到发布版本,则抛异常*paramprocessDefName流程定义名称*paramprocessInstName流程实例名称*paramprocessInstDesc流程实例描述*paramisStart是否启动流程实例*paramfinishFirst是否完成第一个工作项,取值为true或false*paramrelativeData流程参数,格式为key1:value1,key2:value2的JSON串*/varflag=bpmclient.createProcessInstWithOption(uap5,uap5,true,false,params);,21,业务系统与BPM集成开发实例讲解,2、通过调用JS实现流程完成页面,varbpmclient=newbpmintegrate.utils.BPMClient();/*完成工作项*paramworkItemId工作项ID*/varflag=bpmclient.finishWorkItem(me.workItemIdD);,22,业务系统与BPM集成开发实例讲解,通过UAP封装的流程接口创建流程实例核心代码,RequestMapping(value=/start)publicRawResponseBodyObjectstartBpm(HttpServletRequestrequest,RequestParam(businessId)StringbusinessId)StringuserId=;StringuserName=;ObjectuserMap=request.getSession().getAttribute(user);if(userMapinstanceofMap)userId=(Map)userMap).get(id).toString();userName=(Map)userMap).get(name).toString();elsereturn2;,23,业务系统与BPM集成开发实例讲解,通过UAP封装的流程接口创建流程实例核心代码,ListdicList=getDicItemFromFile(BpmData,BPM.DATA).getValues();MapbpmData=(Map)dicList.get(0);StringproessDefName=bpmData.get(text).toString();bpmData=(Map)dicList.get(1);StringprocessInstName=bpmData.get(text).toString();if(proessDefName!=null,24,业务系统与BPM集成开发实例讲解,通过UAP封装的流程接口发送流程核心代码,RequestMapping(value=/send)publicRawResponseBodyObjectsend(HttpServletRequestrequest,RequestParam(workItemId)StringworkItemId)StringuserId=;StringuserName=;ObjectuserMap=request.getSession().getAttribute(user);if(userMapinstanceofMap)userId=(Map)userMap).get(id).toString();userName=(Map)userMap).get(name).toString();elsereturn2;,25,业务系统与BPM集成开发实例讲解,通过UAP封装的流程接口发送流程核心代码,Longlong_WorkItemId=null;if(workItemId!=null,26,业务系统与BPM集成开发实例讲解,前端调用服务端代码实现流程创建核心代码,/创建流程方法me._startBpm=function(checkedID)varclient=newmx.rpc.RESTClient();varstartUrl=/./uapdemo2.0/rest/leave/start;varbusinessData=businessId:checkedID;client.get(startUrl,businessData,function(p_flag)/0:发起失败,1:发起成功,2:参数错误,3:从文件获取数据字典失败if(p_flag=1)alert(发起流程【成功】);me._updateLczt(checkedID,流程中);/流程中/发起成功后处理业务逻辑dataGrid.load();,27,业务系统与BPM集成开发实例讲解,前端调用服务端代码实现流程创建核心代码,elseif(p_flag=0)alert(发起流程【失败】);elseif(p_flag=2)alert(发起流程【失败】:参数错误);elseif(p_flag=3)alert(发起流程【失败】:从文件获取数据字典失败);elsealert(REST服务调用失败);/Endofcallbackfunction);/Endofclient.post,28,业务系统与BPM集成开发实例讲解,后台封装公共方法BpmUtil,publicstaticStringstartBpm(StringbusinessId,StringprocessDefName,StringprocessInstName,StringuserId,StringuserName)IBPMServiceClientclient;try/获取BPMServiceClientFactory登录管理类/为本次调用请求设置当前登录用户BPMServiceClientFactory.getLoginManager().setCurrentUser(userId,userName);/得到客户端对象client=BPMServiceClientFactory.getBPMServiceClient();/获取流程实例管理器接口IBPMProcessInstManagerprocessInstManager=client.getProcessInstManager();MapconditionMap=newHashMap();conditionMap.put(BUSINESSID,businessId);/extendsorg.sotower.bpm.api.data.StartOptionBPMCreateOptioncOption=newBPMCreateOption();cOption.setRelativeData(conditionMap);/创建工作流实例,可以选择是否立即启动,增加支持创建选项/返回流程实例IDlongprocessInstId=processInstManager.createProcessInstWithOption(processDefName,processInstName,processInstName,true,cOption);return1;catch(Exceptione)e.printStackTrace();return0;,29,业务系统与BPM集成开发实例讲解,待办/已办按钮事件,/查看待办页面me._btnDaiban_onclick=function()var_win=leave.getContext().windowManager.create(title:待办页面,width:900,height:600);var_html=newmx.containers.HtmlContainer(url:/bpm/daiban/index.jsp,type:I

温馨提示

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

评论

0/150

提交评论