Hi John,

Thanks for the welcome but I've posted here before (as R Law).

You understood me correctly for the most part. The problem with the
cursor is that each participant would only receive one workitem at a
time, but I wanted to hand off several (one for each step in the
checklist).

Your suggestion works and I'll probably go with something like that.
Quarderno looks nice but we've already got UI elements for checklists.

A question that came up as I looked into this was: how do you
implement a participant that replies immediately if some condition is
met? I know I could use the if expression in the process definition,
but it seems like that is only suitable for testing equality. I want
to check if some data is present in an external service. If the
information is present I want to copy it over (#1); if not, the
coauthor needs to complete a form (#2). So the participant
implementation will first attempt #1, and if it's successfully, simply
reply to the workitem (proceed). If #1 fails, the participant should
work as a normal storage participant for #2. Is this possible?

Thank you,
Reed

On Dec 12, 11:26 am, John Mettraux <[email protected]> wrote:
> On Mon, Dec 12, 2011 at 07:11:21AM -0800, Reed Law wrote:
>
> > (...)
>
> > So my question is: has anyone implemented a multi-step form with
> > Ruote? I want to display a checklist for each participant. The
> > checklist items should be marked completed once done. So my Rails
> > controller/views will need to somehow access the process branches.
>
> > For example:
>
> >         concurrent_iterator :on => '${f:coauthors}', :tag =>
> > 'coauthor_forms', :to_var => 'v' do
> >           concurrence do
> >             participant 'coauthor-${v:v}', :task =>
> > 'complete_information'
> >             participant 'coauthor-${v:v}', :task => 'submit_copyright'
> >             participant 'coauthor-${v:v}', :task =>
> > 'submit_disclosure'
> >           end
> >         end
>
> > This is nearly good enough, but once a workitem is complete, there is
> > no "rewind". I also looked at the "iterator" expression, but since
> > those aren't executed in parallel, they will disappear from the views
> > once they are finished. Ideally, each item on the checklist could be
> > revisited until the final "submit".
>
> Hello Reed,
>
> welcome to the ruote mailing list.
>
> I'm not sure I understood correctly, let me suggest some solutions and you'll
> correct me.
>
> I guess you're using "concurrence" because using the cursor would be too
> slow (though it has a rewind) ?
>
> ---8<---
> concurrent_iterator :on => '${f:coauthors}', :tag => 'coauthor_forms', 
> :to_var => 'v' do
>   cursor do
>     participant 'coauthor-${v:v}', :task => 'complete_information'
>     participant 'coauthor-${v:v}', :task => 'submit_copyright'
>     participant 'coauthor-${v:v}', :task => 'submit_disclosure'
>   end
> end
> --->8---
>
> What about doing the multi-step in your web framework ?
>
> ---8<---
> concurrent_iterator :on => '${f:coauthors}', :tag => 'coauthor_forms', 
> :to_var => 'v' do
>   participant 'coauthor-${v:v}', :task => 'complete_and_submit'
> end
> --->8---
>
> The 3 forms would be dealt with the same workitem session. (Sorry, I know it
> means more work for you).
>
> In such cases, I tend to use something like quaderno:
>
>  https://github.com/jmettraux/quaderno/
>
> Where I have one tab per "checklist":
>
>  http://ruote.rubyforge.org/quaderno/readme_0.html
>
> The participant receives one workitem but the it contains multiple form
> units.
>
> What do you think ?
>
> --
> John Mettraux -http://lambda.io/processi

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