activti工作流的简单总结

activti工作流

分三部分介绍(工作流的定义,常使用的数据库表,Java代码)

工作流的定义

  1. 为什么需要使用工作流:
    简化操作,因为节点会很乱,多次操作数据库,而且更改很难,灵活性很差,所以我们需要用activti
  2. 工作流的方便之处:
    只需要操作常用的API,在与自己定义的业务表进行关联,达到自己的业务流程,无需去思考关于流程,只需要关注业务—就是咱们常说的解耦,类似于一个中间价,我们只需要引入固定的jar包通过maven,就可以快乐的去部署流程,去使用,这也是它的强大之处

常使用的数据库表

activti一般会帮我们生成25个常使用的表,以后我们只需要通过API去操作这25章表去控制各个的定义流程

SELECT * FROM act_re_deployment #流程定义部署表,记录流程部署信息
SELECT * FROM act_re_procdef #流程定义表,记录流程定义信息
SELECT * FROM act_ge_bytearray #资源表,bpmn,png文件存放位置
SELECT * FROM act_ru_identitylink     #任务的参与者
SELECT * FROM act_ru_execution #流程实例执行表,记录当前流程实例的执行情况  字段 BUSINESS_KEY 就是存放业务 KEY 的。
SELECT * FROM act_hi_procinst #流程实例历史表
SELECT * FROM act_hi_taskinst #任务历史表,记录所有任务
SELECT * FROM act_hi_actinst #活动历史表,记录所有活动
SELECT * FROM act_ru_variable #当前流程变量表 记录当前运行流程实例可使用的流程变量,包括 global 和 local 变量

Java代码实例

好了,说了这么多,我相信作为一名Java程序员,相信,更注重的是去实用,利用它去完成我们的业务

  1. 当使用一个中间件的时候,我们需要了解它的使用流程,就想我们敲代码的时候,要有一个流程,下面我说下大概流程:
    1)画图 -bpmn文件和png图像 (我们需要去定义流程)我们先部署一个简单的请假流程,大家也好理解
    请假流程
    2)部署 -filePath为你的文件目录
    private  RepositoryService  repositoryService;
    repositoryService.createDeployment().addInputStream(filePath, new FileInputStream(filePath)).deploy();

3)启动流程(流程开始工作),一般按照key启动,variables为流程变量,key为流程key,定义的时候可以与自己的业务表i主键id做关联,id为这个流程id

 // 启动流程时设置业务 key 
 ProcessInstance instance = runtimeService.startProcessInstanceByKey(key, id + "", variables);

4)任务节点执行(同时包含任务查询)

private TaskService  taskService;
//查询任务
  List<Task> taskList = taskService.createTaskQuery()
                    .processInstanceId(instanceId)
                    .list(); 
//完成任务
taskService.complete(taskId, variables);

5)任务之间传递参数,它可以传递基本数据类型,也可以传递对象,传递的对象必须序列化。–参数就是Map variables =new HashMap<>();
方案一:使用map封装。
​方案二:使用方法setVariable

pom.xml引入

       <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-rest-api</artifactId>
            <version>6.0.0</version>
        </dependency>
          <!-- 下面的pom为画bpmn的一些依赖,大家如果做简单测试,不需要引入-->
         <!--activiti modeler start-->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-json-converter</artifactId>
            <version>6.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.activiti</groupId>
                    <artifactId>activiti-bpmn-model</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- xml解析依赖-->
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-codec</artifactId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-css</artifactId>
            <version> 1.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-svg-dom</artifactId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-svggen</artifactId>
            <version>1.7</version>
        </dependency>
        <!-- xml解析依赖-->
        <!--activiti modeler end-->
    </dependencies>


        

以上是我刚刚学工作流的一些心得!希望小伙伴们可以对我的文章做出评价!明天就要上班了,祝大家工作顺利!

骚年,面对工作吧,哈哈哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值