※ 문서는 11.1.1.3(11g PS2)로 만들어져 있는데 저는 11.1.1.4(11g PS3)로 하였습니다. 화면(UI)이 약간 다를 수 있습니다.

Introduction

The first exercise is based on building the Sales Quote Process model. You first create an outline of the process flow as a BPMN model using the Oracle BPM Studio. Oracle JDeveloper with the BPMN Editor extension is called Oracle BPM Studio. Implementation details are added in a later exercise.

The Sales Quote scenario is as follows:
• The business process implements a solution for Sales Representatives to submit Sales Quotes and manage all the approvals within a particular Sales organization. A quick recap on the business process definition and its flow is detailed below.
• The Business Process is triggered by a Sales Representative creating a Task to Enter the Quote details in the “Enter Quote” interactive step.
• The next step is to determine the list of approvers for the Quote using business rules and also to determine whether additional review by Business Practices is required. This is accomplished through the “Determine Approval Rules” step.
• After the rules have been evaluated, the next step is to check whether “Business Practices Review” is required and if “yes” go through the “Business Practices Review” step.
• The Quote then has to get approved for the deal structure and terms. After the “Business Practices Review” has been completed, the process instance moves to the “Approve Quote” and “Approve Terms” activities that are executed in parallel.
• The “Approve Quote” activity is executed by approvers in the “Approvers” role and the “Approve Terms” by individuals that have been assigned the “Contracts” role in the organization.
• Once these 2 steps in the business process have been completed successfully, the process instance moves on to the “Finalize Contracts” step and waits for its final approval by an individual in the “Contracts” role.

The complete flow is shown in the figure below.




Creating the BPM Project for Quote Process

JDevelpoer 메뉴에서 File - New 클릭.



Applications 카테고리에서 BPM Application 선택.



Application Name은 SalesQuoteLab 입력.



처음 어플리케이션을 만들면 하나의 프로젝트도 동시에 생성하는군요...

Project Name에 QuotePorcessLab 입력. Next 클릭.



Composite With BPMN Process 선택. Finish 클릭.


 

Creating the high-level outline of the BPMN process

프로젝트가 만들어지고 아주 조금 기다리면 Create BPMN Process 마법사(?) 창이 뜹니다.

Name에 ReuqestQuoteLab 입력. Type은 Manual Process 선택. Finish 버튼 클릭.



아래와 같이 Start와 End 지점과 하나의 기본 유저 테스트가 하나 생성되어 있습니다.

마치 무슨 설계할때 쓰는 그 무엇(기억이...) 같이 생겼습니다. 행으로는 롤(역할)이 있습니다.

UserTask 액티브를 더블클릭.



Name을 Enter Quote Details 변경.



롤(역할)을 추가해보겠습니다.

BPM Project Navigator를 봐야 하는데 화면에 없다면 메뉴중 View - BPM Project Navigator 를 선택해서 보이게 합니다.



QuoteProcessLab - Oranization 에서 오른쪽 버튼 클릭 후 Open 클릭.



기본으로 추가 되어있는 "Role"을 선택 후 Edit 버튼 클릭.



Name을 SalesRep로 변경.



이번에는 Role를 추가해봅시다. Add 버튼 클릭.



Name에 Approvers 입력.



Business PracticesContracts도 추가해줍니다.



이제 Organization 편집창을 닫고, 다시 RequestQuoteLab 화면으로 갑니다.

만약 닫아서 없다면 BPM Project Navigator에서 QuoteProcessLab - Processes - RequestQuoutLab을 선택합니다.



화면의 빈 공간에서 마우스 오른쪽 버튼 클릭. Add Role 클릭



Business Practices 선택. OK 버튼 클릭.



화면 왼쪽에 롤(역할)이 하나 추가 되었습니다.



액티브를 추가할 것입니다. 만약 화면 오른쪽에 Component Palette 창이 보이지 않으면 View 에서 보이게 합시다.



User 액티브를 "Enter Quote Details" 액티브와 End 사이의 선에 드래그 앤 드랍합니다.

액티브를 드래그해서 선 위에 올려 놓으면 선 색이 파란색으로 바뀌게 됩니다.

드랍을 하면 두 액티브 사이에 삽입이 됩니다.



Name에 Business Practices Review 입력. OK 버튼 클릭.



"Business Practices Review" 액티브와 "End" 액티브를 "Business Practices" 롤 영억으로 옮깁니다.



"Approvers"와 "Contracts" 롤 영역을 추가합니다.



