在activiti中生成流程定义ID

时间:2016-07-21 15:01:07

标签: scala activiti

在Activiti中:   创建模型后,将生成deploy.ProcessDefinition。其中,processDefinitionId将为' Testprocess:1:577504'任何人都可以帮助我知道这将如何生成以及版本号将如何有用。

var processEngine: ProcessEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration.buildProcessEngine()
val repositoryService: RepositoryService = processEngine.getRepositoryService
val processDefinitions = repositoryService.createProcessDefinitionQuery.deploymentId(577501).list.asScala.toList.map(_.getId)

RESULT:
processDefinitions =List(Testprocess:1:577504)

2 个答案:

答案 0 :(得分:2)

流程定义id包含版本的原因是因为为每个Activiti引擎缓存了流程定义。

当您重新部署一个引擎时,其他引擎不知道有新版本。因此,在为特定流程定义启动流程实例时,使用此ID进行快速检查以检查它是否仍然是最新的。

答案 1 :(得分:1)

很多人都回应了,但没有人真正回答过你的问题。 1.如何生成ID?

ID由以下类之一生成,具体取决于您的配置: ./src/main/java/org/activiti/engine/impl/db/DbIdGenerator.java ./src/main/java/org/activiti/engine/impl/persistence/StrongUuidGenerator.java

  1. 如何使用ID? 过程部署的ID的使用是识别过程定义的版本。长时间运行的进程可能存在数月或数年,并且一个进程的多个版本可能同时处于活动状态。拥有唯一ID可确保检索正确的子流程(称为活动),资源和表单(如果使用表单密钥)。
  2. 如果您关心启动的是最近部署的版本,则可以在代码中使用进程密钥,这将忽略该版本并只是启动最新部署。

    希望这会有所帮助。 格雷格