There is an additional correlation parameter that takes variables with the following semantics:
Intermediate message event/receive task: Set the variables on the execution that is in the intermediate event (like setVariablesLocal)
Event sub process: Set the variables on the execution that represents the scope instance of the event sub process (unlike setVariablesLocal)