User 액티브를 Approvers 영역에 추가합니다.



Name은 Approve Deal 입력. OK 버튼 클릭.



기본 "Business Practices Review" 액티브에서 End로 가던 선을 삭제합니다.



Sequence Flow 를 "Etner Quote Details" 액티드에서 "Business Practices Review" 액티브로 연결합니다.



같은 방법으로 "Approve Deal" 액티브와 End와 연결합니다.



아래와 같이 "Approve Terms"와 "Finalize Contracts" 유저 액티브를 추가 하고 선을 연결합니다.



"Finalize Contracts" 액티브와 End 사이에 Service Task 액티브를 추가합니다.

Name은 Save Quote 입력.




Adding conditional split for Business Practices Review Step

조건분기 액티브를 사용 해봅시다!

Exclusive(XOR) 액티브를 "Business Practices Review" 액티브 왼쪽 공간에 추가합니다.



Name은 Is Business Practices Review required?



"Enter Quote Details" 액티브에서 "Business Practices Review" 액티브로 가는 선(흐름)을 방금 추가한 XOR 액티브로 옮깁니다.

화살표 끝쪽에서 드래그 하면 됩니다.



XOR 액티브에서 마우슨 오른쪽 버튼 클릭. Add conditional sequence flow 클릭.



"Business Practices Reivew" 액티브로 선을 클릭합니다.



다시 XOR 액티브에서 오른쪽 버튼 클릭. Add default sequence flow 클릭.



"Approve Deal" 액티브와 연결합니다.



default sequence flow는 선에 표시가 되어있는 것을 확인 할 수 있습니다. (이게 처음에는 햇갈리더라구요...)



첫번째 추가했던 선(흐름)을 더블클릭 합니다.



Name을 Yes로 변경합니다.



두번째 선(default)을 더블클릭 합니다.



Name을 No로 변경합니다.



Parallel 액티브를 "Approve Deal" 오른쪽 공간에 추가합니다.



Name은 Approvals로 합니다.



두개의 액티브가 생기는데 다른 한쪽의 액티브 이름을 Approvals Merge로 변경합니다.



처음 XOR와 유저 액티브에서 "Approve Deal" 액티브로 갔던 선(흐름) 2개를 Approvals 로 옮깁니다.



"Approve Deal" 액티브에서 "Approve Terms" 액티브로 가는 선을 삭제합니다.



"Approve Deal" 액티브를 두 패러럴(Parallel) 사이로 삽입합니다.



"Approvals" 액티브에서 마우스 오른쪽 버튼 클릭. Add default sequence flow 클릭.



"Approvals Merge" 로 선을 연결합니다.



"Approve Terms" 액티브에서 "Finalize Contracts" 액티브로 가는 선을 삭제 후, 아래와 같이 삽입합니다.



"Approvals Merge" 액티브에서 "Finalize Contracts" 액트로 가는 선(흐름)을 연결합니다.



아래와 같은 화면이 나왔습니다. (각 롤 영역 안에 액티브가 들어가 있는지 확인)




Adding loop for redo of Quote

주문 승인을 거절했을 때 다시 되돌아가는 로직을 넣어봅시다!

"Buisness Practices Review" 액티브 오른쪽 공간에 Exclusive(XOR) 액티브를 추가합니다.

Name은 Business Practices Outcome.



"Business Practices Review" 액티브에서 "Approvals" 액티브로 가던 선을 방금 추가한 XOR 액티브로 옮깁니다.



방금 추가한 XOR 액티브에서 마우스 오른쪽 버튼 클릭. Add conditional sequence flow 클릭.



"Enter Quote Details" 액티브로 선을 연결 한 후, Name은 Business Practices Rejected로 설정합니다.



다시 오른쪽 버튼 클릭. Add default sequence flow 클릭.



"Approvals" 액티브로 선을 연결 후, Name은 Business Practices Approved로 설정합니다.



"Approvals Outcome" 액티브와 "Finalize Contracts" 액티브 사이에 XOR 액티브(Name: Approvals Outcome)를 추가 후 아래와 같이 흐름을 추가합니다.

default sequence flow: "Approvals Outcome" → "Finalize Contracts", Name: Approved

conditional sequence flow: "Approvals Outcome" → "Enter Quote Details", Name: Deal or Terms Rejected



아직은 속 내용을 완벽히 구한하지 않았기 때문에 경고(느낌표)가 많이 뜰 겁니다. ㅎㅎ







tag: , , ,

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기