为activity中的流程执行设置流程id
Set the process id for the execution of a process in activit
是否可以在activiti中自行设置processID?
我需要用不同的软件来监控它,所以我需要在进程启动之前启动进程的 ID。
try{
processId = runtimeService.startProcessInstanceByKey(jobsModuleName.toString(), processVariables).getId();
}catch (Exception e){
LOG.error(e, "No Processdefinition found with this Identifier");
}
这是启动进程知道的调用。我从进程中取回了 id,但我想在启动进程之前设置 processID。
流程实例 ID 是使用 DbIdGenerator 或 StrongUuidGenerator classes 生成的(您 select 引擎配置 class 上的配置)。没有什么可以阻止您创建自定义 ID 生成器,但请记住它必须在所有实例中生成唯一 ID。
虽然我不知道您的确切用例,但我可能不会更改 ID,而是使用业务密钥。业务密钥旨在被注入并充当用户可配置的元数据。可以按业务键搜索实例和任务,搜索方式与按 ID 完全相同,因为它们都是支持 table.
中的唯一列
您可以在此处阅读有关业务密钥的信息:
http://www.activiti.org/userguide/#_additional_features
希望这对您有所帮助,
格雷格
是否可以在activiti中自行设置processID?
我需要用不同的软件来监控它,所以我需要在进程启动之前启动进程的 ID。
try{
processId = runtimeService.startProcessInstanceByKey(jobsModuleName.toString(), processVariables).getId();
}catch (Exception e){
LOG.error(e, "No Processdefinition found with this Identifier");
}
这是启动进程知道的调用。我从进程中取回了 id,但我想在启动进程之前设置 processID。
流程实例 ID 是使用 DbIdGenerator 或 StrongUuidGenerator classes 生成的(您 select 引擎配置 class 上的配置)。没有什么可以阻止您创建自定义 ID 生成器,但请记住它必须在所有实例中生成唯一 ID。
虽然我不知道您的确切用例,但我可能不会更改 ID,而是使用业务密钥。业务密钥旨在被注入并充当用户可配置的元数据。可以按业务键搜索实例和任务,搜索方式与按 ID 完全相同,因为它们都是支持 table.
中的唯一列您可以在此处阅读有关业务密钥的信息:
http://www.activiti.org/userguide/#_additional_features
希望这对您有所帮助, 格雷格