Hello,

1.      Ruote-kit works under “_ruote” prefix, but ruote-kit-client
connects to the root of web-server. I tried to set connect address in
several forms: http://localhost:8001/_ruote, http://localhost:8001
with no success. It looks like I missed something obvious…

2.      I’ve implemented an external participant class, which creates task
in external task system.  For some reason, I may not store the whole
workitem in that task system, so I just send wfid an expid to the
external system. To get information about completion of the task, I
adjusted ruote-kit and expose “engine.reply” method under “_ruote/
engine/reply”. Implementation is quite naïve(code quality may be poor,
sorry: I’m not experienced in Ruby yet):  http://gist.github.com/370868
. This web-service method is called from outside. Also I modified
ruote-kit-client respectively. It works good, but I’m just wondering
is such approach OK and would It works without side-effects ?

3.      Related to 2) suggestion. In my case, results of human tasks arrive
raw and unstructured and should be transformed before using in the
process. This could be done by additional step in the process like
this:
-----
sequence do
        external_human_participant
        process_results
end
------
But using this way I need to “process_results” after every external
human task and it looks artificial. What do you think about such an
idea: external participant implements “on_reply” method and engine
calls this method upon receiving a “reply” message? This let to
compact process definition and move proceeding of results into the
participant class, which knows how to proceed the results in context
of process.

4.      This question/suggestion also related to external participants.
Please consider two slightly different scenarios:

         a.     Participant creates task  in the external task system.
Also, It should annoy task performer with periodical (let’s say, every
day) e-mails like this: “Please read and complete the task…”. If user
doesn’t response for 3 days, frequency becames 2x: two times per day
user receives a message “Oh, please, please read and complete the
task…”. And so on. After a week, task gets cancelled. This behavior
may be implemented in the process definition by some combination of
“:timeout” participants and maybe “every” expression.   But may be
it’s possible for participant to use internal scheduler to schedule
it’s own re-applying from “consume”? Better, participant may return
some “schedule” or "next run time/interval" object from “consume”
method which is processed by the engine/worker.

         b.     Participant works with external resource. If resource is
locked, participant should try every 10 minutes for 2 hours and raise
error if the resource still locked.
         Above scenarios could be defined in the process definition,
but process becomes watered down and less readable. I'm almost sure
that it is should be the responsibility (at least in my particular
case) of the participant, not the process definition.

Best regards,
Oleg

-- 
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