When i open the child process,but the page is parent process's page in child process

enter child process from parent process,
open child process’s page, What it shows is that parent process’s page
企业微信截图_20180514092014
this is in parameters value
Should I set child entity in entityId and entityName?

<callActivity id="sid-3BD8F115-4321-409B-AF59-C899E6C7109C" calledElement="test">
      <extensionElements>
        <activiti:in source="bpmProcInstanceId" target="bpmProcInstanceId"></activiti:in>
        <activiti:in source="entityId" target="entityId"></activiti:in>
        <activiti:in source="entityName" target="entityName"></activiti:in>
        <activiti:executionListener event="start" delegateExpression="${ExecutionListenerTestService}"></activiti:executionListener>
        <activiti:executionListener event="end" delegateExpression="${ExecutionListenerTestEndService}"></activiti:executionListener>
      </extensionElements>
    </callActivity>

set “in parameters” in executionListener event="start"?
get out parameters in executionListener event="end"?
@gorbunkov

i set entityId and entityName as child entity at start executionListener, But it hasn’t changed.

If you need to run the subprocess on some other entity then you can do the following:

  1. Instead of using the “Call actvity”, use the “Service task”. This service task will invoke the method of your service. This method must use the ProcessRuntimeService of the BPM module to start a new process linked to the entity you need.
  2. In the model of the main process put the “Intermediate signal catching event”. When the service task from the step 1 is completed (the subprocess is started), the main process will come to this stage and will wait for the signal about the sub-process completion.
    image
  3. About the sending the completion event from the subprocess to the main process: in the subprocess you can invoke a service task. You will have to create a new service method that sends the signal to the main process about the subprocess completion. Sending the signal to the main process will look something like this:
Execution execution = runtimeService.createExecutionQuery()
     .processInstanceId(procInstance.getActProcessInstanceId())
     .signalEventSubscriptionName(signalName)
     .singleResult();
runtimeService.signalEventReceived(signalName, execution.getId());

runtimeService here is the org.activiti.engine.RuntimeService - you can inject it into your managed bean like any other Spring bean.
procInstance - is the com.haulmont.bpm.entity.ProcInstance object for the main process. Activiti documentation about signal events: Activiti User Guide

If starting the second process is the last step of the main process, then you don’t need all the signal related stuff.

thank you every much!