Writing modular BPMN2 for a large project

4 views
Skip to first unread message

Farrukh Najmi

unread,
Sep 13, 2010, 2:06:01 PM9/13/10
to BPMN Users Group
I was wondering if this list is active as I have not seen any activity
nor responses to my last post.

I am trying to write modular BPMN for a large project. I am trying to
define a core.bpmn file that defines some core definitions such as
reusable globalTask definitions and then import core.bpmn from another
extension.bpmn file where a callActivity element calls the globalTask
defined in core.bpmn.

I defined the globalTask in core.bpmn along with its ioSpecification
like this:

<globalTask id="SetStatus" name="Set Status">
<documentation> Sets the status attribute of an object</
documentation>

<ioSpecification>
<dataInput id="status" isCollection="false">
</dataInput>
<inputSet>
<dataInputRefs>status</dataInputRefs>
</inputSet>
<outputSet>
</outputSet>
</ioSpecification>
</globalTask>

I then wanted to invoke the globalTask using a callActivity in
extension.bpmn as follows:

<callActivity id="approvedSetStatus" calledElement="SetStatus">
<dataInputAssociation>
<targetRef>status</targetRef>
<assignment>
<from>
<extensionElements>
<rim:ObjectRef id="urn:test:statusType:Approved"/>
</extensionElements>
</from>
<to>getDataInput(status)</to>
</assignment>
</dataInputAssociation>
</callActivity>

I found that I cannot do this because <targetRef> content MUST be an
IDREF which MUST be resolved in the same file and cannot be resolved
in core.bpmn like i have it.

If it is my misunderstanding of how BPMN works please clarify.
Is this a specification issue that modular design of bpmn is not
possible then what is the formal way to request this to be addressed
in next version of BPMN2 spec?

Thanks for your help.

Antoine Toulme

unread,
Sep 13, 2010, 2:20:06 PM9/13/10
to bpmn-use...@googlegroups.com
globalActivities are meant to express web services exchanges. They should not be used for flow activities.

In particular, the globalActivities will not let you instantiate them or refer to them ; I think the only use you can have of them is to send or receive messages.


--
You received this message because you are subscribed to the Google Groups "BPMN Users Group" group.
To post to this group, send email to bpmn-use...@googlegroups.com.
To unsubscribe from this group, send email to bpmn-users-gro...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/bpmn-users-group?hl=en.


Farrukh Najmi

unread,
Sep 13, 2010, 2:42:08 PM9/13/10
to bpmn-use...@googlegroups.com
Hi Antoine, Thanks for your response.

I am looking for a way to define parameterized tasks once that can be called any number of times in a process with different parameters.
An example fo such a Task is a "Notify" task that takes as input:

  • A set of role identifiers
  • A message
This task would send the specified message to the specified roles.

I was under the impression that globalTask was designed for exactly that purpose. If I am wrong then what is the proper way define a parameterized task that can be invoked / performed with specified parameters. Note that an implementation could implement the task as a web service or as an internal software plugin as a matter of implementation detail.

I am assuming that BPMN must have a formal way to define and call parameterized tasks as that seems to be a very important and common use case.
--
Regards,
Farrukh

Farrukh Najmi

unread,
Sep 14, 2010, 3:48:16 PM9/14/10
to BPMN Users Group

Can any one comment on this please?

On Sep 13, 2:42 pm, Farrukh Najmi <farrukh.n...@gmail.com> wrote:
> Hi Antoine, Thanks for your response.
>
> I am looking for a way to define parameterized tasks once that can be called
> any number of times in a process with different parameters.
> An example fo such a Task is a "Notify" task that takes as input:
>
>    - A set of role identifiers
>    - A message
>
> This task would send the specified message to the specified roles.
>
> I was under the impression that globalTask was designed for exactly that
> purpose. If I am wrong then what is the proper way define a parameterized
> task that can be invoked / performed with specified parameters. Note that an
> implementation could implement the task as a web service or as an internal
> software plugin as a matter of implementation detail.
>
> I am assuming that BPMN must have a formal way to define and call
> parameterized tasks as that seems to be a very important and common use
> case.
>
>
>
> On Mon, Sep 13, 2010 at 2:20 PM, Antoine Toulme <anto...@toulme.name> wrote:
> > globalActivities are meant to express web services exchanges. They should
> > not be used for flow activities.
>
> > In particular, the globalActivities will not let you instantiate them or
> > refer to them ; I think the only use you can have of them is to send or
> > receive messages.
>
> >> bpmn-users-gro...@googlegroups.com<bpmn-users-group%2Bunsu...@googlegroups.com>
> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/bpmn-users-group?hl=en.
>
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "BPMN Users Group" group.
> > To post to this group, send email to bpmn-use...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > bpmn-users-gro...@googlegroups.com<bpmn-users-group%2Bunsu...@googlegroups.com>
> > .

Farrukh Najmi

unread,
Sep 14, 2010, 4:54:00 PM9/14/10
to BPMN Users Group

Perhaps I should rephrase my question. Can any one provide or point me
to a simple example of a BPMN2 beta3 that defines a globalTask and
then uses callActivity to invoke the task?

Feras Darweesh

unread,
Sep 15, 2010, 12:05:21 AM9/15/10
to BPMN Users Group
I think, you should implement this in the execution layer ,not in the
Representation layer

Feras Darweesh
> > > >> bpmn-users-gro...@googlegroups.com<bpmn-users-group%2Bunsubscrib­e...@googlegroups.com>
> > > >> .
> > > >> For more options, visit this group at
> > > >>http://groups.google.com/group/bpmn-users-group?hl=en.
>
> > > >  --
> > > > You received this message because you are subscribed to the Google Groups
> > > > "BPMN Users Group" group.
> > > > To post to this group, send email to bpmn-use...@googlegroups.com.
> > > > To unsubscribe from this group, send email to
> > > > bpmn-users-gro...@googlegroups.com<bpmn-users-group%2Bunsubscrib­e...@googlegroups.com>
> > > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/bpmn-users-group?hl=en.
>
> > > --
> > > Regards,
> > > Farrukh- Hide quoted text -
>
> - Show quoted text -

Mariano Benitez

unread,
Sep 15, 2010, 8:10:07 AM9/15/10
to BPMN Users Group
Farrukh,

My comment is that maybe you are missing a level of modeling in your
process. I agree with Feras.
All bpmn tasks (global or not) can have in and out parameters. Global
activities can help you use a single implementation definition for
multiple tasks, but this fact do not prevent you from using the same
actual implementation (which WebService you call, for example) on many
regular tasks.

You could define a global task to notify, but you can also do it one
level down.

Regards,
Reply all
Reply to author
Forward
0 new messages