AnsweredAssumed Answered

Activiti - Parent process of subprocess

Question asked by mduffour on Nov 17, 2016
Latest reply on Nov 18, 2016 by mduffour
Hi guys! We are using the Activiti workflow engine on this scenario https://i.stack.imgur.com/ZLtqb.png

Here is the bpmn:


<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<signal id="alertSignal" name="alert" />
  <process id="myProcess" name="myProcess" isExecutable="true">
    <subProcess id="subprocess1" name="Sub Process">
      <startEvent id="startevent2" name="Start"></startEvent>
      <endEvent id="endevent1" name="End"></endEvent>
      <userTask id="verifico-id-transitorio-paciente" name="verifico-id-transitorio-paciente">
        <extensionElements>
          <activiti:taskListener event="create" expression="#{INTERNA_LOGICA_TRAMITE.setearPermisoTarea(task)}"></activiti:taskListener>
          <activiti:taskListener event="create" expression="#{INTERNA_LOGICA_TRAMITE.setearPermisoDependencia(task)}"></activiti:taskListener>
        </extensionElements>
      </userTask>
      <sequenceFlow id="flow1" sourceRef="startevent2" targetRef="verifico-id-transitorio-paciente"></sequenceFlow>
      <sequenceFlow id="flow2" sourceRef="verifico-id-transitorio-paciente" targetRef="parallelgateway1"></sequenceFlow>
      <parallelGateway id="parallelgateway1" name="Parallel Gateway"></parallelGateway>
      <sequenceFlow id="flow10" sourceRef="parallelgateway1" targetRef="ingreso-formulario-ConMed"></sequenceFlow>
      <intermediateThrowEvent id="signalintermediatethrowevent1" name="SignalThrowEvent">
        <signalEventDefinition signalRef="alertSignal"></signalEventDefinition>
      </intermediateThrowEvent>
      <sequenceFlow id="flow11" sourceRef="parallelgateway1" targetRef="signalintermediatethrowevent1"></sequenceFlow>
      <userTask id="ingreso-formulario-ConMed" name="ingreso-formulario-ConMed">
        <extensionElements>
          <activiti:taskListener event="create" expression="#{INTERNA_LOGICA_TRAMITE.setearPermisoTarea(task)}"></activiti:taskListener>
          <activiti:taskListener event="create" expression="#{INTERNA_LOGICA_TRAMITE.setearPermisoDependencia(task)}"></activiti:taskListener>
        </extensionElements>
      </userTask>
      <sequenceFlow id="flow13" sourceRef="ingreso-formulario-ConMed" targetRef="endevent1"></sequenceFlow>
    </subProcess>
    <subProcess id="subprocess2" name="Sub Process">
      <startEvent id="startevent3" name="Start"></startEvent>
      <endEvent id="endevent2" name="End"></endEvent>
      <userTask id="ingreso-formulario-Con" name="ingreso-formulario-Con">
        <extensionElements>
          <activiti:taskListener event="create" expression="#{INTERNA_LOGICA_TRAMITE.setearPermisoTarea(task)}"></activiti:taskListener>
          <activiti:taskListener event="create" expression="#{INTERNA_LOGICA_TRAMITE.setearPermisoDependencia(task)}"></activiti:taskListener>
        </extensionElements>
      </userTask>
      <sequenceFlow id="flow5" sourceRef="startevent3" targetRef="ingreso-formulario-Con"></sequenceFlow>
      <sequenceFlow id="flow6" sourceRef="ingreso-formulario-Con" targetRef="endevent2"></sequenceFlow>
    </subProcess>
    <startEvent id="startevent1" name="Start"></startEvent>
    <subProcess id="subprocess3" name="Sub Process">
      <userTask id="modifico-formulario-ConMed" name="modifico-formulario-ConMed">
        <extensionElements>
        </extensionElements>
      </userTask>
      <startEvent id="startevent4" name="Start"></startEvent>
      <endEvent id="endevent3" name="End"></endEvent>
      <sequenceFlow id="flow8" sourceRef="startevent4" targetRef="modifico-formulario-ConMed"></sequenceFlow>
      <sequenceFlow id="flow9" sourceRef="modifico-formulario-ConMed" targetRef="endevent3"></sequenceFlow>
    </subProcess>
    <sequenceFlow id="flow3" sourceRef="startevent1" targetRef="subprocess1"></sequenceFlow>
    <sequenceFlow id="flow4" sourceRef="subprocess1" targetRef="subprocess2"></sequenceFlow>
    <endEvent id="endevent4" name="End"></endEvent>
    <sequenceFlow id="flow7" sourceRef="subprocess2" targetRef="endevent4"></sequenceFlow>
    <startEvent id="signalstartevent1" name="Signal start">
      <signalEventDefinition signalRef="alertSignal"></signalEventDefinition>
    </startEvent>
    <sequenceFlow id="flow14" sourceRef="signalstartevent1" targetRef="subprocess3"></sequenceFlow>
  </process>
</definitions>



Is it possible to get the parent process of a subprocess and how it gets represented on activiti's database ? Because we are not finding that relation.

Is it possible to pass all variables of the main process to a subprocess in our scenario ?

Outcomes