반응형
Introduction

정해진 업무의 규칙에 따라서 처리를 하게 할 수 있습니다.



Creating and Using New Business Rules

Adding Business Rules Activity

QuoteEntered(Measurement)와 IS Business Practices Review required?(XOR) 사이에 Business Rule 액티브티를 추가합니다.



Name: Determine Approvals




Adding Data Object to hold rules results

Business Object 를 추가합니다.



Name: ApprovalFlow
Destination Module: Data

Based on External Schema 체크 후 찾기 버튼 클릭.



Quote.xsd - ApprovalFlow 선택.



OK 버튼을 클릭합니다.



RequestQuoteLab BPM 편집 화면의 구조 패널에서 Process Data Object 를 추가합니다.



Name: approvalFlow
Type: <Component>

찾기(돋보기) 버튼을 클릭합니다.



ApprovalFlow 선택.



OK 버튼을 클릭합니다.




Creating new Rules Dictionary[각주:1]

DeterMine Approvals(Business Rule)를 더블클릭하여 편집 합니다.

Implementation 탭으로 이동 후 Business Rule 을 추가합니다. (녹색 + 버튼)

 



Name: ApprovalRules

Input Data Object 를 추가합니다.



RequestQuoteLab - quote 를 추가합니다.



방향(Direction)을 출력(Output)으로 변경 후 approvalFlow 를 추가합니다.


OK 버튼을 클릭하면 Business Ruels Dictionary 이 만들어집니다.




Bind Business Rules Activity to Implementation

Use Associations 체크 후 편집(연필) 버튼을 클릭합니다.

 



입력에는 quote, 출력에는 approvalFlow 를 넣어줍니다.




Defining Rules

Now it's time to define the rule within the dictionary you just created.


Adding Decision Table Rules

ApprovalRules.rules 를 열어서 편집합니다.



Globals 탭으로 이동합니다.

추가 버튼을 클릭합니다.



Name: preApprovedDiscount
Type: double

Value 오른쪽의 Expression builder 버튼을 클릭합니다.



0.3 을 입력합니다.



Final 체크 후 OK 버튼을 클릭합니다.



같은 방법으로 추가합니다.

Name: tier2Approvers-base
Type: String
Value: "wfaulk" // 쌍따옴표(") 포함!



Name: tier2Approvers-high
Type: String
Value: "wfaulk,jlondon"



총 3개의 글로벌 변수(인듯?)가 추가되었습니다.



Bucketsets 탭으로 이동합니다.

추가 버튼 클릭 - List of Ranges 클릭.



Bucketset3 이 추가되었습니다. 선택 후 편집 버튼을 클릭합니다.



Name: DiscountBuckets

아래와 같이 4개의 Range Bucket Values 를 설정합니다.



또 하나의 Bucketset 을 추가합니다.

Name: RevenueBuckets

아래와 같이 Range Bucket Values 를 추가합니다.



2개의 Bucketset 을 추가하였습니다.



Ruleset1 탭으로 이동합니다.



DecisionTable1 이라고 되어 있는 이름을 ApprovalMatrix 로 변경합니다.



조건(condition)을 추가합니다.



<edit condition> 부분을 더블클릭 후 수식편집(Expression Builder) 버튼을 클릭합니다.



Variables 탭에서 QuoteSummaryType - effectiveDiscount 를 선택 후 Insert Into Expression 버튼을 클릭합니다.



뒤에 <=  를 입력하고 Constants 탭에서 preApprovedDiscount 를 수식에 추가합니다.



수식이 완성되었습니다. OK 버튼을 클릭합니다.



조건을 하나 추가 후 <edit condition> 더블 클릭 후 effectiveDiscount 를 선택합니다.



조건 추가 후 totalNetRevenue 를 선택합니다.



아래와 같이 3개의 조건이 추가 되었습니다.


두번째 조건(QuoteSummary.effectiveDiscount) 선택 후 Local List of Ranges 콥보 클릭 후 DiscountBuckets 선택.



세번째 조건(QuoteSummaryType.totalnetRevenue)은 RevenueBuckets 를 선택합니다.



Assert New 액션을 추가합니다.



assert new 부분을 더블클릭 합니다.



Facts: ApprovalFlowType

Properties 에 나오는 모든 Parameterized 를 체크합니다.



아래와 같이 액션이 만들어졌습니다.



R1 아래 첫번째 라인(C1)의 ? 를 클릭 후 true 를 체크합니다.



Rule 을 추가합니다.



새로 추가된 룰(R1)에 첫번째 라인(C1) ? 를 클릭 후 false 를 선택합니다.



그러면 false 로 선택한 Rule 이 두번째로 이동 했습니다. (햇갈리지 마세용!)

R2 의 두번째 라인(C2) ? 를 클릭 후 <0.3 과 (0.3, 0.6) 을 체크합니다.



이런식으로 R4 까지 완성 합니다.

나머지 설정 안한 ? 부분은 해당 셀에서 오른쪽 버튼 클릭 후 Don't Care 를 클릭합니다.



? 표시가 - 표시로 바뀌었습니다.

Action 쪽도 아래 그림처럼 완성해줍니다.



R4 의 Confilict 셀(R3)을 더블클릭합니다.



Resolution 칼럼의 콤보를 Override 로 변경합니다.



비지니스 룰(Business Rule)이 완성되었습니다.



아래의 흐름(Flow)을 수정합니다.



아래와 같이 조건을 변경합니다.

비지니스 룰을 거쳐서 나온 결과를 비교합니다.




Testing

인스턴스 생성 후 EM에서 확인해봅시다.



비지니스 룰을 거쳐 갔습니다.

출력 데이터를 확인 해봅시다.




이 부분에 대해서는 9장에서 자세히 다루겠습니다.





9장 후다닥하느라 8장까지 완료한 소스를 따로 안 빼놨네요 -_-;;;
  1. (컴퓨터의) 사전[딕셔너리] [본문으로]
반응형
//