Chapter 5 - Adding Human Workflow

Posted at 2010. 2. 5. 15:32 | Posted in Oracle Solution/PO Processing
반응형
Introduction

전 튜토리얼에서 금액이 1,000원이 넘으면 카드상태를 체크하는 BPEL 처리까지 만들어봤습니다.

<< Chapter 4. 까지 완성된 SOA >>

이번에는 1,000원이 넘고 카드상태가 정상(VALID)이면 관리자(?)의 수동 승인을 거치는 작업을 만들어 보겠습니다.



나름대로 정리해봤는데 -_- 맞나? ㄷㄷ;;



Adding a Human Task to the composite

composite에서 Human Task 컴포넌트를 Components 영역에 드래그 앤 드랍 합니다.




Name : ManualPOApproval

Create Composite Service width SOAP bindings 체크 해제




ManaualPOApproval과 approveLargeOrder를 연결합니다.




ManualPOApproval 컴포넌트를 더블 클릭합니다.




General 탭에서

Title : <%'Approve Order'%>
Description : Manual approval task for large orders



Data 탭에서 + 버튼 - Add other payload 클릭



Element 선택하고 오른쪽에 돋보기 버튼 클릭



internalorder.xsd - Order 선택



Editable via worklist 체크 합니다.



Assignment 탭에서 <Edit participant> 더블 클릭합니다.



Type : Single
Label : Large Order Approver

+ 버튼 - Add User 클릭



Identification Type : User
Data Type : By Name
value : weblogic



모두 저장 합니다.



Calling the Human Task from BPEL

이번에는 approvLargeOrder(BPEL Process)를 더블 클릭해서 편집합니다.




assignApproval 액티브 아래에 Human Task 컴포넌트를 드래그 앤 드랍 합니다.




Task Definition : ManualPOApproval
Task Title : Approve Order

오른쪽에 [...] 버튼을 클릭합니다.




Variables - Process - Variables - outputVariable - payload - Order 선택




OK 클릭




그림고 같이 ManualPOApproval_1 과 taskSwitch 두개의 액티브가 생겼습니다.

taskSwitch 를 확장합니다.




3가지의 조건이 나옵니다.




assignApproval을 <case Task outcome is APPROVE> 영역 Assign 아래로 이동시킵니다.




<case Task outcome is REJECT> 영역의 CopyPayloadForTask 더블 클릭




+ 버튼 - Copy Operation 클릭




'rejected'를 세팅 합니다.






<otherwise Task is outcome is EXPIRED, STALE, WITHDRAWN, or ERRORED> 영역의 Assign 에는 'expired' 를 세팅합니다.











Creating the Task form for task details

POPrecessing 어플리케이션에서 새로운 프로젝트 생성




Generic Project 선택



Project Name : ApproveTaskDetails

Project Technologies 선택하지 않고 Finish



ApproveTaskDetails 에서 마우스 오른쪽 버튼 - New



Web Tier - JSF 선택

ADF Task Flow Based on Human Task 선택

OK 클릭




POProcessing 디렉토리의 ManualPOApproval.task 선택




기본으로 두고 OK



ADF 파일들이 생성되었습니다.



taskDetails1_.jspx 더블 클릭



OK 클릭



Data Controls 색션에 있는 Task를 오른쪽 공간에 드래그 앤 드랍 합니다.




메뉴가 나오는데 Human Task - Complete Task with Payload 선택







짜잔! 페이지가 만들어졌습니다 우왕~



모두 저장합니다.



Deploying the application

POProcessing는 하던대로 배치합니다.

ApproveTaskDetails을 배치할때는 어플리케이션 메뉴를 이용해야 되더군요..











Testing the application

주문 가격이 1,000원이 넘고 카드상태가 정상인 데이터를 넣어봅니다.



메시지 흐름 추적 실행 클릭

※ 아직 이 흐름추적 실행 할 수 있는 페이지에서 다른곳으로 이동 하지 마세용~



추적에서 보면 ManualPOApproval 에서 실행 중 상태인 것을 볼 수 있습니다. ㄷㄷ



BPM에 접속한 후 받은 편지함에 보면 주문(?)이 들어와 있습니다.



세부 정보 확인 후 승인 또는 거부 할 수 있습니다.



승인 후 EM으로 와서 추적을 다시 해보면 처리가 완료된 것을 확인할 수 있습니다.



승인 처리된 파일을 보면 status가 approved가 되었습니다.



거부 처리된 파일을 보면 status가 rejected인 것을 확인할 수 있습니다.



이번에는 취소 처리를 하겠습니다.




status가 expired가 되었습니다.







반응형
//