springboot+Activiti7整合实践 (六) 启动流程(1)

系列文章目录

第一章 springboot+Activiti7整合实践 (一)

第二章 springboot+Activiti7整合实践 (二) 模型定义

第三章 springboot+Activiti7整合实践 (三) 流程定义

第四章 springboot+Activiti7整合实践 (四) 分配规则

第五章 springboot+Activiti7整合实践 (五) 发布流程


文章目录


前言

此章节内容为发布流程的启动,即生成流程实例,基于我们的设计思路,规则分配是由我们外部定义的,如何设置到工作流程中,则需要修改工作流原有的设置逻辑,所以启动流程这部分内容,我们分为两个章节来讲解,此章节内容为流程启动,下一章节内容就是工作流的分配规则改造(自定义用户任务行为)。


一、启动流程

1.创建业务流程表单

  流程的启动以一个业务表单的添加操作触发,表单内容随意,表单的主要字段要包含ProcessInstanceId即流程实例id,使业务与工作流实例关联,流程的启动也同样也选择关联业务主键的方式启动。

public void save(WorkflowP1 entity, String userId) {
        entity.insertInit(userId);
        entity.setStatus("0");
        Map<String, Object> variables = new HashMap<>();
        variables.put("routeType", entity.getType());

        ProcessInstance processInstance = processInstanceService.startProcess(entity.getPdKey(),entity.getId(),entity.getTitle(),variables);

        entity.setInstanceId(processInstance.getProcessInstanceId());
        entity.setStartUserId(userId);
        save(entity);
    }

这里的variables为业务流程中所需的参数,我们暂时未用到,可以传一个空的map。

2.启动流程

    /**
     * 启动流程
     * */
    public  ProcessInstance startProcess(String key,String bussKey, String title,Map<String, Object> variables){

        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key, bussKey, variables);

        runtimeService.setProcessInstanceName(processInstance.getId(),title);

        return processInstance;
    }

 以上为业务启动流程,参数key为模型的唯一key值,在第一章第二章都有介绍,bussKey为业务主键id,就是我们业务表单所产生的id,titie为流程实例标题,为表单用户输入,这里的variables为业务流程中所需的参数,我们暂时未用到,可以传一个空的map。

用到的重要对象是runtimeService,是工作流提供的运行时的服务对象,通过调用startProcessInstanceByKey方法来启动一个流程实例。

二、工作流过程参数

1.uel表达式

在工作流流程图绘制过程中,我们可以对流程图右侧的属性面板进行一些设置,如设置代办人、设置分支流转条件,多数情况我们会在实际业务流程中,根据某个参数或审批通过与否来进行条件流转或动态的代办人分配,所以一般不会写死,而是会使用uel表达式,如果使用uel表达式,那么就需要在任务执行的过程中,为下一步需要使用到的参数,设置值,从而使工作流得以流转。

${routeType==2}

 如上图,我们的跳转流转设置为${routeType==2},还有一个分支设置为${routeType==1},那么在发布任务的开始时,需要对routeType设置实际值,1或者2,才能使工作流程流入规定的分支中。

2.其他示例

ruoyi 设置代办人

如上面ruoyi方式的代办人设置,则需要在代办人里面设置uel表达式,在进入到审核流程的上一步完成任务方法中,设置过程参数user,给定实际的用户id,才能使任务顺利进入到审核流程中。


总结

在写分享的时候,总怕分享地不够详细,让人看不懂,但转念想一想这个系统想写的主要内容也就是实践,至于需要掌握的工作流的基础知识,如常用api、bpmnjs的面板属性的设置等知识,我就默认大家都掌握了,如有看不明白的,可以先找找相关基础知识的文章学习。

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘一线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值