前段时间,刚刚完成一个动态会签的,现在有点空,补上思路

流程图:

 
 流程文件:

               <task-node name="签发" ><task name="签发" swimlane="qianfa"><controller><variable name="PAGE_RESULT" mapped-name="qianfa"></variable><!-- 如果选择了会签人员(多个以","分隔),将保存到以下变量中 --><variable name="signmanid" mapped-name="signmanid"></variable><variable name="firstCollectiveSignmanid" mapped-name="firstCollectiveSignmanid"></variable><variable name="outsignmanid" mapped-name="outsignmanid"></variable><!-- 是否需要会签 --><variable name="needCollectiveSign" mapped-name="needCollectiveSign"></variable></controller>      </task><transition to="需要会签"></transition></task-node><decision name="需要会签"><transition to="会签" name="是test"><condition expression="#{needCollectiveSign eq 'yes'}"></condition></transition><transition to="接收" name="否"><condition expression="#{needCollectiveSign eq 'no'}"></condition></transition></decision><!-- 定义了有等待概念的,并不会自动创建的任务节点,同时添加进入事件 --><task-node name="会签" signal="last-wait" create-tasks="false">   <event type="node-enter">   <action name="createInstance"    class="cn.org.test.process.handler.action.CreateCollectSignInstanceHandler"/>   </event>   <task name="会签">   <controller>   <variable name="PAGE_RESULT" mapped-name="huiqian"></variable>   </controller>   </task>   <transition to="join1"></transition>   </task-node><!-- join自动结点,自动汇集多个token,等所有token都到达后,会自动触发transition,进行流向 --><join name="join1"><transition to="接收"></transition></join>

java(cn.org.test.process.handler.action.CreateCollectSignInstanceHandler)

/*** 动态创建会签节点* 根据会签角色定义的人员动态创建会签节点* * * @author zhujie**/
public class CreateCollectSignInstanceHandler implements ActionHandler  {/*** */private static final long serialVersionUID = 1L;protected Log logger = LogFactory.getLog(getClass());//签发人private static final String SIGNMANID = "signmanid";//第一会签人private static final String FIRSTCOLLECTIVESIGNMANID = "firstCollectiveSignmanid";//会签人private static final String OUTSIGNMANID = "outsignmanid";private static final String NODE_COLLECT_SIGN_AUDITING = "会签";/* (non-Javadoc)* @see org.jbpm.graph.def.ActionHandler#execute(org.jbpm.graph.exe.ExecutionContext)*/public void execute(ExecutionContext context) throws Exception {//TODO: 根据会签角色定义的人员动态创建会签节点//任务Token token = context.getToken();TaskMgmtInstance tmi = context.getTaskMgmtInstance();TaskNode taskNode = (TaskNode)context.getNode();//流程实例IDProcessInstance processInc = context.getProcessInstance();Long processInsId = processInc.getId();logger.debug("processInc Id :"+processInsId);// 如果选择了会签人员(多个以","分隔),将保存到以下变量中String collectSignUserIds = ""; //第一会签人String firstcollectivesignmanid = (String) context.getVariable(FIRSTCOLLECTIVESIGNMANID);if(StringUtils.isEmpty(firstcollectivesignmanid) == false)collectSignUserIds += firstcollectivesignmanid;//会签人String outsignmanid = (String) context.getVariable(OUTSIGNMANID);if(StringUtils.isEmpty(outsignmanid) == false){if(StringUtils.isEmpty(collectSignUserIds))collectSignUserIds += outsignmanid;elsecollectSignUserIds += "," + outsignmanid;}String[] userIds = collectSignUserIds.split(",");//处理自定义流程任务表WorkflowTaskManager workflowTaskManager = (WorkflowTaskManager) ServiceLocator.getBean("workflowTaskManager");for(String userid : userIds){//要创建的节点名称Task task = taskNode.getTask(NODE_COLLECT_SIGN_AUDITING);//从数据表中读取执行人员的ID创建任务实例TaskInstance taskInstance = tmi.createTaskInstance(task,token);taskInstance.setActorId(userid);logger.debug("managerId Id :"+userid);//处理自定义流程任务表workflowTaskManager.saveCreateTaskNodeAfter(processInsId, taskInstance.getId(),NODE_COLLECT_SIGN_AUDITING, new String[] {userid});}}
}

