Uploaded image for project: 'Kogito'
  1. Kogito
  2. KOGITO-4149

Kogito - Provide a way to access task details in boundary event

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • Core Engine
    • None

      Boundary events a extending from tCatchEvent 

       

      <xsd:element name="boundaryEvent" type="tBoundaryEvent" substitutionGroup="flowElement"/>
      	<xsd:complexType name="tBoundaryEvent">
      		<xsd:complexContent>
      			<xsd:extension base="tCatchEvent">
      				<xsd:attribute name="cancelActivity" type="xsd:boolean" default="true"/>
      				<xsd:attribute name="attachedToRef" type="xsd:QName" use="required"/>
      			</xsd:extension>
      		</xsd:complexContent>
      	</xsd:complexType>	
      

      which is based on

      	<xsd:element name="catchEvent" type="tCatchEvent"/>
      	<xsd:complexType name="tCatchEvent" abstract="true">
      		<xsd:complexContent>
      			<xsd:extension base="tEvent">
      				<xsd:sequence>
      					<xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
      					<xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
      					<xsd:element ref="outputSet" minOccurs="0" maxOccurs="1"/>
      					<xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
      					<xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
      				</xsd:sequence>
      				<xsd:attribute name="parallelMultiple" type="xsd:boolean" default="false"/>
      			</xsd:extension>
      		</xsd:complexContent>
      	</xsd:complexType>
      

      an example would be something like

          <boundaryEvent id="_18E79477-0069-4053-9268-D85E71DBF747" attachedToRef="_7C773C0B-7060-4E72-A6FD-7D2D011343D3">
            <outgoing>_0127EBBF-C8C1-444A-9951-6B523EDF153C</outgoing>
            <timerEventDefinition id="_UHoeYQhtEeu8Ye6V21rj3A">
              <timeCycle xsi:type="bpmn2:tFormalExpression" id="_UHoeYghtEeu8Ye6V21rj3A" language="none">R/PT2S<timeCycle>
            </timerEventDefinition>
            <dataOutput id="node_instance_ref_output" name="nodeInstance" />
            <outputSet>
              <dataOutputRefs>node_instance_ref_output</dataOutputRefs>
            </outputSet>
            <dataOutputAssociation>
              <sourceRef>node_instance_ref_output</sourceRef>
              <targetRef>nodeInstance_ref_process</targetRef>
            </dataOutputAssociation>
          </boundaryEvent>
      

      where <dataOutput id="node_instance_ref_output" name="nodeInstance" /> should be automatically populated once is created.
      Defining the output set will make available to the UI automatically (so there is no prior knowledge required about is existance.

      the outputSet can be
      nodeInstance (the node instance triggering the event. compensation is not throwing this)
      signal: name of the signal (always available)
      event: always available. Escalation is not having this output.
      workItem: only if there is nodeInstance and it is work item or user task.

      more info in BoundaryEventWithOutputSetPersistenceTest at jbpm

      this would work for any boundary event

              elguardian@gmail.com Enrique González Martínez (Inactive)
              rhn-support-alazarot Alessandro Lazarotti
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: