Hmm. Doesn't prematurely completing the scope that fires <complete ../>
mean that
a typical while - break pattern that looped until it got the right
answer would have to make the successful iteration come to a normal end,
and then issue <complete scope="scopeEnclosingWhile"> on the *next*
iteration ?
Works fine for continue.
I'm not sure how to make N of M work
Peter
> -----Original Message-----
> From: Satish Thatte [mailto:]
> Sent: 20 September 2004 16:25
> To: Furniss, Peter; wsbpeltc
> Subject: RE: [wsbpel] Issue 6 - Proposal for vote
>
>
> Peter,
>
> Yes to the semantics of "cancelled".
>
> The scope that fires <complete ../> is the first to be
> prematurely completed, and in fact the only one when the
> minimal form <complete/> is used (scope name omitted).
>
> Satish
>
>
> -----Original Message-----
> From: Furniss, Peter [mailto:]
> Sent: Monday, September 20, 2004 4:05 AM
> To: Satish Thatte; wsbpeltc
> Subject: RE: [wsbpel] Issue 6 - Proposal for vote
>
> I think I like this.
>
> But isn't the nested scope that fires the <complete
> scope="ancestralScope"> still itself incomplete ? So it will
> get caught in the cancellation. Or is it specially protected
> - so "all concurrently running activities in that scope will
> be cancelled" should have added something like "except for
> the nested scope which generated the completion (at any depth
> of nesting)". Otherwise the successful nested scope will get
> cancelled just like its unsuccessful siblings.
>
> (I'm assuming "cancelled" is following the rough consensus
> emerging on issue 135 as a rename of forcibly terminated)
>
> Peter
>
> > -----Original Message-----
> > From: Satish Thatte [mailto:]
> > Sent: 17 September 2004 18:20
> > To: wsbpeltc
> > Subject: [wsbpel] Issue 6 - Proposal for vote
> >
> >
> > Please note that this proposal also subsumes Issue 142 as
> the examples
>
> > show. Also note that everyone involved in the discussion of Issue 6
> > has not had time to comment on the merits of this proposal
> relative to
>
> > alternatives. I am putting it up so that we can discuss it at the
> > F2F. Early comments are always welcome.
> >
> > Proposal for resolution of both Issues 6 and 142.
> >
> > Define a new activity of the form <complete
> scope="ScopeName"?>. The
> > execution of this activity will cause premature but successful
> > completion of all enclosing scopes upto and including the
> scope named
> > in the optional scope attribute. In case the attribute is omitted,
> > the default value of the attribute is the name of the nearest
> > enclosing scope.
> >
> > In case of premature but successful completion of a scope, all
> > concurrently running activities in that scope will be cancelled. A
> > scope may optionally have a completion handler.
> > A completion handler is syntactically similar to a compensation
> > handler (no parameters). In case of premature but successful
> > completion of a scope the completion handler is run if
> present. The
> > default completion handler does nothing. The completion
> handler is run
>
> > in the context of the scope it is attached to, hence may
> use variables
>
> > and partnerLinks defined within that scope.
> >
> > The behavior of the completionHandler is treated as part of the
> > "forward work" of the scope. Thus all fault handlers for a
> scope are
> > still available while the completion handler for that scope is
> > running. In case of a fault in a completion handler, the
> behavior is
> > identical to the occurrence of a fault in the main body of
> the scope.
> >
> > Question: can the <complete/> activity be used in a
> completionHandler?
>
> > Or perhaps only in the named (final) one in a completion process?
> >
> > Rationale: This proposal defines a "break-like" feature
> following the
>
> > patterns of the rest of our interrupt machinery, e.g., fault and
> > cancel handlers. It is possible to use this to build declarative
> > macros for a variety of purposes including the various flow-based
> > features that were proposed.
> >
> > Examples:
> >
> > Break:
> >
> > Wrap a while loop with a scope S and use <complete scope="S"/> to
> > break from the loop.
> >
> > Continue:
> >
> > Wrap the body of a while loop with a scope S and use <complete
> > scope="S"/> to continue with the next iteration of the loop.
> >
> > At least N of M activities in a flow:
> >
> > <scope name="N-of-M">
> > <completionHandler>
> > </completionHandler>
> > <flow>
> > ..
> > <sequence>
> > <original "activity that counts">
> > <update completion count variable V>
> > <switch>
> > <case using V, N out of M done?>
> > <complete scope="N-of-M"/>
> > </case>
> > </switch>
> > </sequence>
> > ..other activities in flow
> > </flow>
> > </scope>
> >
> > Can we do exactly N of M using an isolation scope for the switch?
> >
> > Satish
> >
> >
> >
> > To unsubscribe from this mailing list (and be removed from
> the roster
> > of the OASIS TC), go to
> > http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/le
> > ave_workgroup.php.
> >
> >
>