activiti之流程变量

所谓的流程变量,大概也就是和咱们业务相关的数据,例如我要请假,那我得知道是谁在请假请假人是谁,也就是我要知道activiti的实体和咱们业务的javaBean如何关联起来。

       下边我们先看一下和流程变量的数据库表都有哪些,当然我们自己建的表的不说了,都是流程变量。哈哈。

       act_ru_task(正在执行的任务表)和act_hi_taskinst(正在执行的任务表)

       主要记录了正在执行的任务名称,流程实例ID,流程定义DI,任务的key,和流程变量信息。

 

      

          历史任务表记录的信息和正在执行的任务表信息都一样,区别就在于一个是全部的信息,一个事正在执行的任务相关信息。

       act_hi_comment

      因为是多用于对业务的操作,这个表主要记录了一些不同用于对同一个事件不同的看法,以方便其他用户做参考。例如请假,项目经理一说:我的员工老师加班,就得给家,主任也就直接给了。对吧。

    

      act_ru_execute(正在执行的实例表)注意business_key,这个字段是我们自定义的,我的方法就是实例 + “.” + "业务ID"


      act_ru_variable(正在执行的 流程定义表信息)

    

       好的,activiti提供的表有流程变量的就是这些表了,既然有了这些表,那么我们看一下这些表在我们业务实现的时候都是如何来运用的。下边我通过两个实例,一个是我在画流程图是写好流程实例,一个是运用javaBean来实现。

       简单实例

Activiti 6(也称为Camunda BPM)中,流程图里的变量通常是通过任务、用户交互或者其他流程元素来设置的。以下是设置变量的基本步骤: 1. **在业务流程定义文件(BPMN)**: 可以在流程图的任务或服务活动中添加用户输入字段(如Camunda Task Input Output),这将允许用户在完成任务时提供数据,这些数据会自动作为变量存储。 ```xml <serviceTask id="setVariableTask" camunda:expression="${inputVariableName}"> <camunda:inputOutput> <!-- 可以为输入和输出分别指定变量名 --> <camunda:inputParameter name="inputVarName">Some Value</camunda:inputParameter> <camunda:outputParameter name="outputVarName">${inputVarName}</camunda:outputParameter> </camunda:inputOutput> </serviceTask> ``` 2. **脚本活动**: 对于更复杂的逻辑,可以使用Script Task,并在JavaScript或其他支持的语言中设置变量。例如: ```xml <scriptTask id="javaScriptSetVariable"> <script>var variableValue = 'Hello'; // 设置变量值</script> <camunda:assignee>${userTask1.id}</camunda:assignee> </scriptTask> ``` 3. **通过API**: 如果你需要在运行时动态设置变量,你可以使用Camunda REST API或者客户端库来操作runtimeService实例来更新变量。 4. **流程监听**: 也可以通过实现`ExecutionListener`接口,监听流程实例的特定事件,在这些事件中设置变量。 记得在使用变量之前,需要先定义它们,可以在流程定义中使用`<variable>`标签声明全局变量,或者在每个任务级别定义局部变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值