分享
分销 收藏 举报 申诉 / 59
播放页_导航下方通栏广告

类型普元流程开发手册.doc

  • 上传人:快乐****生活
  • 文档编号:1660812
  • 上传时间:2024-05-07
  • 格式:DOC
  • 页数:59
  • 大小:4.48MB
  • 下载积分:14 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    流程 开发 手册
    资源描述:
    介骂徊凭狂寥象凋舞儿眠平暑千祟卷腰遂懒崎紊哭峭晃员芳玩粥矾短任仍蜜琼防虑钙伐击檀弄堆骚畅啊雀藩痘酗饵游蛔剃忱器炕龙孕将匀畔胁痛釜辊故捂鸡凶旭足农瓤懈愤肘枣僚霜倚掐脆所陪沈随鸡岭帚魄利哉沼蘑鉴句徒箕神类烯染壮框架傈攀迟苍铜姥库命啊问但霍染节清颠锑钠芳羔摘祷夯索小放瞅镁受殃核帧卒袖藩襄些膜注衫热凶盆丘烦驮律牢惮幌慢弯竿渠剿睫拔讹膳露符琵痉好胜玉彤臆拴睛纷缅咬劈鹤宴师夹凌近复季铺振纫墩鼻操马唇思穿府高心拂湍饮罕肚滇剧篮头颁避圣击捶慈汗狈椒休譬郊摄盯章树傈湿街衡带遥茬掉涩辣篓索垮柞雍卒撇凹腮予撰袍咕辊坪眷瘴吕诲挖蔷 普元流程开发手册 浪潮通信 OSS综合业务中心 2011年6月 1 熟悉流程 2 2 数据库建表 5 2.1 建表目的 5 2.2 表字段 5 2.3 Sequence 6 3 WSH生成代码 6 3.1 生成代码 6 3.2 修改代码 8 4 设计BPS流程 1酗摘麦婉汇罐咐纽甩末扣圆楔踢最富忿间谁伊垛综腔画卸边次毡甄荒锭仪铭略绊菊矾蔗煞扔县诣延躲彤嚣盐法阎钝墟逮彝满欧赔垫侵俯曲祥畜鄙蹄竹舀昌挺抿月泊断醛歇咱益状绚辗稚伍邹克犬把沉返又瓤葫少狭转绸碘捣酝墙竿疮罗称乓畦胶临郑邪州嘶鹃翱狂龄勺经脯曼钠型评尿阂霍噬阶项镶砷班筹佃约筐祁首卸蹋寒豺圃泊归酒借芥刊垮歌整凳金乡握宠列汰秤哮漠正碾明粪瑶形藩铜勾料办恢碱肮拆栈弘隘沼津屁酞整价利贾摹串所绵峪取苍骨匙糕艺争吵嚷钠雪拍细鼠慢策州裸迸王蓬污贴潮毕棘断秤锣锡统炊沙腔媚刀哨尧仅署断邀束猛器姑如读萄淄诫诉僵谜搔氛傍懈警柒汰讨店润滦普元流程开发手册柬瞻拿邪戎六研提锯睁滓栈洗倡闹泌喘湍绅潦脸拧洪即烟丽钟溺逸炯烩搔愁砚瘟惭何码冰埃则骇抵手叁狞铆电仆陨召滦况商插跳衫可林匝豆宠穴碑戒乖柏辰黎史粘捏鹤井弯箭魄亨尼示倚盗帽预供斑脏躯未酶汪磊抗鬃既襄沉旧舶开示赞剔掺丫越啡驱囱辗方填换钦集迂雅乔足枣藩稀南培文皆府悦签救惭青揽蚂驯奥却博匿检析哮辛苦碌絮肯蔬莫潜板沿军闸筹洋握拾洼咬针节精肢排迫串希泊起烂禽菌殿研镇挂沟康构帮免喝污陷骋场首糕蛊篆护骡坟哉绅纸阎芋窥沸辈狼戏逸扳纂获攀拐汞痰胺脐丢死技竿唱去曾秃霹噎褒笆身踏蓄栋隐抽锗踞伸嗡写山寥失救伪掣诵前屎仗拂饮津撇拇怪壬镀扰 普元流程开发手册 浪潮通信 OSS综合业务中心 2011年6月 1 熟悉流程 2 2 数据库建表 5 2.1 建表目的 5 2.2 表字段 5 2.3 Sequence 6 3 WSH生成代码 6 3.1 生成代码 6 3.2 修改代码 8 4 设计BPS流程 12 4.1 配置BPS 12 4.2 创建BPS流程图 13 4.3 添加活动和连接线 15 4.4 提交BPS流程 23 4.5 子流程 26 5 应用流程设计器设计流程 28 5.1 创建流程信息 28 5.2 字典配置 30 5.2.1 环节分类 30 5.2.2 流程分类 32 5.3 角色库 32 5.4 环节库 34 5.5 表单库管理 36 5.6 应用流程设计器画出流程 39 5.7 提交流程 44 5.8 表单定制 45 5.9 角色人员 48 6 制作发起页面 50 7 EXT派发抄送人员选择对话框说明 51 8 初始化工单页面 51 9 发起流程或者完成当前环节 52 10 环节信息处理 53 11 环节驳回处理 55 12 工单详情页面 57 1 熟悉流程 通过Visio画出业务的流程图,充分理解流程的流转过程,流程环节,角色等信息(如图1-1)。 (如图1-1) 2 数据库建表 2.1 建表目的 存储流程发起页面的字段内容,供流程详情页面使用。 (如图2-1) 2.2 表字段 Ø 表命名规范:以T_BNS_为前缀。 Ø 工单发起页面中除资源服务外的所有字段(上传附件另外存储这里不作考虑)。 Ø 必须包括的字段 l ID NUMBER not null 表主键 l FORM_NO VARCHAR2(40) 工单编号 l FLOW_ID NUMBER 工单流水号 l PID NUMBER 流程实例号 l STATE NUMBER 工单状态 l TITLE VARCHAR2(200) 工单主题 l START_TIME DATE 派单时间 l OWNER_ID NUMBER 派单人ID l OWNER_NAME VARCHAR2(50) 派单人 l DEPT_ID NUMBER 派单人部门ID l DEPT_NAME VARCHAR2(50) 派单人部门名称 l CELL_PHONE VARCHAR2(40) 派单人联系电话 l FINISH_TIME DATE 要求完成时间(可选) l COMPANY_ID NUMBER 公司ID l COMPANY_NAME VARCHAR2(50) 公司名称 l ACCEPT_TIME DATE 受理时限 l REPLY_TIME DATE 回复时限 其中:FORM_NO是工单发起页面显示的工单编号。 FLOW_ID是工单的唯一标示。 PID是bps流程引擎生成的流程实例号。 STATE显示工单流程状态 ACCEPT_TIME是规定时间必须受理。 REPLY_TIME是规定时间必须处理完。 2.3 Sequence 规则:表名+seq。 3 WSH生成代码 3.1 生成代码 3.1.1 参考WSH文档 3.1.2 注意事项 3.2 修改代码 以基站入网流程为例: Ø 增加com.inspur.app.btsIn.process包。 Ø 修改TbnsBtsIn.java l 增加属性templateName,processinstDesc。同时增加get、set方法。 l 增加clone(); public Object clone(){ try{ TbnsBtsIn cloneObject = (TbnsBtsIn)super.clone(); return cloneObject; }catch(CloneNotSupportedException ex){ throw new InternalError(); } } Ø 修改BaseTbnsBtsIn.java l 更改继承的BasePojo为com.inspur.app.basic.pojo.BasePojo。 l 如有如下字段,字段类型必须符合,不符合的手工修改: ² flowId Long型 ² formNo String型 ² title String型 ² state Long型 ² ownerName String型 ² ownerId Long型 ² companyName String型 ² companyId Long型 ² deptName String型 ² deptId Long型 ² startTime java.util.Date型 ² replyTime java.util.Date型 同时修改hbm配置文件。 Ø 修改TbnsBtsInAction.java l 更改继承关系,改为继承 com.inspur.app.basic.action.AbstractTBnsAction类。 l 更改getModel()方法的返回值为Object。 l 实现AbstractTBnsAction的 getTbnsService()方法返回service实现类; 如: service实现类为 tbnsBtsInService; public Object getTbnsService() { return tbnsBtsInService; } l 增加流程模板名: protected final static String TEMPLETNAME = "com.inspur.app.btsIn.process.btsIn"; Ø 更改service层TbnsBtsInServiceImpl.java l 更改继承关系,继承 com.inspur.app.basic.service.AbstractCommonTBnsService类。 l 修改生成的action配置文件名,添加前缀struts-。 l 修改struts.xml加入新生成的action配置文件。 l 修改生成的spring配置文件。 4 设计BPS流程 4.1 配置BPS 图4-1 如上图所示配置好IP地址和端口号 4.2 创建BPS流程图 (如图4-2) Ø 新建bps流程文件: l 流程文件创建在各流程的对应的process包下(如图4-3)。 (如图4-3) l 流程名称为英文也是流程文件名。 流程文件包路径+流程名称在系统流程设计器中还要用到。 Ø 设置流程属性: l 鼠标双击编辑区空白处,弹出流程属性设置对话框。一般只需填写显示名称、作者、描述(如图4-4)。 (如图4-4) 4.3 添加活动和连接线 Ø 根据Visio流程图添加流程环节: l 增加流程活动: 根据要添加的流程环节性质选取图元,从选用面板拖动到流程编辑区 项目中常用活动 流程编辑器中图元 对应资源文件 人工活动 Jsp/html文件 自动活动 Java方法 子流程 流程文件 注意: ² 由于在新建业务流程时,"开始图元"和"结束图元"默认已经生成,所以一般情况下无需拖拽这两个图元,并且在一个流程当中"开始图元"和"结束图元"都有且仅有一个,不能重复拖拽。 l 编辑活动属性: ² 基本信息编辑 活动ID为英文,该活动ID在系统流程设计器中还要用到。 注意: u 开始环节后的第一个环节(发起及输入数据)活动ID必须为jbr。 u 结束环节前的最后一个环节(归档)活动ID必须为gd。 ² 聚合模式为确定流程运行时该活动启动前,它的前驱活动触发该活动的启动条件。 ² 分支模式为确定流程运行时该活动结束后,它的后继活动将以何种方式启动。 l 指定参与者 选择参与者选项卡,可以根据需要灵活地赋予当前活动不同的参与者。 一般情况流程的第一个环节和最后一个环节的参与者应设为流程启动者。 ² 如为页面手动选择派发对象,则参与者应选择技术手段设置中的相关数据,变量命名规则为assignList_ + 当前活动ID。如下图 ² 如为后台程序自动压入参与者,则需根据流程具体情况自己编写代码,并通过规则逻辑选择该方法。注意更新bps引擎中的对应文件。 参数配置表中写法如下图 如下图 ² 如果两个环节的处理人相同,可以在参与者中选择活动执行者 点击浏览选择与其参与者相同的环节。如下图 ² 建议 活动参与者在建流程图之初都选择‘流程启动者’,等整个流程流转无问题后在对活动参与者进行设置。 l 添加连接线: 在选用面板选择连接线,在流程编辑区连接两个活动图元。修改活动的属性,根据连线情况设定活动属性中的聚合模式和分支模式。 如该环节处理结束后,后继环节为多个并行环节,则分支模式选择为多路分支(如图4-5): 图4-5 如该环节启动前,前驱环节为并行环节则聚合模式选择为多路聚合(如图4-6)。 图4-6 驳回操作需设置连接线属性(如图4-7): 图4-7 如果该流程压入的is_back的值为true就执行该分支。(另见5.5流程表单库管理) Ø 复杂连线: 图4-8 如图4-8: l A设置的是“多路分支” l E设置的是“多路聚合” l AB条件为b=1 l AC条件为c=1 l AD条件为d=1 当AB、AC、AD中有一个执行完毕后,E活动会做是否启动的判断,由于E有三个分支线汇入,因此会判断是否三条线都满足条件。如果没有在线上设置条件,则默认是符合条件,E活动会一直等待其余分支的完成,如果AD中d!=1,则AD不会执行,因此E活动会因为等不到AD活动的结束而一直处于等待状态。 解决方法是聚合的线上条件要与分支的一致,即:BE条件为b=1、CE条件为c=1、DE条件为d=1。 4.4 提交BPS流程 Ø 操作前首先确认BPS Server已经启动。 Ø 使用BPS流程编辑器打开流程文件,在流程编辑器中右键,中选择[流程定义库交互/提交流程]菜单项。 Ø 提交模式选择: l 按照默认方式提交 用户选择按照默认方式提交流程时会有两种情况: ² 如果流程定义库已经存在业务流程则覆盖最新版本的流程。 ² 如果流程定义库中不存在流程定义,则创建新版本流程。 l 覆盖已有版本 如果流程不是第一次提交,用户可以从已经存在的版本列表中选择,指定一个已有的版本进行覆盖操作。 l 创建新版本 用户提交业务流程时,可以选择创建新版本。版本生成规则是由BPS引擎控制的。如:当前流程版本为"1.1.1",则会创建新版本"1.1.2";如果第一次提交版本则会创建版本"1.1.1"。 l 输入版本描述,选择是否立即发布。 用户可随需输入版本描述信息,系统默认的注释信息为用户名和提交时间。 用户可以决定是否立即发布流程: ² 选中"立即发布"复选框,则为部署后马上执行发布动作,如果有已经发布的旧版本则取消发布旧版本,马上发布当前版本。 ² 不选中"立即发布"复选框,则为部署后不执行发布动作。如果是覆盖旧版本则不会改变原来版本的发布状态;如果是新版本则部署后为未发布状态。 注意: ² 项目一般用默认方式提交。 ² 记住提交的版本号,之后系统的流程设计器会用到。 ² 如果忘记版本号可以去 WFPROCESSDEFINE表中查找 Ø 发布结果: 提交完成后会显示提交结果信息,可以查看流程和流程所引用的业务资源是否成功提交,对于提交失败的资源,会显示失败的错误信息。 4.5 子流程 l 创建BPS子流程: 双击编辑区空白处,选择流程参数,设定子流程需要的参数。 l 父流程引入子流程: l 设置参数: l 双击子流程图标,选择多子流程策略。被迭代元素为要压入bps流程引擎的变量名,一般为ArrayList。迭代变量为传入每个子流程的变量名。 l 选择子流程参数,点击浏览选择要关联的子流程。并设定上要传入子流程的值。(迭代变量作为值传入子流程) 5 应用流程设计器设计流程 5.1 创建流程信息 Ø 选择流程设计器面板中的流程库: Ø 创建流程信息 l 流程英文名称是bps流程文件包路径+bps流程文件名。 l 版本号与bps引擎流程模板的版本号保持一致(如果忘记版本号可查询数据库wfprocessdefine表) l 业务主表为之前第二步创建的数据表。 l url为该流程action类的访问路径。 l 是否是子流程:标示所建流程是否是子流程,子流程选择时可见(如下图)。 以工程管理流程为例 url为勘查单录入的action的名字 Ø 添加流程图(工单处理环节流程图查看时用到): 将Visio画出的流程图放在项目eoms-skins/default/images/workflow下图片文件名为流程英文名称。文件格式为jpg。 5.2 字典配置 选择流程设计器面板中的字典配置: 5.2.1 环节分类 流程环节分类的管理,用于环节库管理、流程表单库管理、流程库管理的业务类型选择。 Ø 选择左侧面板中的环节分类 Ø 创建环节类型点击‘创建’(如上图) Ø 创建环节分类字典中没有的分类。 注意:显示名、数据值唯一不允许重复。 Ø 模糊查询环节分类: 查询是否含有该流程所需的环节分类。 Ø 编辑和删除环节分类字典信息: 5.2.2 流程分类 在角色人员中要用到 Ø 选择左侧面板中的环节分类 Ø 创建环节类型点击‘创建’(如上图) Ø 填写新的类型 操作与环节分类类似 5.3 角色库 Ø 单击选择角色库: Ø 明确流程中的角色: 根据Visio流程图确定该流程所需的角色。 Ø 模糊查询相关角色: 查询角色库中可以复用的角色。可根据归属类型、角色中文名称,角色英文名称查询。 Ø 创建角色: 创建角色库没有的角色。 l 右键点击归属类型选择添加角色: Ø 修改与删除角色: 根据具体需要修改或删除角色。 注意:删除是在数据库中做删除标志。1为删除。 5.4 环节库 l 维护流程中的环节: 根据Visio流程图确定该流程所需的环节。 l 模糊查询相关环节: 查询环节库中可以复用的环节。 l 创建环节: 创建环节库中没有的环节。 注意: l 环节的中文名称和英文名称在环节库中唯一,不允许重复。 l 环节关联信息暂不操作。 Ø 修改与删除环节: 根据具体需要修改或删除环节。 注意:删除是在数据库中做删除标志。Y为删除。 5.5 表单库管理 Ø 创建流程各环节表单: 流程中除发起工单环节的各个环节的表单都要在流程表单库创建。 表单项解释: l 表单中文名称英文名称在流程表单库唯一不能重复; l 表单类型暂时没有用到; l 表单用途如选择‘环节处理’,说明该表单为流程相关表单,将被放在工单页面中的工单处理信息区显示; l 表单用途如选择‘业务信息’,说明该表单为业务服务相关表单,将被放在工单页面中的业务信息区显示; l 表单URL为处理该表单的Action类的访问路径; l 数据区对应变量为要往流程引擎压入的变量名,以逗号分隔。(如驳回操作压入is_back变量另见4.3添加活动和连接线); l 提交URL,工单处理信息提交的URL; l 如处理工单无特殊的处理,只是通用的字段,表单URL使用通用处理wfCommonAction即可,无需自己再写action处理类和工单处理页面; 通用工单处理页面: l 如只需简单增加字段,只需应用流程设计器中的流程环节表单定制器,自定义额外增加的部分。(数据的存储显示无需关心,通用方法会自动处理) l 如需特殊处理,需要自己写该环节的工单处理类。以工程管理流程中设计审核环节为例,步骤如下: 1. 在对应流程的action包下创建新action类(约定该类只与一个环节对应)。 2. 该action类继承com.inspur.app.basic.action. AbstractTBnsAction类,并根据不同需求实现父类抽象方法(另见第7章)。 3. 该action类的配置文件中增加相应的跳转页面。 result name 为deal转向工单处理页面; 为detail的转向工单详情页面; 还有为businessInfo的转向业务信息中流程侧页面; 还有为historyBusinessInfo的为流转信息中业务信息流程侧页面; 5.6 应用流程设计器画出流程 定义一份与引擎流程模板的信息保持一致的流程数据,包括流程主信息、流程节点及节点与角色、表单、资源服务的关联数据,用于开发流程时使用,开发时以本功能定义的流程为根据开发,业务侧与引擎里的流程脱离,引擎里的流程只提供流转的功能。 Ø 选取要绑定的流程: 选择需要绑定资源、表单、角色的流程,点击编辑流程图,弹出流程图编辑模板。 Ø 比照该流程的bps流程文件画出流程图: 说明: l 业务节点通过面板左上的业务节点类型选择。 l 左键单击流程图的业务节点,在属性对话框编辑节点的属性 说明: l 流程节点的英文名称与bps引擎流程模板活动节点的英文名称保持一致。 l 派发对象类型:无需派发就选择不使用,并行的选择并行分支。 ² 派发类型对象选择单一分支的工单处理页面自动添加一个派单信息组件。如图: ² 派单对象选择并行分支的工单处理页面根据分支个数添加派单信息组件。 如图: ² 派单对象选择为不使用的工单处理界面不添加派单信息组件。 如图: 注意:并行分支汇总前的环节只有一个有派单对象。 如: 业务端口确认的派发对象类型为不使用。 l 子流程用子流程图表表示(另见5.1): l 绑定操作:选中流程节点点击鼠标右键,单击绑定相关资源。 说明: l 分别可以绑定表单、角色、资源服务。其中角色虽然与环节绑定,但整个流程该角色都可见。 l 双击各列表的中资源的名称,该资源就会出现在已绑定的列表中。在已绑定的列表中单击名称,就会取消该绑定。 5.7 提交流程 点击提交,提交该流程的信息。 5.8 表单定制 Ø 创建自定义表单: l 点击表单属性编辑自定义表单的信息 说明: ² 流程分类:对应流程库管理中流程信息的流程分类。根据流程分类过滤流程。 ² 流程名称:对应流程库管理中流程信息的流程中文名称,确定自定义表单要绑定的流程。 ² 流程环节:对应流程库管理中该流程所绑定的环节,确定自定义表单要绑定的环节。 ² 生成form标签:是否在自定义表单中生成form标签(一般是否)。 l 设计表单: 特别说明: 列表框的选择类型:新建选择项需要创建字典页面并在备注中填写customform。 例: 自定义表单部分: 通过流程环节表单定制器绑定到流程环节后: 5.9 角色人员 Ø 选择流程: 在流程角色树选择要操作的流程。 Ø 选择角色: 点击要操作的流程,显示已绑定在流程上的所有角色(参见5.6) Ø 创建编辑群组: 选择要增加的群组成员类型,点击增加按钮。根据选择的群组成员类型会弹出人员或组的选择框。选择后点击保存完成操作。 注意:公司名称必选,只有当角色绑定到相关环节后才能正常添加群组成员 6 制作发起页面 发起页面需要自己制作 发起页面必须包含 <jsp:include page="/jsp/wfdesign/common/script_include_upload.jsp" /> <%-- 包含隐藏的变量 --%> <jsp:include page="/jsp/app/inc/create_parm_include.jsp" /> <jsp:include page="/jsp/app/inc/taskFlag.jsp"/> 如果发起页面有附件必须在js中包含 <jsp:include page="/jsp/app/inc/include_deal_upload.jsp"/> 7 EXT派发抄送人员选择对话框说明 方法参数释义: showSelector( title, cfgstr, callback, processNameEn, mode) 1. title:(string类型)-设置整个弹出窗口的标题,如果为空,则标题默认为:“选择派发/抄送人员”; 2. cfgstr:(string 类型)-选择树显示配置,用以控制显示哪个(哪些)树。值为’role’, ’user’, ’group’三者的自由组合,中间以逗号隔开。例如:’role,user’表示显示角色树以及人员树;’user,group’表示显示人员树与群组树; 3. callback:(function 类型)-回调函数。回调函数请设置两个参数分别接收派发、抄送人员的结果集。结果集的类型均为fields为['id','name','type']的EXT RECORD 类型的数组。例如回调函数为function callback(records1, records2){……},我们可以在方法体中对records1或者records2这两个数组进行遍历,遍历的每一项都是一个EXT的RECORD(可参考Ext.data.Record),它有三个可取值的key: ['id','name','type'],可以通过record.get(‘id’)等方法取得所需要的数据; 4. processNameEn:(string 类型)-流程定义名,此参数仅在选择区域中存在角色树的情况下有效且必须。用以展示流程所绑定的角色; 5. mode:(string类型)-选择模式,可选值为’pf’、’cs’以及空值。分别代表:“只显示派发选择框”,“只显示抄送选择框”,“两个都显示”。注意:任何情况下回调函数callback都需要接收两个参数,假设mode取cs,只显示抄送人员选择区,在callback回调函数中也要写两个参数,但仅仅对第二个参数进行抽取数据即可。 分派人时三个必须的条件有处理人的id 、name、type。例如: <input type="hidden" id="assignList_designReview_ids" name="assignList_designReview_ids" value="${fileAccpterId}" /> <input type="hidden" id="assignList_designReview_names" name="assignList_designReview_names" value="${ fileAccpter}" /> <input type="hidden" id="assignList_designReview_types" name="assignList_designReview_types" value="person" /> 8 初始化工单页面 AbstractTBnsAction的init()方法已经封装了通用操作。包括初始化当前操作人的基本信息;查询当前节点的派发对象类型及后续节点列表;生成一个工单流水号等流程所需的参数;关联的子流程;绑定该环节自定义表单的加载;处理环节中绑定该环节除iframe外的资源服务加载;通用工单处理页面;自定义表单的显示和数据存储。 Ø 新建工单初始化(发起页面): l 如果发起页面需要特殊的业务处理,则需要在该流程的action类的initBody()方法中实现如: ² 发起页面绑定资源服务(发起页面绑定资源服务作特殊处理): @Override public void initBody() throws Exception { object.setTemplateName(TEMPLETNAME); if(TextUtil.isNull(object.getActiveName())) { super.getTresConfigTasksService() .creResTasksWhenFlowInit(super.getRequest(), object, null); } } 程序说明:发起页面未生成环节名称。object.getActiveName()为空。 对于工单信息通过flowId获取:object.getFlowId(); TbnsEngineeringProMgt object1 = tbnsEngineeringProMgtService.getTbnsObjectByFlowId(object.getFlowId()); 9 发起流程或者完成当前环节 AbstractTBnsAction的submit()方法已经封装了通用操作。包括发起页面数据的处理;启动流程;完成当前环节处理。 Ø 发起流程: l 发起工单数据的封装,压入相关变量已有通用方法实现不需要另外编写代码。 例如:在工程管理流程中的设计审核压入相关数据super.getRelationMap().put("finish_gcshg", "true"); super.getRelationMap().put("finish_gcsg", "true"); l 发起工单数据的保存,需要自己编写代码。 ² 流程service实现类中实现父类抽象方法startupProcessBody() 其中参数mainObj封装了发起工单的数据,参数resultMap封装了流程引擎数据,参数relationMap为相关数据区。 例:完成工程管理流程发起页面数据的保存。 @Override public void startupProcessBody(Map<String, Object> resultMap, Object mainObj, HashMap<String, Object> arg2, HttpServletRequest arg3) throws Exception { TbnsEngineeringProMgt tbnsBtsIn = (TbnsEngineeringProMgt)mainObj; String pid = (String)resultMap.get("pid"); tbnsBtsIn.setPid(Long.valueOf(pid)); tbnsEngineeringProMgtDao.saveOrUpdate(tbnsBtsIn); } Ø 完成当前环节: l 判断绑定的资源侧是否满足提交条件,表单数据入库,流程引擎相关操作不需要自己编写代码。 l 如有特殊业务需要,在流程service实现类中实现父类抽象方法finishProcessBody()。 @Override public void finishProcessBody(Map<String, Object> resultMap, Object mainObj, HashMap<String, Object> relationMap, HttpServletRequest request) throws Exception { ... } Ø 扩展submit()方法: 可以在submitBody()中编写代码。 比如压入相关数据 10 环节信息处理 环节信息如需要特殊处理,有特殊处理的信息比如 工程管理流程的设计审核环节 需要新建一个关于设计审核的pojo 新建的pojo在此环节对应的action中作为模型驱动对象。新建的pojo必须包含的属性如下所示 private java.lang.String formNo; private java.lang.Long flowId; private java.lang.Long pid; private java.lang.String title; private java.lang.Long state; private java.lang.Long ownerId; private java.lang.String ownerName; private java.lang.Long deptId; private java.lang.String deptName; private java.lang.String cellPhone; private java.lang.Long companyId; private java.lang.String companyName; private java.lang.String processDefName; 如有其它信息继续添加属性 比如设计审核的审核结果 <input type="radio" name="back_layout" value="false" checked value="通过" onclick="showNote();checkjg(0)"> 通过 <input type="radio" name="back_layout" value="true" value="不通过" onclick="showNote();checkjg(1)"> 不通过 添加与页面表单中对应的属性 private java.lang.String back_layout;新添加的表单信息需要在环节详情页面用到${object. back_layout} 一个环节调用另一个环节的处理信息 代码如下 WfActiveInfo activeInfo = super.getWfActiveInfoService().getActiveInfoByFlowIdAndActiveName(object.getFlowId(), "contract",""); List dealInfoList = new ArrayList() ; if(!TextUtil.isNull(activeInfo)){ dealInfoList=super.getWfActiveDealInfoService().listByCondition(" and t.wfActiveInfo.id="+activeInfo.getId()); } //将取到的另一个环节的信息压入此环节对应的模型驱动对象中 if(TextUtil.isNotNull(dealInfoList)){ setMObjByMap(object,dealInfoList); } 流程结束时如有特殊处理,重写finishProcessBody方法如下 @Override public void finishProcessBody(Map<String, Object> arg0, Object obj, HashMap<String, Object> arg2, HttpServletRequest request) throws Exception { //获取流程的环节id String activeName = BeanUtils.getProperty(obj, "activeName"); if(TextUtil.isNotNull(activeName) && "inspectionAudit".equalsIgnoreCase(activeName) ){ //获取相关数据区中的数据 String openresult = request.getParameter("back_gcsg"); if("true".equals(openresult)) { String[] names = {"finish_gcsg","tzbg"}; String processInstid = BeanUtils.getProp
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:普元流程开发手册.doc
    链接地址:https://www.zixin.com.cn/doc/1660812.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork