flowable的ProcessEngine

一、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引擎已配置为记录历史数据,并且对于某些操作(如删除历史数据),可能需要相应的权限和授权。

七、IdentityService

IdentityService是Flowable引擎中的一个服务接口,用于管理用户、用户组和用户身份相关的数据,以支持流程实例和任务的身份识别和授权管理。下面是提供的方法的详细说明:

  • newUser:创建一个新的用户对象。

  • saveUser:保存用户对象到数据库中。如果用户已存在,则更新用户信息。

  • updateUserPassword:更新用户的密码。

  • createUserQuery:创建一个用户查询对象。用于条件查询用户。

  • createNativeUserQuery:创建一个原生SQL的用户查询对象。使用原生SQL语句查询用户。

  • deleteUser:删除指定ID的用户。

  • newGroup:创建一个新的用户组对象。

  • createGroupQuery:创建一个用户组查询对象。用于条件查询用户组。

  • createNativeGroupQuery:创建一个原生SQL的用户组查询对象。使用原生SQL语句查询用户组。

  • getPotentialStarterGroups:获取指定流程定义的潜在启动用户组。用于获取可以启动指定流程定义的用户组。

  • getPotentialStarterUsers:获取指定流程定义的潜在启动用户。用于获取可以启动指定流程定义的用户。

  • saveGroup:保存用户组对象到数据库中。如果用户组已存在,则更新用户组信息。

  • deleteGroup:删除指定ID的用户组。

  • createMembership:创建用户与用户组之间的成员关系。

  • deleteMembership:删除用户与用户组之间的成员关系。

  • checkPassword:检查用户密码是否正确。

  • setAuthenticatedUserId:设置当前用户的身份标识。

  • setUserPicture:设置用户的头像图片。

  • getUserPicture:获取用户的头像图片。

  • setUserInfo:设置用户的自定义信息。

  • getUserInfo:获取用户的自定义信息。

  • getUserInfoKeys:获取用户的自定义信息键列表。

  • deleteUserInfo:删除用户的指定自定义信息。

IdentityService提供了用户、用户组和用户身份的管理功能,可以创建、保存和删除用户、用户组,创建和删除用户与用户组之间的成员关系,设置和获取用户的密码、头像、自定义信息等。通过这些方法,可以灵活地管理和操作与用户身份相关的数据。

请注意,在使用IdentityService的方法时,需要确保Flowable引擎已配置为启用用户和用户组相关的身份管理,并且对于某些操作(如删除用户和用户组),可能需要相应的权限和授权。

八、ManagementService