jbpm工作流动态会签相关推荐

  1. java activiti jbpm_activiti和jbpm工作流引擎哪个比较好?

    原标题:activiti和jbpm工作流引擎哪个比较好? 在常用的ERP系统.OA系统的开发中,工作流引擎是一个必不可少的工具.之前在选择工作流引擎时曾经在activiti和jbpm之间有过比较,当时 ...

  2. JBPM工作流入门总结

    关于JBPM工作流 1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Eng ...

  3. 宅急送项目的第七天笔记!(JBPM工作流和介绍 -- 权限管理模型)

    一.回顾第一天核心内容  1. JBPM是什么? 为我的项目带来什么?  工作流, 就是将业务流程实现自动化,非人工方式,控制任务的执行 -------- 所有业务流程 执行信息 都可以存放到数据库 ...

  4. jbpm工作流(jBPM工作流组件设计分析)

    jbpm工作流会签 同意上面的说法,不过会签问题不只是jbpm才有的,很多工作流的软件都会遇到这个问题.会签可以说是工作流中的一个非常特殊的操作.实际流转举例说说吧: A办文,同时提交给B.C两个人办 ...

  5. 宅急送 项目第八天 JBPM工作流框架

    项目第八天和项目第九天 学习 JBPM 理论部分 项目第十天 权限管理模块 项目第十一天 项目第十二天 JBPM 应用 1. 工作流框架概述 1.1. 什么是工作流 工作流(Workflow),就是& ...

  6. 宅急送项目的第七天笔记!(JBPM工作流)

    宅急送项目的第七天  三个主要功能模块: 基础设置. 取派业务.中转配送业务 基础设置: 标准管理.取派员管理.区域设置.分区设置.定区管理 取派业务: 业务受理.工作单快速录入(追单.销单). 工作 ...

  7. 工作流引擎会签,加签,主持人,组长模式专题讲解

    第1章: 概要说明 关键字: ccflow 工作流引擎 会签,加签,主持人,多人处理规则 会签定义:会签就是多人在一个节点上表达意见,每个人只能在一个节点上填写一个意见. 我们提供两种模式的会签:协作 ...

  8. jBPM 工作流引擎可视化编辑器

    What is jBPM? JBPM,全称是Java Business Process Management(业务流程管理). https://www.jbpm.org/ jBPM is a tool ...

  9. Workflow JBPM 工作流

    2009-03-10 19:57 准备学习开源的工作流,这是我在别人日记上找的,介绍得很不错.跟大家一起分享. 一.工作概述 主要的工作时间花在以下几个方面,它们也是学习.研究工作流的一般途径: 1. ...

最新文章

  1. 风向丨2018,AI 突围
  2. 学python编程-趣学Python编程
  3. Android 动态设置 layout_centerInParent
  4. Redis缓存,你真的懂了吗
  5. RabbitMq(十) 消息过期时间TTL介绍以及代码实现
  6. mvc 项目 webconfig 打开错误_Spring体系常用项目一览
  7. windows上传文件到linux乱码解决
  8. SQL Server 加密案例解析
  9. docker配置网易云镜像
  10. 计算机ping使用的端口,mac系统ping端口命令怎么使用
  11. 终端的乐趣--Linux下有趣的终端命令或者工具【转】
  12. 常用域名控制面板地址
  13. zblog php修改代码,zblog模板建站新上线必须修改的优化代码
  14. Enchanted —— Taylor Swift
  15. chrome主页篡改修复
  16. 工程项目管理思维导图模板
  17. 2022 大一大二基础hive考试题
  18. 什么是数据仓库的主题
  19. 计算机itunes无法安装,itunes无法安装电脑
  20. 敬自由:破壁人华为,开启PC的无界探索

热门文章

  1. php如何让图片铺满屏幕,如何解决js获取屏幕大小并且让图片自适应的方法
  2. 安装教程之JDK下载与安装
  3. 《零起点,python大数据与量化交易》
  4. 数据库连接池之自定义连接池(mysql)
  5. python给我做500份问卷
  6. 大数据面试题——数据库
  7. 软件测试之项目实战,必须知道的事与测试面试项目测试流程......
  8. 大数据技术在商业银行中的应用:场景、优势与对策
  9. DSM -- 软件安装
  10. java学习路线小白——架构师