Flowable框架中常用的Service对应的表

TaskService:用于操作与任务相关的表,这些表包括主要的任务管理表和其它关联表

        作为Flowable框架中常用的service对象,从名字可以看出对应的是act_ru_task表。其中可以操作六张表如:ACT_HI_TASKINST 、ACT_RU_IDENTITYLINK 、ACT_HI_IDENTITYLINKACT_RU_VARIABLEACT_HI_VARINST 表。

下面只详细介绍其中三个运行时的表

1.ACT_RU_TASK :运行时流程任务节点表,常用于查询人员或部门待办任务时使用。该表保存当前流程运行到达的任务节点,保存节点名称,节点的key值(BPMN中的节点ID值)等。这里要注意的是,每次流程办理之后,该数据对应的主键ID会变化。其中,当我们发起一个流程的时候,该表会对应生成一条数据,其中 PROC_INST_ID_ 字段就是当前流程的唯一标识,我称之为流程业务实例ID。 该ID在这次流程中会作为全局唯一标识,当流程结束后保存至历史任务表中。

2.ACT_RU_IDENTITYLINK :运行时身份关联表。用于查询参与者、候选者、候选组等信息。该表的TYPE_字段有 participant:当前任务的参与者,candidate:候选者,starter:流程发起人,assigne:处理人、委派人。该表中的TASK_ID有时候为空则表示当前流程节点还未分配候选任务,而已经分配的任务则有值。

3.ACT_RU_VARIABLE :运行时流程变量表(这个表是个好东西),该表存储一个流程中所有的相关信息变量。如流程发起的表单值、流程办理的审理信息之类都会存储到该表中。如果你的流程设定了监听器,可以把该监听器的某些数据存储在这个表中,或者从这个表中获取流程设定的值。如果你的BPMN中使用了占位符,在发起的时候表单key对应就可以直接替换。(如果想详细了解请看下篇)

RepositoryService用于管理和操作流程定义(Process Definition)相关的信息,包括流程定义的部署、查询、删除等操作

1.ACT_RE_DEPLOYMENT :部署表,用于存储流程定义的部署信息。主要保存部署ID、部署类别、部署时间、部署名称。在部署时会将该流程的BPMN和流程图存储至act_ge_bytearray表中。

2.ACT_RE_PROCDEF: 流程定义表,存储流程定义的相关信息。如流程名称、流程的KEY、部署ID等,其中主键ID是流程的 KEY:版本号:UUID

3.ACT_GE_BYTEARRAY :字节数组表,该表用于存储流程定义文件、流程图等二进制文件

4.ACT_GE_PROPERTY:属性表,用于存储流程引擎的各种属性配置信息。切记,该表不要清理数据,否则你的项目无法启动。

RuntimeService:用于管理和操作流程的实例的主要对象,它提供了一系列的API来启动、查询、完成和删除流程实例以及管理流程变量等操作

看该对象的名字就能看出是用来操作ACT_RU表数据的,以下只粗略介绍其他两个ru表

ACT_RU_EXECUTION :执行表,存储流程实例和执行实例的运行时数据,记录运行时流程运行的各个分支信息,当没有子流程时,其数据和act_ru_task一样。

ACT_RU_JOB:运行时任务数据表,存储流程的定时任务信息

以下罗列一些常用的API方法

repositoryService.createProcessDefinitionQuery().latestVersion().active()
.orderByProcessDefinitionKey().asc()

createProcessDefinitionQuery():创建一个流程部署查询对象,类似MybatisPlus的Query

latestVersion():最薪版本

active():状态为激活

orderByProcessDefinitionKey():根据流程实例ID排序

asc():正序

deploymentId():根据部署ID查询

singleResult():返回查询数据

getBpmnModel(definitionId):根据流程定义ID查询该流程的BpmnModel对象

BpmnModel:可以理解为你画流程图的那个bpmn文件解析后的一个对象,本质就是bpmn文件

runtimeService

startProcessInstanceById(ProcessDefinitionId,Map):根据流程定义ID和流程变量启动流程

map就是往act_ru_variable表中存储的流程变量数据,用键值对的方式存储,

setVariable(processInstanceId,key,value):根据流程实例ID存储流程变量。

getVariable(processInstanceId,variableName ):流程执行实例ID和变量名获取变量

getVariables(executionId):获取流程所有变量。参数为流程业务实例ID

deleteProcessInstance(instanceId, deleteReason);删除流程实例,参数为流程实例ID,删除原因createChangeActivityStateBuilder():用于创建一个用于更改活动状态的构建器(builder)对象。这个构建器对象用于定义和执行对流程活动状态的改变操作。

processInstanceId(ProcessInstanceId):根据流程实例ID

moveExecutionsToSingleActivityId(executionIds,endId)用于将指定的执行(executions)移动到单个活动(activity)的ID。endId:结束节点ID

TaskService

taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult():创建Task查询对象,根据运行流程ID获取该运行流程对象

taskService.addComment(taskId,procInsId,type, comment); 向该流程添加评论,参数分别为:流程ID、流程实例ID、评论类型、评论内容

setAssignee(taskId,userId):设置处理人

complete(taskId,map,boolean flag):方法用于完成一个任务,使其进入下一个流程步骤 。参数分别为流程ID,流程变量,布尔值:用于指示是否仅在当前任务的本地范围内设置变量。如果设置为 true,变量将只在当前任务的范围内可见和使用;如果为 false,变量将在整个流程实例中可见和使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值