ManagementService是Flowable引擎中的一个服务接口,用于管理和操作引擎的一些管理任务和操作。它提供了管理和监控流程实例、任务、作业等的功能。下面是提供的方法的详细说明:

  • getTableCount:获取指定表名的记录数。

  • getTableName:获取指定实体类对应的数据库表名。

  • getTableMetaData:获取指定表名的元数据信息。

  • createTablePageQuery:创建一个表分页查询对象。用于分页查询指定表的数据。

  • createJobQuery:创建一个作业查询对象。用于条件查询作业。

  • createExternalWorkerJobQuery:创建一个外部工作者作业查询对象。用于条件查询外部工作者作业。

  • createTimerJobQuery:创建一个定时器作业查询对象。用于条件查询定时器作业。

  • createSuspendedJobQuery:创建一个挂起作业查询对象。用于条件查询挂起作业。

  • createDeadLetterJobQuery:创建一个死信作业查询对象。用于条件查询死信作业。

  • createHistoryJobQuery:创建一个历史作业查询对象。用于条件查询历史作业。

  • findJobByCorrelationId:根据关联ID查找作业。

  • executeJob:执行指定ID的作业。

  • executeHistoryJob:执行指定ID的历史作业。

  • moveTimerToExecutableJob:将定时器作业转为可执行作业。

  • moveJobToDeadLetterJob:将作业转为死信作业。

  • moveDeadLetterJobToExecutableJob:将死信作业转为可执行作业。

  • moveDeadLetterJobToHistoryJob:将死信作业转为历史作业。

  • bulkMoveDeadLetterJobs:批量将死信作业转为可执行作业。

  • bulkMoveDeadLetterJobsToHistoryJobs:批量将死信作业转为历史作业。

  • moveSuspendedJobToExecutableJob:将挂起作业转为可执行作业。

  • deleteJob:删除指定ID的作业。

  • deleteTimerJob:删除指定ID的定时器作业。

  • deleteSuspendedJob:删除指定ID的挂起作业。

  • deleteDeadLetterJob:删除指定ID的死信作业。

  • deleteExternalWorkerJob:删除指定ID的外部工作者作业。

  • deleteHistoryJob:删除指定ID的历史作业。

  • setJobRetries:设置作业的重试次数。

  • setTimerJobRetries:设置定时器作业的重试次数。

  • rescheduleTimeDateJob:重新调度时间/日期作业。

  • rescheduleTimeDurationJob:重新调度时间间隔作业。

  • rescheduleTimeCycleJob:重新调度时间循环作业。

  • rescheduleTimerJob:重新调度定时器作业。

  • getJobExceptionStacktrace:获取作业的异常堆栈轨迹。

  • getTimerJobExceptionStacktrace:获取定时器作业的异常堆栈轨迹。

  • getSuspendedJobExceptionStacktrace:获取挂起作业的异常堆栈轨迹。

  • getDeadLetterJobExceptionStacktrace:获取死信作业的异常堆栈轨迹。

  • getExternalWorkerJobErrorDetails:获取外部工作者作业的错误详情。

  • handleHistoryCleanupTimerJob:处理历史数据清理的定时作业。

  • getAllBatches:获取所有批量操作。

  • findBatchesBySearchKey:根据搜索关键字查找批量操作。

  • getBatchDocument:获取批量操作的文档信息。

  • getBatchPart:获取批量操作的部分信息。

  • findBatchPartsByBatchId:根据批量操作ID查找部分信息。

  • findBatchPartsByBatchIdAndStatus:根据批量操作ID和状态查找部分信息。

  • getBatchPartDocument:获取批量操作的部分文档信息。

  • createBatchQuery:创建一个批量操作查询对象。用于条件查询批量操作。

  • createBatchBuilder:创建一个批量操作构建器。用于创建自定义的批量操作。

  • createBatchPartQuery:创建一个批量操作部分查询对象。用于条件查询批量操作的部分信息。

  • createBatchPartBuilder:创建一个批量操作部分构建器。用于创建自定义的批量操作的部分信息。

  • deleteBatch:删除指定ID的批量操作。

  • getProperties:获取Flowable引擎的属性配置。

  • databaseSchemaUpgrade:执行数据库模式升级。

  • executeCommand:执行命令。

  • getLockManager:获取锁管理器。

  • executeCustomSql:执行自定义SQL语句。

  • getEventLogEntries:获取事件日志条目。

  • getEventLogEntriesByProcessInstanceId:根据流程实例ID获取相关的事件日志条目。

  • deleteEventLogEntry:删除指定ID的事件日志条目。

  • createExternalWorkerJobAcquireBuilder:创建一个外部工作者作业获取构建器。

  • createExternalWorkerJobFailureBuilder:创建一个外部工作者作业失败构建器。

  • createExternalWorkerCompletionBuilder:创建一个外部工作者任务完成构建器。

  • createChangeTenantIdBuilder:创建一个改变租户ID的构建器。

ManagementService提供了管理和操作Flowable引擎的功能,包括查询和操作作业、批量操作、事件日志、锁管理等。通过这些方法,可以实现对引擎的管理和监控,执行一些管理任务和操作。

请注意,在使用ManagementService的方法时,需要确保Flowable引擎已配置为启用管理功能,并且对于某些操作(如执行作业、删除作业等),可能需要相应的权限和授权。

九、DynamicBpmnService

DynamicBpmnService是Flowable引擎中的一个服务接口,用于在运行时动态修改和管理流程定义的结构和属性。它提供了一系列方法,可以实现对流程定义中的各种元素(如任务、子流程、条件、属性等)进行动态修改和管理。下面是部分方法的详细说明:

  • injectUserTaskInProcessInstance:向指定的流程实例动态添加用户任务。

  • injectParallelUserTask:向指定流程实例中添加并行的用户任务。

  • injectEmbeddedSubProcessInProcessInstance:向指定的流程实例动态添加嵌入式子流程。

  • injectParallelEmbeddedSubProcess:向指定的流程实例中添加并行的嵌入式子流程。

  • getProcessDefinitionInfo:获取流程定义的详细信息,包括各个流程元素的属性和结构。

  • saveProcessDefinitionInfo:保存流程定义的详细信息,包括各个流程元素的属性和结构。

  • changeServiceTaskClassName:修改服务任务的类名。

  • changeServiceTaskExpression:修改服务任务的表达式。

  • changeServiceTaskDelegateExpression:修改服务任务的委托表达式。

  • changeScriptTaskScript:修改脚本任务的脚本。

  • changeSkipExpression:修改跳过任务的表达式。

  • removeSkipExpression:移除任务的跳过表达式。

  • enableSkipExpression:启用任务的跳过表达式。

  • removeEnableSkipExpression:移除任务的启用跳过表达式。

  • changeUserTaskName:修改用户任务的名称。

  • changeUserTaskDescription:修改用户任务的描述。

  • changeUserTaskDueDate:修改用户任务的到期时间。

  • changeUserTaskPriority:修改用户任务的优先级。

  • changeUserTaskCategory:修改用户任务的分类。

  • changeUserTaskFormKey:修改用户任务的表单键。

  • changeUserTaskAssignee:修改用户任务的指派人。

  • changeUserTaskOwner:修改用户任务的所有者。

  • changeUserTaskCandidateUser:修改用户任务的候选用户。

  • changeUserTaskCandidateGroup:修改用户任务的候选用户组。

  • changeMultiInstanceCompletionCondition:修改多实例任务的完成条件。

  • changeDmnTaskDecisionTableKey:修改DMN任务的决策表键。

  • changeSequenceFlowCondition:修改连线的条件。

  • changeCallActivityCalledElement:修改调用活动的被调用流程定义。

  • getBpmnElementProperties:获取流程定义中指定元素的属性。

  • changeLocalizationName:修改本地化名称。

  • changeLocalizationDescription:修改本地化描述。

  • getLocalizationElementProperties:获取指定本地化元素的属性。

  • resetProperty:重置属性。

  • getDynamicProcessDefinitionSummary:获取动态流程定义的摘要信息。

