flowable的ProcessEngine1:https://developer.aliyun.com/article/1548812
七、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 引擎的入口,通过该配置类可以对引擎进行个性化的设置,以满足不同的业务需求和扩展要求。