配置完成后刷新流程首页,点击“查看过往业务流程”可以看到查询条件里多了个人编号:
完成了以上步骤还不能启动流程,接下来必须编写每个Task(人工)节点的功能模块。请看下节。
5.4 Action与Jsp开发与配置
? Action开发
每个Task(人工)节点都应该有人工处理界面,即该环节的功能模块。以前面定义的“个人
信息修改流程”为例。我们应该建立4个action和对应的jsp。
1. ChangeInfoAction -> changeinfo.jsp 2. ChangeInfoZBAction -> changeinfozb.jsp 3. ChangeInfoSPAction -> changeinfosp.jsp
4. ChangeInfoRSAction -> changeinfors.jsp
每个action的示例代码请看发布包中对应的文件。
注意:
Struts-config文件配置的ActionForm必须使用ActionFormForXBPM
? jsp开发
1、 每个jsp页面都应该在form标签内加入
<%@ include file=\%>
2、 每个jsp页面都应该 Task节点的节点名称。这个是为了保证页面路径显示的正确性,比如: 框架会根据你写的key自动将当前名称加入到上图的路径最后,以表示当前经办的节点。 5.5 Service开发 以前面定义的“个人信息修改流程”为例,我们建立了“ChangeInfoService”和“ChangeInfoServiceImpl”,具体请查看请看发布包中对应的文件。 5.5.1 XBPM客户端调用方法说明 ? completeFirstTask (processdomain) ? 针对第一个Task节点完成的时候调用 ? 传入processdomain,针对第一个节点processdomain中必须设置如下项目: ? processDomain.setProcessKey(processKey)//流程定义key ? processDomain.setAssignee(userId);//当前经办人员id ? processDomain.setSyab003(syab003);//经办人员所在分中心 ? processDomain.setByab003(byab003);//参保人员所在分中心 ? processDomain.setBusinessMainObj(key1); //业务主键 ? completeTask (processdomain) ? 非第一个Task节点完成的时候调用 ? 传入processdomain,针对第一个节点processdomain中必须设置如下项目: ? processDomain.setTaskId(taskId);//任务id ? getVariable(tasked,“变量名”); 通过界面获取到当前任务id String taskId = cForm.getDtoAsString(XbpmClientService.TASKID); 根据 任务id来获取流程变量 String userid = (String)xbpmClientService.getVariable(taskId, \); ? isBoInProcessInstance(processKey, key) //判断是否此人已经有该流程在办理 String processKey = dto.getParamAsStr(ProcessTempleteService.PROCESSKEY); Key key = new Key(); key.put(\, userid); boolean inProcessInstance = xbpmClientService.isBoInProcessInstance(processKey, key); if (inProcessInstance) { } throw new AppException(\此人已有该流程在办理,请核实\); 5.6 电子档案集成开发 待完善….. 5.7 Task节点参与者策略配置 以developer用户登录,找到流程管理->流程参与者定义,如下图 找到需要定义的流程点“定义”图标,下面的流程图会变成选择的流程图。然后逐一对人工节点进行参与者策略的设置。比如单击“准备审批材料”节点,该节点的参与者为前一节点的操作者,那么在弹出的设置界面就可以设置为如下图: 针对“审批”节点我们可以设置它为某一角色来经办。比如我们设置为“审批岗”这一个角色,如下图: 对于上图标记的“是否限定参与者在经办对象所属分中心”的选项,如下解释: 这个选项主要是社保应用有分中心的概念,比如成都市锦江区的人可以到武侯区的某一社区经办机构去办理业务,那么该业务需要上级审批的时候,系统会根据该参保人所在分中心来确定审批任务应该是该分中心的审批人员来审批,而其他分中心同角色的审批人员不会看到这个任务。那么针对新农保的应用也可以这么理解,通过限定参与者在经办对象所 属分中心,A村人的业务职能由A村所在县的业务人员来处理,而其他县的同类角色的人看不到非本县人员的业务申请。 补充说明这个问题。 6 FAQ 6.1 报“业务主体Key不能为空“错误什么原因? 1、 请查看你的JSP页面的Form标签内是否引入了processInc.jsp文件。 2、 strutsconfig配置文件中actionform是否为ActionFormForXBPM。 3、 流程菜单配置的时候dto(_processName)后面是否加上了流程定义key。 6.2 前后节点均是同一参与人均有权限为什么不能自动跳转 到下一页面? 1、 可能是你的tomcat配置文件中的编码不是UTF-8,,请检查,如果不是请更改后,从新设 置流程每个节点的参与者策略。 2、 action在业务执行完后没有加入如下代码,而且service中必须在outputDTO中put进 去流程实例id。 if (outputDTO.get(\) != null) { ActionForward forward = xbpmClientService.getForward(us.getUser().getUserId(), outputDTO.getAsString(\)); } if (forward != null) { } return (forward); 6.3 节点结束后下一结点的参与人为什么任务台没显示? 1、 下一节点没有设置参与者策略 2、 可能是你的tomcat配置文件中的编码不是UTF-8,,请检查,如果不是请更改后,从新设 置流程每个节点的参与者策略。