DynamicBpmnService提供了在运行时修改和管理流程定义的能力,可以通过上述方法对流程定义的结构和属性进行动态调整和扩展。这样,可以根据具体业务需求进行灵活的流程调整和定制,而无需重新部署整个流程定义。

需要注意的是,使用DynamicBpmnService进行动态修改会影响当前和未来的流程实例,因此需要谨慎操作,并确保对流程定义具有相应的权限和授权。

十、ProcessMigrationService

ProcessMigrationService是Flowable引擎中的一个服务接口,用于支持流程实例的迁移和升级。它提供了一系列方法,用于创建和执行流程实例的迁移操作。下面是部分方法的详细说明:

  • createProcessInstanceMigrationBuilder:创建一个流程实例迁移的构建器,用于定义迁移的细节和配置。

  • createProcessInstanceMigrationBuilderFromProcessInstanceMigrationDocument:从已有的流程实例迁移文档创建迁移构建器,用于对流程实例进行迁移。

  • validateMigrationForProcessInstance:验证单个流程实例是否可以进行迁移操作,检查迁移的合法性和可行性。

  • validateMigrationForProcessInstancesOfProcessDefinition:验证给定流程定义下所有流程实例的迁移的合法性。

  • migrateProcessInstance:执行单个流程实例的迁移操作。

  • migrateProcessInstancesOfProcessDefinition:迁移给定流程定义下的一批流程实例。

  • batchMigrateProcessInstancesOfProcessDefinition:批量迁移给定流程定义下的多个流程实例。

  • getResultsOfBatchProcessInstanceMigration:获取批量流程实例迁移操作的结果。

