一、ProcessEngine
ProcessEngine 是 Flowable 引擎的核心对象,它是流程引擎的主入口,负责与各个服务进行交互和管理流程的整个生命周期。ProcessEngine 提供了各种方法和服务,以便于我们与流程引擎进行交互和操作。
下面是 ProcessEngine 的部分方法的详细说明:
startExecutors:启动所有流程引擎中的执行器。执行器用于处理流程实例的执行,在引擎启动时,执行器会自动运行并处理待办任务和定时任务。
getRepositoryService:获取流程仓库服务对象(RepositoryService)。用于管理流程定义的部署和查询。
getRuntimeService:获取运行时服务对象(RuntimeService)。用于操作流程的运行时数据,如启动流程实例、执行流程任务、查询流程实例状态等。
getFormService:获取表单服务对象(FormService)。用于管理表单数据和处理与表单相关的操作,如获取表单内容、保存表单数据等。
getTaskService:获取任务服务对象(TaskService)。用于管理任务数据和处理与任务相关的操作,如创建任务、完成任务、查询任务列表等。
getHistoryService:获取历史数据服务对象(HistoryService)。用于访问和查询流程的历史数据,如查询已完成的流程实例、查询历史任务等。
getIdentityService:获取身份验证和授权服务对象(IdentityService)。用于管理用户、组、角色等身份信息,以及进行权限和身份验证的操作。
getManagementService:获取管理服务对象(ManagementService)。用于进行底层的引擎管理和操作,如数据库管理、作业管理、引擎配置等。
getDynamicBpmnService:获取动态 BPMN 服务对象(DynamicBpmnService)。用于动态修改流程定义的流程元素,如添加活动、删除活动、修改连线等。
getProcessMigrationService:获取流程迁移服务对象(ProcessMigrationService)。用于支持流程定义的迁移操作,如迁移流程实例、修改流程定义版本等。
getProcessEngineConfiguration:获取流程引擎的配置对象(ProcessEngineConfiguration)。可以通过配置对象进行流程引擎的详细配置和定制,如数据库配置、作业调度配置、缓存配置等。
通过 ProcessEngine 对象,我们可以获取并使用各个服务对象对流程进行管理和操作。可以使用 RepositoryService 进行流程定义的部署和查询,使用 RuntimeService 处理运行时的流程实例和任务,使用 TaskService 进行任务的创建和处理,使用 HistoryService 访问流程的历史数据等。同时,通过 ProcessEngineConfiguration 可以对流程引擎进行更详细的配置和定制。
二、RepositoryService
RepositoryService 是 Flowable 引擎中的服务之一,用于管理流程定义的部署和查询。它提供了一系列方法,用于管理流程定义的生命周期、与流程定义相关的资源、以及对流程定义的查询操作。
下面是 RepositoryService 的部分方法的详细说明:
createDeployment:创建一个流程部署。通过该方法可以将流程定义的相关文件(如 BPMN 文件和表单文件)进行打包并进行部署。返回一个 DeploymentBuilder 对象,可以进行更多的设置和操作,之后可以通过调用 deploy 方法进行真正的部署操作。
deleteDeployment:删除指定的流程部署。可以选择级联删除相关的流程实例、历史数据等。如果指定了级联删除选项,则会同时删除与该部署相关的流程实例、历史数据、任务等。
setDeploymentCategory:为指定的流程部署设置分类。可以用来给部署定义一个分类,便于对部署进行归类和组织管理。
setDeploymentKey:为指定的流程部署设置关键字。可以用来给部署定义一个唯一的关键字,便于后续对部署进行标识和引用。
getDeploymentResourceNames:获取指定流程部署的资源名称列表。返回一个包含资源名称的列表,如 BPMN 文件、表单文件、图片等。
getResourceAsStream:获取指定流程部署中的资源流。通过资源名称(如 BPMN 文件名)可以获取资源的输入流,实现对资源的读取和处理。
changeDeploymentTenantId:修改指定流程部署的租户 ID。可以将一个流程部署从一个租户迁移到另一个租户,或者为一个流程部署设置租户 ID。
changeDeploymentParentDeploymentId:修改指定流程部署的父部署 ID。可以将一个流程部署设为另一个流程部署的子部署,实现流程部署的组织和管理。
createProcessDefinitionQuery:创建一个流程定义查询对象。可以通过该查询对象对流程定义进行条件过滤、排序等操作。
createNativeProcessDefinitionQuery:创建一个原生 SQL 的流程定义查询。可以使用原生的 SQL 语句对流程定义进行查询。
createDeploymentQuery:创建一个流程部署查询对象。可以通过该查询对象对流程部署进行条件过滤、排序等操作。
createNativeDeploymentQuery:创建一个原生 SQL 的流程部署查询。可以使用原生的 SQL 语句对流程部署进行查询。
suspendProcessDefinitionById:暂停指定 ID 的流程定义。暂停后,将无法启动该流程定义的新流程实例,已经运行中的流程实例将继续执行。
activateProcessDefinitionById:激活指定 ID 的流程定义。激活后,可以启动该流程定义的新流程实例。
setProcessDefinitionCategory:设置指定流程定义的分类。可以为流程定义设置一个分类,便于对流程进行归类和组织。
getProcessModel:获取指定流程定义的 BPMN 模型。返回一个对象表示流程定义的 BPMN 模型,可用于解析和处理流程定义的各个元素。
getProcessDiagram:获取指定流程定义的流程图。返回一个流程图的输入流,通常可用于展示和显示流程定义的流程图。
getProcessDefinition:获取指定流程定义的详细信息。返回一个 ProcessDefinition 对象,包含了流程定义的各个属性和元数据。
isFlowable5ProcessDefinition:判断指定流程定义是否为 Flowable 5 版本的流程定义。
isProcessDefinitionSuspended:判断指定流程定义是否被暂停。
getBpmnModel:获取指定流程定义的 BPMN 模型。
getProcessDiagramLayout:获取指定流程定义的流程图布局信息,包括各个节点的位置和连线的路由信息。
getAppResourceObject:获取指定 App 部署的资源文件。
getAppResourceModel:获取指定 App 部署的资源文件,并解析为 AppModel 对象。
newModel:创建一个新的模型。
saveModel:保存模型。
deleteModel:删除指定的模型。
addModelEditorSource:向指定模型添加编辑器源码。
addModelEditorSourceExtra:向指定模型添加附加的编辑器源码。
createModelQuery:创建一个模型查询对象。
createNativeModelQuery:创建一个原生 SQL 的模型查询。
getModel:获取指定 ID 的模型。
getModelEditorSource:获取指定模型的编辑器源码。
getModelEditorSourceExtra:获取指定模型的附加编辑器源码。
addCandidateStarterUser:为指定流程定义添加候选启动用户。
addCandidateStarterGroup:为指定流程定义添加候选启动用户组。
deleteCandidateStarterUser:从指定流程定义中删除候选启动用户。
deleteCandidateStarterGroup:从指定流程定义中删除候选启动用户组。
getIdentityLinksForProcessDefinition:获取与指定流程定义相关的身份链接。
validateProcess:验证指定的流程定义的 BPMN 文件是否有效。
getDecisionsForProcessDefinition:获取与指定流程定义相关的决策表。
getDecisionTablesForProcessDefinition:获取与指定流程定义相关的规则表单。
getFormDefinitionsForProcessDefinition:获取与指定流程定义相关的表单定义。
这些方法提供了对流程定义和部署的管理和查询能力,可以进行流程定义的部署、删除、挂起、激活等操作,以及对流程定义的查询和获取相关信息的功能。
三、RuntimeService
RuntimeService是Flowable引擎中的一个服务接口,用于管理流程实例的运行时状态和相关操作。下面是提供的方法的详细说明:
createProcessInstanceBuilder:创建一个流程实例构建器,用于构建流程实例的启动参数。
startProcessInstanceByKey:根据流程定义的键启动一个流程实例。该方法会自动选择最新版本的流程定义进行启动。
startProcessInstanceByKeyAndTenantId:根据流程定义的键和租户ID启动一个流程实例。租户ID可用于多租户环境中对流程实例进行区分。
startProcessInstanceById:根据流程定义的ID启动一个流程实例。
startProcessInstanceWithForm:根据带有表单数据的流程定义启动一个流程实例。启动时可以传入表单数据作为流程实例的初始变量。
startProcessInstanceByMessage:根据消息触发启动一个流程实例。通过指定消息名称来触发相应的流程实例启动事件。
这些启动流程实例的方法允许将流程实例与相关的流程定义进行关联,并且可以根据键值、ID、租户ID、消息名称等方式进行启动。
deleteProcessInstance:删除指定ID的流程实例。该方法会删除对应流程实例的所有相关数据,包括运行时数据、历史数据等。
bulkDeleteProcessInstances:批量删除符合条件的流程实例。可以根据不同的查询条件删除满足条件的多个流程实例。
getActiveActivityIds:获取指定流程实例ID当前活动的活动ID列表。可用于查询当前正在执行的活动节点。
trigger:触发指定ID的流程实例的等待状态。用于向等待或暂停状态的流程实例发送信号,使其继续执行。
evaluateConditionalEvents:根据给定的条件评估触发事件的流程实例。根据条件判断是否满足触发事件的条件,并返回满足条件的流程实例列表。
updateBusinessKey:更新指定ID的流程实例的业务键。业务键用于标识流程实例的业务关联信息。
updateBusinessStatus:更新指定ID的流程实例的业务状态。用于更新流程实例的业务状态信息。
setOwner:设置指定ID的流程实例的所有者。可以将流程实例分配给某个用户作为所有者。
removeOwner:移除指定ID的流程实例的所有者。将所有者从流程实例中移除。
setAssignee:设置指定ID的流程实例的办理人。指定某个用户作为流程实例的负责人。
removeAssignee:移除指定ID的流程实例的办理人。将流程实例的负责人信息清空。
addUserIdentityLink:给指定ID的流程实例添加用户身份链接。可以将用户与流程实例建立关联,如候选人、参与者等。
addGroupIdentityLink:给指定ID的流程实例添加用户组身份链接。可以将用户组与流程实例建立关联,如候选组、参与组等。
deleteUserIdentityLink:删除指定ID的流程实例的用户身份链接。删除与用户之间的关联关系。
deleteGroupIdentityLink:删除指定ID的流程实例的用户组身份链接。删除与用户组之间的关联关系。
getIdentityLinksForProcessInstance:获取指定ID的流程实例的身份链接。查询与流程实例相关的所有身份链接信息。
getVariables:获取指定ID的流程实例的流程变量。查询流程实例的所有流程变量。
上述方法提供了丰富的流程管理和状态更新的功能,可以方便地对流程实例进行操作和查询。其他方法的作用请参考Flowable官方文档或相关API文档。
四、FormService
FormService是Flowable引擎中的一个服务接口,用于处理表单相关的操作和数据。下面是提供的方法的详细说明:
getStartFormData:获取给定流程定义的启动表单数据。该方法返回一个StartFormData对象,可以用于获取表单字段、表单属性等信息。
getRenderedStartForm:获取给定流程定义的启动表单的HTML渲染结果。该方法返回一个String类型的HTML字符串,可以直接在前端页面展示。
submitStartFormData:提交给定流程定义的启动表单数据。该方法将表单数据作为变量,启动一个新的流程实例。
getTaskFormData:获取给定任务的表单数据。该方法返回一个TaskFormData对象,用于获取表单字段、表单属性等信息。
getRenderedTaskForm:获取给定任务的表单的HTML渲染结果。该方法返回一个String类型的HTML字符串,可以直接在前端页面展示。
submitTaskFormData:提交给定任务的表单数据。该方法将表单数据更新到相关任务,并推进流程的执行。
saveFormData:保存给定任务的表单数据。该方法将数据保存到任务的表单字段中,但不推进流程的执行。
getStartFormKey:获取给定流程定义的启动表单的表单Key。表单Key对应于流程定义的启动节点中配置的表单。
getTaskFormKey:获取给定任务的表单的表单Key。表单Key对应于流程定义中任务节点中配置的表单。
FormService提供了处理流程表单的相关功能,包括获取表单数据、渲染表单、提交表单数据等操作。通过这些方法,可以方便地与流程实例和任务的表单进行交互。请注意,表单数据的处理需要与前端页面进行协调,前端页面需按照Flowable表单的规范进行设计和实现。
五、TaskService
TaskService是Flowable引擎中的一个服务接口,用于处理任务相关的操作和数据。下面是提供的方法的详细说明:
newTask:创建一个新的任务。该方法返回一个新创建的Task对象,可以通过该对象设置任务的属性。
createTaskBuilder:创建一个任务构建器。可以使用该构建器来设置任务的各个属性,并最终创建一个新的任务。
createTaskCompletionBuilder:创建一个任务完成构建器。可以使用该构建器来设置任务完成时的附加参数,如表单数据、注释等。
saveTask:保存任务的更新。该方法将任务对象的属性变化保存到数据库中。
bulkSaveTasks:批量保存多个任务的更新。将多个任务的属性变化批量保存到数据库中。
deleteTask:删除指定ID的任务。该方法将删除指定ID的任务及其相关数据。
deleteTasks:批量删除多个任务。将满足条件的多个任务及其相关数据删除。
claim:认领指定ID的任务。该方法将指定ID的任务分配给当前用户。
unclaim:取消认领指定ID的任务。将指定ID的任务从当前用户那取消分配。
complete:完成指定ID的任务。将指定ID的任务设置为已完成状态。
delegateTask:委派指定ID的任务给另一个用户。将指定ID的任务转交给另一个用户处理。
resolveTask:解决指定ID的任务。将指定ID的任务从委派状态转回到正常处理状态。
completeTaskWithForm:使用表单数据完成指定ID的任务。将表单数据作为变量,完成指定ID的任务。
getTaskFormModel:获取指定任务的表单模型。可以获取任务的表单字段、属性等信息。
setAssignee:设置指定ID的任务的负责人。将指定ID的任务分配给指定用户。
setOwner:设置指定ID的任务的所有者。将指定ID的任务设置为指定用户的所有者。
getIdentityLinksForTask:获取指定ID的任务的身份链接。查询与指定任务相关的所有身份链接信息。
addCandidateUser:为指定ID的任务添加候选用户。将指定用户添加为指定任务的候选人。
addCandidateGroup:为指定ID的任务添加候选用户组。将指定用户组添加为指定任务的候选组。
addUserIdentityLink:为指定ID的任务添加用户身份链接。将指定用户与指定任务建立关联。
addGroupIdentityLink:为指定ID的任务添加用户组身份链接。将指定用户组与指定任务建立关联。
deleteCandidateUser:从指定ID的任务中删除候选用户。将指定用户从指定任务的候选人列表中移除。
deleteCandidateGroup:从指定ID的任务中删除候选用户组。将指定用户组从指定任务的候选组列表中移除。
deleteUserIdentityLink:删除指定ID的任务的用户身份链接。将与指定用户的关联链接从指定任务中删除。
deleteGroupIdentityLink:删除指定ID的任务的用户组身份链接。将与指定用户组的关联链接从指定任务中删除。
setPriority:设置指定ID的任务的优先级。设置任务的优先级属性。
setDueDate:设置指定ID的任务的截止日期。设置任务的截止日期属性。
createTaskQuery:创建一个任务查询对象。用于条件查询任务。
createNativeTaskQuery:创建一个原生SQL的任务查询对象。使用原生SQL语句查询任务。
setVariable:设置指定ID的任务的变量。为指定任务设置一个变量。
setVariables:设置指定ID的任务的多个变量。为指定任务设置多个变量。
setVariableLocal:设置指定ID的任务的本地变量。为指定任务设置一个本地变量。
setVariablesLocal:设置指定ID的任务的多个本地变量。为指定任务设置多个本地变量。
getVariable:获取指定ID的任务的变量。获取指定任务的一个变量。
getVariableInstance:获取指定ID的任务的变量实例。获取指定任务的一个变量实例。
hasVariable:判断指定ID的任务是否包含某个变量。判断指定任务是否包含某个变量。
getVariableLocal:根据作用范围获取指定ID的任务的变量。获取指定任务的一个本地变量。
getVariables:获取指定ID的任务的所有变量。获取指定任务的所有变量。
getVariableInstances:获取指定ID的任务的所有变量实例。获取指定任务的所有变量实例。
removeVariable:移除指定ID的任务的变量。移除指定任务的一个变量。
removeVariables:移除指定ID的任务的多个变量。移除指定任务的多个变量。
getDataObjects:获取指定ID的任务的数据对象。获取指定任务的所有数据对象。
getDataObject:获取指定ID的任务的数据对象。获取指定任务的一个数据对象。
addComment:为指定ID的任务添加注释。为指定任务添加一条注释。
saveComment:保存注释的更新。将注释对象的属性变化保存到数据库中。
getComment:获取指定ID的注释。根据注释的ID获取注释对象。
deleteComments:批量删除多个注释。将满足条件的多个注释及其相关数据删除。
getTaskComments:获取指定ID的任务的注释。查询与指定任务相关的所有注释信息。
getCommentsByType:根据注释类型获取指定ID的任务的注释。根据注释类型查询指定任务的注释信息。
getTaskEvents:获取指定ID的任务的事件。查询与指定任务相关的所有事件信息。
getEvent:获取指定ID的事件。根据事件的ID获取事件对象。
createAttachment:创建一个附件。创建一个任务附件。
getAttachment:获取指定ID的附件。根据附件的ID获取附件对象。
getAttachmentContent:获取指定ID的附件的内容。根据附件的ID获取附件的内容。
getTaskAttachments:获取指定ID的任务的附件。查询与指定任务相关的所有附件信息。
getSubTasks:获取指定ID的任务的子任务。查询指定任务的所有子任务。
TaskService提供了处理任务的相关功能,包括创建、更新、删除任务,任务分派和完成,获取和设置任务属性,处理任务变量和表单绑定,添加和删除候选人、候选组等操作。通过这些方法,可以方便地与流程实例和任务进行交互。请注意,在处理任务时需要考虑权限、引擎配置和流程定义的约束。
六、HistoryService
HistoryService是Flowable引擎中的一个服务接口,用于查询和管理流程实例、任务和变量的历史数据。下面是提供的方法的详细说明:
createHistoricProcessInstanceQuery:创建一个历史流程实例查询对象。用于条件查询历史流程实例。
createHistoricActivityInstanceQuery:创建一个历史活动实例查询对象。用于条件查询历史活动实例。
createHistoricTaskInstanceQuery:创建一个历史任务实例查询对象。用于条件查询历史任务实例。
createHistoricDetailQuery:创建一个历史明细查询对象。用于条件查询历史明细数据。
createNativeHistoricDetailQuery:创建一个原生SQL的历史明细查询对象。使用原生SQL语句查询历史明细数据。
createHistoricVariableInstanceQuery:创建一个历史变量实例查询对象。用于条件查询历史变量实例。
createNativeHistoricVariableInstanceQuery:创建一个原生SQL的历史变量实例查询对象。使用原生SQL语句查询历史变量实例。
deleteHistoricTaskInstance:删除指定ID的历史任务实例。删除历史任务实例及其相关数据。
deleteHistoricProcessInstance:删除指定ID的历史流程实例。删除历史流程实例及其相关数据。
bulkDeleteHistoricProcessInstances:批量删除多个历史流程实例。删除满足条件的多个历史流程实例及其相关数据。
deleteTaskAndActivityDataOfRemovedHistoricProcessInstances:删除已删除历史流程实例的任务和活动数据。
deleteRelatedDataOfRemovedHistoricProcessInstances:删除已删除历史流程实例的相关数据。
createNativeHistoricProcessInstanceQuery:创建一个原生SQL的历史流程实例查询对象。使用原生SQL语句查询历史流程实例数据。
createNativeHistoricTaskInstanceQuery:创建一个原生SQL的历史任务实例查询对象。使用原生SQL语句查询历史任务实例数据。
createNativeHistoricActivityInstanceQuery:创建一个原生SQL的历史活动实例查询对象。使用原生SQL语句查询历史活动实例数据。
getHistoricIdentityLinksForTask:获取指定ID的任务的历史身份链接。查询与指定任务相关的所有历史身份链接信息。
getHistoricIdentityLinksForProcessInstance:获取指定ID的流程实例的历史身份链接。查询与指定流程实例相关的所有历史身份链接信息。
getHistoricEntityLinkChildrenForProcessInstance:获取指定ID的流程实例的历史实体链接的子链接。查询与指定流程实例相关的所有历史实体链接的子链接信息。
getHistoricEntityLinkChildrenWithSameRootAsProcessInstance:获取与指定流程实例根链接具有相同根链接的历史实体链接的子链接。
getHistoricEntityLinkChildrenForTask:获取指定ID的任务的历史实体链接的子链接。查询与指定任务相关的所有历史实体链接的子链接信息。
getHistoricEntityLinkParentsForProcessInstance:获取指定ID的流程实例的历史实体链接的父链接。查询与指定流程实例相关的所有历史实体链接的父链接信息。
getHistoricEntityLinkParentsForTask:获取指定ID的任务的历史实体链接的父链接。查询与指定任务相关的所有历史实体链接的父链接信息。
createProcessInstanceHistoryLogQuery:创建一个流程实例历史日志查询对象。用于条件查询流程实例历史日志。
deleteHistoricTaskLogEntry:删除指定ID的历史任务日志条目。删除历史任务日志条目及其相关数据。
createHistoricTaskLogEntryBuilder:创建一个历史任务日志条目构建器。用于创建自定义的历史任务日志条目。
createHistoricTaskLogEntryQuery:创建一个历史任务日志查询对象。用于条件查询历史任务日志。
createNativeHistoricTaskLogEntryQuery:创建一个原生SQL的历史任务日志查询对象。使用原生SQL语句查询历史任务日志数据。
HistoryService提供了查询和管理历史数据的功能,包括查询历史流程实例、活动实例、任务实例、明细数据和变量实例,删除历史任务实例、流程实例和相关数据,以及获取历史身份链接、实体链接和任务日志等信息。通过这些方法,可以方便地获取和处理与历史数据相关的信息。
请注意,在使用HistoryService的方法时,需要确保Flowable引擎已配置为记录历史数据,并且对于某些操作(如删除历史数据),可能需要相应的权限和授权。
flowable的ProcessEngine2:https://developer.aliyun.com/article/1548819