On Mon, Dec 03, 2012 at 06:28:18AM -0800, Tobi wrote:
>
> this topic seems to be solved but i have a similar question.

Hello Tobi,

it would have been better to open a new thread/topic, especially since you
are not refining anything in the thread you're hijacking.

Next time ;-)


> I am also a bit confused about how to structure participants.
> Let愀 say, i悲 like to transform a BPMN model into ruote (using ruby DSL).
> In a BPMN model i usually use pools representing a certain person, role or
> department.
> How would you suggest to translate this into ruote/ruby DSL?

It depends on your process portfolio. If you can reuse participants across
processes then it's a good sign.


> As far as i understood it, one participant will "react" to only 1
> workitem.field (by def on workitem).

Participants will "react" to any workitem send at them. Participants may
read/write all the fields of the workitems send at them.


> So i have to create a participant
> class for each activity in the workflow?

No, not necessarily. You seem to be talking about non-human participants. In
that case you're free to have, in the extreme, a single non-human
participants that handles all the tasks ("if", "case" extreme party,
granted).

On the other extreme, in a environment where there are only human
participants, you might have a single ruote participant
(Ruote::StorageParticipant) that gathers all the workitems and the humans do
filter (and proceed them) based on the participant name and some other
workitem fields.

Ruote is definitely vague and uses the term participant to avoid using
"person", "role" or "department" on its own. It's up to the persons
integrating ruote to determine the right balance between one participant for
everything and a participant for anything.

Once again: it depends on your process portfolio, if you can reuse
participants across processes then it's a good sign.


> Furthermore, in BPMN there are message flows between the pools. How could i
> translate this into ruote? Would you do it implicitly by "just" creating a
> certain order in the process definition like:
>
> cursor do
>    participant :ref => 'pool1_activity1'
>    participant :ref => 'pool2_activity1'
>    participant :ref => 'pool1_activity2'
> end

Yes, it looks good.


> Does anybody of you has any experience with implementing that and can give
> me some advice / best practices?

Yes, we have experience with that, but please ask precise questions, we cannot
write thesis/books on the fly.

The best practice would be: do this participant balance work one time, then
throw away the result and re-do it cleanly. By the third iteration you might
have something you like and find elegant. Always move back one step before
considering your work. Think about how a person might approach your work if
he had to re-use it. Be creative, make mistakes.


Kind regards,

--
John Mettraux - http://lambda.io/jmettraux

-- 
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en

Reply via email to