ProcessMigrationService允许在流程运行中进行流程版本升级和迁移操作。通过使用这些方法,可以进行以下操作`:

  • 创建流程实例迁移构建器:通过createProcessInstanceMigrationBuilder方法,可以创建一个迁移构建器对象。该构建器提供了一系列方法,用于配置迁移的细节,如定义迁移的来源和目标流程定义、指定版本升级策略等。

  • 验证迁移的合法性:通过validateMigrationForProcessInstance或validateMigrationForProcessInstancesOfProcessDefinition方法,可以验证迁移操作的合法性和可行性。这些方法会检查源流程定义和目标流程定义之间的兼容性、流程实例的状态等,并返回验证结果。

  • 执行流程实例迁移:通过migrateProcessInstance或migrateProcessInstancesOfProcessDefinition方法,可以执行单个或多个流程实例的迁移操作。这些方法会根据迁移构建器中定义的迁移细节和策略,将源流程实例迁移到目标流程定义。

  • 执行批量流程迁移:通过batchMigrateProcessInstancesOfProcessDefinition方法,可以批量迁移给定流程定义下的多个流程实例。该方法会创建一个异步批处理任务,用于并发处理多个流程实例的迁移操作。

  • 获取迁移结果:通过getResultsOfBatchProcessInstanceMigration方法,可以获取批量流程迁移操作的结果。结果包含了迁移成功的流程实例数量、失败的流程实例数量等信息。

使用ProcessMigrationService可以实现在流程运行中灵活地进行版本升级和迁移,而无需中断正在执行的流程实例。这为流程的演进和改进提供了强大的支持。

需要注意的是,流程迁移操作可能涉及到流程定义的变更和数据的转换等复杂操作,因此在进行迁移之前需要仔细评估和测试,确保迁移操作的可靠性和正确性。

十一、ProcessEngineConfiguration

ProcessEngineConfiguration 是 Flowable 引擎的配置类,用于配置和构建 Flowable 引擎实例。它定义了引擎的各种配置项和相关服务的访问方法。下面是一些方法的详细说明:

  • buildProcessEngine:根据配置对象创建 Flowable 引擎实例,并返回一个 ProcessEngine 对象。通过该方法,可以创建 Flowable 引擎,并进行流程管理、执行、监控等操作。

  • createProcessEngineConfigurationFromResourceDefault:从默认的配置文件(flowable.cfg.xml)创建 ProcessEngineConfiguration 对象。该方法会读取并解析默认配置文件,生成对应的配置对象。

  • createProcessEngineConfigurationFromResource:从指定的配置文件中创建 ProcessEngineConfiguration 对象。通过提供配置文件路径,可以自定义 Flowable 引擎的配置。

  • createProcessEngineConfigurationFromInputStream:从输入流中创建 ProcessEngineConfiguration 对象。该方法可以通过读取流程配置文件的方式创建配置对象。

  • createStandaloneProcessEngineConfiguration:创建一个独立的(standalone)的 ProcessEngineConfiguration 对象。独立引擎可以在单独的 Java 程序中使用,不需要依赖外部容器。

  • getRepositoryService:获取流程仓库(RepositoryService)对象,用于管理流程定义的部署、查询等操作。

  • getRuntimeService:获取流程运行时(RuntimeService)对象,用于启动、完成、查询流程实例和执行流程任务等操作。

  • getFormService:获取表单(FormService)对象,用于操作流程定义的表单信息,包括表单的渲染和提交。

  • getTaskService:获取任务(TaskService)对象,用于管理流程任务的创建、分配、办理等操作。

  • getHistoryService:获取历史数据(HistoryService)对象,用于查询和管理流程的历史数据,如已完成的流程实例、任务等。

  • getIdentityService:获取身份验证(IdentityService)对象,用于管理用户、组、角色等身份验证和权限相关的操作。

  • getManagementService:获取管理服务(ManagementService)对象,用于执行底层的流程管理和操作,如作业执行、引擎配置等。

以上方法提供了访问 Flowable 引擎各个服务的入口,通过这些服务可以完成流程的各种操作,如定义部署、流程启动、任务处理、数据查询等。

另外,ProcessEngineConfiguration 还提供了许多其他配置项的访问方法,用于设置引擎的行为和特性。例如:

  • setEngineName:设置流程引擎的名称。

  • setHistory:设置历史记录级别,用于配置引擎对流程历史数据的记录程度。

  • setMailServerHost、setMailServerPort、setMailServerUsername 等方法:用于配置邮件服务器的相关信息。

  • setJpaEntityManagerFactory、setJpaHandleTransaction、setJpaCloseEntityManager 等方法:用于配置 JPA 的相关信息。

  • setDataSource、setJdbcUrl、setJdbcUsername、setJdbcPassword 等方法:用于配置低层的 JDBC 数据库连接。

  • setAsyncExecutorActivate、setAsyncHistoryExecutorActivate 等方法:用于配置是否激活异步执行器和异步历史记录执行器。

  • setCreateDiagramOnDeploy、setDrawSequenceFlowNameWithNoLabelDI 等方法:用于配置流程部署时是否自动生成流程图以及是否在流程图中显示顺序流名称。

  • setHistoryCleaningTimeCycleConfig、setCleanInstancesEndedAfterNumberOfDays 等方法:用于配置历史数据清理的时间间隔和删除条件等。

这些方法提供了对 Flowable 引擎更深层次的配置和扩展,可以根据具体需求来定制和调整引擎的行为。

需要注意的是,ProcessEngineConfiguration 是创建和配置 Flowable 引擎的入口,通过该配置类可以对引擎进行个性化的设置,以满足不同的业务需求和扩展要求。

Flowable是一个功能强大的业务流程框架,它使用了Java、Spring Framework、MyBatis和Activiti等技术。通过Flowable,我们可以建模、执行和监控业务流程。下面是一个使用Flowable的示例: ```java import org.flowable.engine.ProcessEngine; import org.flowable.engine.ProcessEngineConfiguration; import org.flowable.engine.RepositoryService; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.repository.Deployment; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.Task; public class FlowableExample { public static void main(String[] args) { // 创建流程引擎 ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration(); ProcessEngine processEngine = cfg.buildProcessEngine(); // 部署流程定义 RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deployment = repositoryService.createDeployment() .addClasspathResource("my-process.bpmn20.xml") .deploy(); // 启动流程实例 RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("my-process"); // 处理任务 TaskService taskService = processEngine.getTaskService(); Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); System.out.println("当前任务:" + task.getName()); // 完成任务 taskService.complete(task.getId()); // 验证流程是否结束 ProcessInstance finishedInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); System.out.println("流程是否结束:" + (finishedInstance == null)); // 关闭流程引擎 processEngine.close(); processEngine = null; } } ``` 这个示例演示了Flowable的基本使用流程,包括创建流程引擎、部署流程定义、启动流程实例、处理任务和验证流程是否结束。你可以根据自己的需求进行进一步的定制和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值