为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

希望这对您有所帮助, 格雷格