1 / 19

WS-HT People Assignment Extensions for Task Routing Patterns

WS-HT People Assignment Extensions for Task Routing Patterns. September 2008. Agenda. 1. Problem Statement and Goals. 2. Use Case. 3. Proposal. Problem Statement. There is no standard way for defining complex people assignment patterns in WS-HT itself

blanca
Download Presentation

WS-HT People Assignment Extensions for Task Routing Patterns

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda 1. Problem Statement and Goals 2. Use Case 3. Proposal

  3. 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)

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

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

  6. Use Case ClaimReview (achrist) ClaimApproval (jstein) ClaimApproval (cdickens) ProcessPayment (bpalmer) ClaimService (mtwain) ClaimService (jlondon) SendPayment (wfaulk)

  7. Proposal

  8. Routing Patterns <htd:potentialOwners> <htd:single name="ClaimReview"> .... </htd:single> <htd:sequential name="ClaimApproval"> .... </htd:sequential> <htd:parallel name="ClaimProcessing"> .... </htd:parallel> </htd:potentialOwners>

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

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

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

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

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

  14. 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> • Vote • First responder • All responder

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

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

  17. 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> ……………

  18. Skip Condition, Error Assignment, Early Completion <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>

  19. Skip Condition, Error Assignment, Early Completion <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>

More Related