thanks for the hints - I am making some progress. I didn't understand the StorageParticipant was the default way to creating blocking participants.
The other important idea is that workitem.fei.to_h returns a hash with all the properties used to look up the work item. It looks like the smtp_participant serializes this information in the email. In my tests I can now call MyParticipant.reply(Engine.workitem(serialized_hash)). On Mar 14, 3:34 am, Torsten Schönebaum <[email protected]> wrote: > Carl Shimer wrote: > > I am writing some prototype code using Ruote. I am trying to > > understand how to coordinate a workflow using some kind of participant > > ID. > > > This is my scenario: > > > 1) Create a worflow instance with engine.launch(...) > > 2) A participant task emails a user with a link to a form. embedded > > in that URL is an identifier that maps back to a form. Example: > > foo.com/survey/49/?wfid=abc. In this case I am using a custom > > Participant that doesn't return immediately to engine, e.g the consume > > method send email but does not call return_to_engine. > > 3) User fills out form. > > 4) web server records the form response and tells the workflow to > > continue. > > That's a quite common scenario, I'd say. > > > How do I do step 4? In other words, how do I tell the engine with a > > specific workflow ID that a specific participant should now complete? > > I see that I can lookup a workflow instance by the wfid, but I can't > > see how to invoke a specific participant to continue processing. > > I'd suggest that you should handle different tasks with different > participants. Sending a mail to the user is a task, waiting for the > user's reply is another: > > sequence do > send_notification_to_user > user_fill_form > end > > That way, you can use the participant implementations shipped with > ruote: SmtpParticipant for the notifications and StorageParticipant for > waiting until the user has filled the form. > > Use the StorageParticipant as example if you really want to write an own > participant. The docs are > athttp://ruote.rubyforge.org/part/storage_participant.html. > > HTH, > Torsten -- 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
