描述
activiti中內(nèi)嵌子流程(call activity)是新啟動一個流程,該子流程和父流程沒有父子關(guān)系。該子流程的proc_inst_id_的parent_id_是空的介袜。如果想要獲取父流程的proc_inst_id_蛮粮,可以通過執(zhí)行環(huán)境(id_)和父執(zhí)行環(huán)境(super_exec_)來獲取。上述字段都是act_ru_execution表中颤诀。
實(shí)現(xiàn)
配置子流程start監(jiān)聽器字旭,監(jiān)聽器中去獲取父流程實(shí)例ID
@Component
@Slf4j
public class CallActivityPidListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) throws Exception {
ExecutionEntity executionEntity = (ExecutionEntity) execution;
ExecutionEntity processInstance = executionEntity.getProcessInstance();
ExecutionEntity superExecution = processInstance.getSuperExecution();
if(superExecution != null) {
String superProcessInstanceId = superExecution.getProcessInstanceId();
log.info("processInstanceId:{},pid:{}", processInstance.getId(), superProcessInstanceId);
}
}
}
字段關(guān)系
image.png
表中第三條記錄是流程實(shí)例ID為2830018
,執(zhí)行環(huán)境ID為2830018
的子流程記錄崖叫。該記錄的父執(zhí)行環(huán)境ID為2830016
遗淳,通過父執(zhí)行環(huán)境ID定位到第二條記錄,從而獲取父流程實(shí)例ID2830001
引用
Get Parent ProcessInstance Id from a SubProcess CallActivity