1 Reply Latest reply on May 25, 2011 6:45 AM by Francesco Pietrobelli

    Call Activity and Process Data Input

    Francesco Pietrobelli Newbie

      Hi all and especially to Kris Verlaenen,

      i have read same post about Process Data Input posted by Bruce Silver, Falko Menge and Kris Verlaenen

      1. http://www.brsilver.com/2011/04/15/bpmn-2-0-mystery-process-datainput-and-dataoutput/
      2. http://www.brsilver.com/2011/04/20/more-on-bpmn-2-0-process-data-input/
      3. http://kverlaen.blogspot.com/2011/04/bpmn-20-data-associations-discussion.html
      4. http://www.brsilver.com/2011/04/22/still-more-on-process-data-input/


      and so i tried to model two process in two distinct file, superProcessDataObject and subProcessDataObject (see attachment).


      In superProcessDataObject i have define a Call Activity that start the process defined in subProcessDataObject, for to do this i have open superProcessDataObject in a text editor and i wrote the calledElement's attribute manually.

      In according to BPMN2.0 spec p218 (PDF248) "The DataInputs and DataOutputs of the Call Activity are mapped to the corresponding elements in the CallableElement without any explicit DataAssociation." The InputOutputSpecification of the Call Activity defines one Data Input with identical name of Data Input specified in subProcessDataObject, it is right?

      Also, i have set an InputAssociation that assigns a property of superProcessDataObject to the DataInput of the Call Activity.


      The subProcessDataObject is defined as Kris explain in his blogs, thinking jbpm5 works according his opinion on BPMN 2.0:



      But the test case, that i attached, fails because no parameter is passed to User Task. Does anyone know why? Did i forget something?

      I also tried to use identical id (instead the name) of the Data Input of the Call Activity and the Data Input of the subProcessDataObject


      Thanks in advance,


        • 1. Re: Call Activity and Process Data Input
          Francesco Pietrobelli Newbie

          The simplest way to pass something to a process called by a call activity that i found is the following:

          • In subProcess define a property, for example a property with id set to "subProcessProperty"
          • In superProcess
            1. define a property, for example a property with id set to "superProcessProperty"
            2. define a call activity with ioSpecification that has a dataInput with arbitrary id and name identical to id of subProcess property (i.e. subProcessProperty), then define a dataInputAssociation of call activity with source set to superProcessProperty and target set to dataInput's id


          But I don't like very much this solution because in my opinion it isn't the best usage of the bpmn2.0 standard and details are hidden from the process's graph.