19
<Insert Picture Here> September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Embed Size (px)

DESCRIPTION

Problem Statement There is no standard way for defining complex people assignment patterns in WS-HT itself WS-HT people assignment is singular in notion (from logical people group, literal or expression) It does not allow specifying a sequence of potential owners or a group of potential owners that are allowed to work on the task in parallel It lacks declaration of policies in the case where people assignment fails or a task is unexpectedly completed (early completion)

Citation preview

Page 1: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

<Insert Picture Here>

September 2008WS-HT People Assignment Extensions for Task Routing Patterns

Page 2: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

2. Use Case

1. Problem Statement and Goals

3. Proposal

Agenda

Page 3: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Problem Statement

• There is no standard way for defining complex people assignment patterns in WS-HT itself

• WS-HT people assignment is singular in notion (from logical people group, literal or expression)

• It does not allow specifying a sequence of potential owners or a group of potential owners that are allowed to work on the task in parallel

• It lacks declaration of policies in the case where people assignment fails or a task is unexpectedly completed (early completion)

Page 4: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Problem Statement

• Complex people assignments must be modeled in the business process• Customers view sequential/parallel routing patterns as part of one task • Human task involves collaboration between multiple users – sharing

comments, attachments, input, output, etc.• Ability to see the various actions of the users in one single audit trail or

history of the task• As complexity of the workflow routing patterns increase modeling the

business process get more challenging• Portability of BPEL processes is not feasible unless we standardize on the

BPEL generation• Might distract the business analyst from the purpose of the process• Tools that generated BPEL that orchestrate routing patterns would have hard

time with any kind of change in generated processes• The lifecycle of people assignments might be more dynamic than the

lifecycle of a business process. Thus modifying an approval chain would result in modifying the business process.

Page 5: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Goals

• Make people assignment in WS-HT (and BPEL4People) more flexible by allowing specification of routing patterns in people assignments

• Single• Sequential• Parallel

• Specification of people assignment policies• Error assignee – potential owner in case the task could not be

assigned to the specified owner• Policy under which routing of task could be completed early• Policy under which a potential owner might be skipped

Page 6: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Use CaseClaimReview

(achrist)

ClaimApproval(jstein)

ClaimApproval(cdickens)

ClaimService(jlondon)

ProcessPayment(bpalmer)

ClaimService(mtwain)

SendPayment(wfaulk)

Page 7: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Proposal

Page 8: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Routing Patterns

<htd:potentialOwners>

<htd:single name="ClaimReview"> .... </htd:single>

<htd:sequential name="ClaimApproval"> .... </htd:sequential>

<htd:parallel name="ClaimProcessing"> .... </htd:parallel>

</htd:potentialOwners>

Page 9: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Routing Patterns

• List of patterns• Each pattern is executed in order

• Single• One task assignment to one or more users/groups

• Sequential• Task gets routed to each user/group in the list

• Parallel• Task gets assigned to multiple users/groups in parallel

Page 10: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Single Routing Pattern<htd:task name="ClaimProcessing""> …………… <htd:potentialOwners> <htd:single name="ClaimReview"> <htd:from> <htd:literal> <htd:organizationalEntity> <htd:users> <htd:user>achrist</htd:user> </htd:users> </htd:organizationalEntity> </htd:literal> </htd:from> </htd:single> </htd:potentialOwners> ……………</htd:task>

Page 11: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Single Routing Pattern

<htd:task name="ClaimProcessing""> …………… <htd:potentialOwners> <htd:single name="ClaimReview"> <htd:from> htd:getInput("ClaimApprovalRequest")/reviewAgents

</htd:from> </htd:single> </htd:potentialOwners> ……………</htd:task>

Page 12: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Sequential Routing Pattern

<htd:task name="ClaimProcessing""> …………… <htd:potentialOwners> <htd:sequential name="ClaimApproval"> <htd:list> <htd:from> htd:getInput("ClaimApprovalRequest")/approvalAgents

</htd:from> </htd:list> </htd:sequential> </htd:potentialOwners> ……………</htd:task>

Page 13: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Sequential Routing Pattern<htd:task name="ClaimProcessing""> …………… <htd:potentialOwners> <htd:sequential name="ClaimApproval"> <htd:list> <htd:managementChain> <htd:from> <htd:literal> <htd:organizationalEntity> <htd:users> <htd:user>jstein</htd:user> </htd:users> </htd:organizationalEntity> </htd:literal> </htd:from> <htd:levels>number(2)</htd:levels> <htd:title>string('Vice President')</htd:title> </htd:managementChain> </htd:list> </htd:sequential> </htd:potentialOwners> ……………</htd:task>

Page 14: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Parallel Routing Pattern<htd:task name="ClaimProcessing""> …………… <htd:potentialOwners> <htd:parallel name="ClaimProcessing"> <htd:vote> <htd:defaultOutcome> string('APPROVE')</htd:defaultOutcome> <htd:percentageOfOutcome> number(50)</htd:percentageOfOutcome> </htd:vote> <htd:list> <htd:from> htd:getInput("ClaimApprovalRequest")/claimAgent </htd:from> </htd:list> </htd:parallel> </htd:potentialOwners> ……………</htd:task>

1) Vote2) First responder3) All responder

Page 15: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Parallel Routing Pattern<htd:task name="ClaimProcessing""> …………… <htd:potentialOwners> <htd:parallel name="ClaimProcessing"> <htd:vote> <htd:defaultOutcome> string('APPROVE')</htd:defaultOutcome> <htd:percentageOfOutcome> number(50)</htd:percentageOfOutcome> </htd:vote>

Page 16: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Parallel Routing Pattern (cont.) <htd:branch> <htd:sequential name=“DispatchPayment"> <htd:list> <htd:from> <htd:literal> <htd:organizationalEntity> <htd:users> <htd:user>bpalmer</htd:user> </htd:users> </htd:organizationalEntity> </htd:literal> </htd:from> </htd:list> </htd:sequential> </htd:branch>

Page 17: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

Parallel Routing Pattern (cont.) <htd:branch> <htd:sequential name=“ClaimService"> <htd:list> <htd:from> <htd:literal> <htd:organizationalEntity> <htd:users> <htd:user>jlondon</htd:user> <htd:user>mtwain</htd:user> </htd:users> </htd:organizationalEntity> </htd:literal> </htd:from> </htd:list> </htd:sequential> </htd:branch> </htd:parallel> </htd:potentialOwners> ……………

Page 18: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

<htd:task name="ClaimProcessing""> …………… <htd:peopleAssigments> <htd:potentialOwners> <htd:sequential name=“ClaimReview" skipCondition="htd:getInput("ClaimApprovalRequest")/amount < 50"> <htd:list> <htd:from> htd:getInput("ClaimApprovalRequest")/claimProcessingAgents </htd:from> </htd:list> </htd:sequential> <htd:sequential name="ClaimApproval"> ……… </htd:sequential> </htd:potentialOwners>

Skip Condition, Error Assignment, Early Completion

Page 19: September 2008 WS-HT People Assignment Extensions for Task Routing Patterns

<htd:onErrorPotentialOwner> <htd:from> <htd:literal> <htd:organizationalEntity> <htd:users> <htd:user>wfaulk</htd:user> </htd:users> </htd:organizationalEntity> </htd:literal> </htd:from> </htd:onErrorPotentialOwner>

<htd:earlyCompletion> htd:getOutcome()=’REJECT’htd:getOutcome(“ApproveClaim") = </htd:earlyCompletion> </htd:peopleAssigments> ………………</htd:task>

Skip Condition, Error Assignment, Early Completion