비즈니스 규칙을 사용하는 대출 처리(BizTalk Server 샘플)
비즈니스 규칙을 사용하는 대출 처리 샘플은 오케스트레이션 내부에서 관리되는 규칙 집합을 사용하는 방법과 팩트라고 하는 입력 조합을 사용하는 방법을 보여 줍니다. 이를 통해 문서 내에서 처리할 몇 가지 필드 설정을 계산할 수 있습니다. 팩트는 .NET 기반의 어셈블리를 호출하여 발생하는 결과, 메시지의 XML에서 검색한 값 또는 데이터베이스에서 검색한 데이터일 수 있습니다. 샘플은 언제든지 규칙을 변경할 수 있는 방법도 보여 주므로 재배포하지 않고도 이후 계산에 영향을 미칩니다.
이 샘플의 용도
이 샘플은 단순한 대출 처리 시나리오의 컨텍스트 내에서 이러한 기능을 보여 줍니다. BizTalk Server 오케스트레이션은 XML 메시지 형식으로 대출 사례라고도 하는 대출 애플리케이션을 선택하고 처리합니다. 이 오케스트레이션은 비즈니스 규칙 엔진을 사용하여 규칙에 따라 들어오는 메시지를 평가함으로써 규칙의 응용 프로그램 결과로 메시지를 수정한 다음 메시지를 출력 폴더에 파일로 기록합니다.
처리 중인 메시지를 포함하여 여러 원본의 팩트를 기반으로 이 샘플은 처리 중인 메시지의 IncomeStatus, CommitmentsStatus, EmploymentStatus 및 ResidencyStatus 요소를 설정합니다.
이 샘플이 있는 위치
<샘플 경로>\Business Rules\Loans Processing using Business Rules\
다음 표는 이 샘플의 파일을 보여 주고 각각의 용도에 대해 설명합니다.
파일 | Description |
---|---|
Case.xsd | 대출 케이스로도 알려져 있는 인바운드 대출 응용 프로그램용 스키마 파일입니다. |
Cleanup.bat | 어셈블리의 배포를 취소하고 GAC(전역 어셈블리 캐시)에서 어셈블리를 제거하는 데 사용됩니다. 송신 및 수신 포트를 제거합니다. 필요한 경우 Microsoft IIS(인터넷 정보 서비스) 가상 디렉터리를 제거합니다. |
Create_CustInfo_Table.sql | SQL Northwind 샘플 데이터베이스에서 CustInfo 테이블을 만드는 데 필요한 SQL 스크립트. |
LoanProcessorBinding.xml | 포트 바인딩과 같은 자동화된 설치에 사용됩니다. |
LoansProcessor.btproj, LoansProcessor.sln | 이 샘플에 사용할 BizTalk 프로젝트 및 솔루션 파일입니다. |
My Sample Service.odx | 이 샘플에 대한 오케스트레이션을 BizTalk Server. |
sampleLoan.xml | 파일의 XML 구조 끝부분에서 4개의 상태 요소 값이 비어 있는 샘플 입력 파일입니다. |
Setup.bat | 이 샘플을 빌드 및 초기화하는 데 사용됩니다. |
\CreateRules 폴더에서: App.ico, AssemblyInfo.cs, Case.xsd, CreateLoanProcessingPolicy.csproj, CreateLoanProcessingPolicy.sln, WriteToBRL.cs |
집합에서 규칙을 프로그래밍 방식으로 만드는 응용 프로그램을 만드는 데 사용되는 Visual C# 프로젝트, 솔루션, 원본 및 관련 파일입니다. 프로그래밍 방식으로 빌드하는 규칙 집합의 예는 원본 파일 WriteToBRL.cs를 참조하십시오. |
\myFactRetriever 폴더에서: AssemblyInfo.cs FactRetrieverForLoansProcessing.cs myFactRetriever.csproj myFactRetriever.sln |
이전에 Northwind 샘플 SQL Server 데이터베이스에 추가된 CustInfo 테이블 정보를 검색하기 위해 사용하는 어셈블리를 만드는 데 사용되는 Visual C# 프로젝트, 솔루션, 원본 및 관련 파일입니다. |
이 샘플 빌드 및 초기화
사용자의 컴퓨터에 Northwind 데이터베이스가 있어야 합니다.
중요
이 샘플을 실행하려면 Northwind SQL Server 샘플 데이터베이스가 있어야 합니다. 다운로드하려면 Microsoft SQL Server 대한 Northwind 및 pubs 샘플 데이터베이스로 이동합니다.
명령 창에서 다음 폴더로 이동합니다.
<샘플 경로>\Business Rules\Loans Processing using Business Rules
다음 작업을 수행하는 Setup.bat 파일을 실행합니다.
GAC를 정리하여 이 샘플을 이전에 실행했을 때 사용되고 남은 데이터를 제거합니다.
팩트 검색기 프로그램 myFactRetreiever.dll을 컴파일하여 배포합니다.
SQL 스크립트 파일 Create_CustInfo_Table.sql을 사용하여 Northwind 샘플 SQL 데이터베이스에 CustInfo 테이블을 추가합니다.
공유 SQL 규칙 저장소를 정리하여 이 샘플을 이전에 실행했을 때 사용되고 남은 항목을 제거합니다.
대출 처리 규칙 집합의 최신 버전(1.0)을 만들고, 게시하고, 배포합니다.
참고
BizTalk Server 제공된 비즈니스 규칙 작성기 도구를 사용하여 프로그래밍 방식으로 설정된 규칙을 검사할 수 있습니다.
이 샘플에 대한 입력(In) 및 출력(Out) 폴더를 만듭니다.
이 샘플을 조정하는 데 사용하는 오케스트레이션이 포함된 BizTalk 프로젝트를 포함하여 이 샘플에 대한 나머지 Visual Studio 프로젝트를 컴파일하고 배포합니다.
BizTalk Server 수신 위치와 송신 및 수신 포트를 만들고 바인딩합니다.
참고
이 샘플은 포트를 만들고 바인딩할 때 다음과 같은 경고를 표시합니다.
Warning: Receive handler not specified for receive location "LoansProcessor_1.0.0.0_LoansProcessor.My_Sample_Service_Incoming_ReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "LoansProcessor.My_Sample_Service"; updating with first available host.
이러한 경고는 무시해도 됩니다. (사용자 설치에서 이름 지정에 차이가 있을 수 있는 경우 이를 수용하기 위해 호스트 이름과 수신 핸들러가 바인딩 파일에서 생략되었습니다.)
수신 위치를 사용하도록 설정하고 송신 포트를 시작합니다.
오케스트레이션을 등록하고 시작합니다.
참고
- BizTalk 호스트 이름이 BizTalkServerApplication이 아닌 경우 적절한 호스트 이름을 반영하도록 Setup.bat 파일과 LoanProcessorBinding.xml 파일을 수정합니다.
- 이 샘플을 실행하기 전에 BizTalk Server가 빌드 및 초기화 프로세스 동안 오류를 보고하지 않았는지 확인해야 합니다.
- Setup.bat 파일을 실행하지 않은 채 이 샘플에서 프로젝트를 열고 빌드하려는 경우 먼저 .NET Framework Strong Name 유틸리티(sn.exe)를 사용하여 강력한 이름 키 쌍을 만들어야 합니다. 이 키 쌍을 사용하여 결과 어셈블리를 등록합니다.
- Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat를 두 번째로 실행하기 전에 Cleanup.bat를 실행해야 합니다.
이 샘플 실행
비즈니스 규칙을 사용하는 대출 처리 샘플을 실행하려면
파일 sampleLoan.xml 복사본을 \In 폴더에 붙여넣습니다.
Out 폴더에서 만든 .xml 파일을 확인합니다. Xml 구조의 끝에 있는 네 가지 상태 요소에 데이터가 추가된 입력 XML 메시지가 포함되어 있습니다. IncomeStatus, CommitmentsStatus, EmploymentStatus 및 ResidencyStatus.
비즈니스 규칙 작성기 도구를 사용하여 규칙 집합에서 규칙을 변경한 다음 이러한 규칙을 재배포할 수 있습니다.
비즈니스 규칙 작성기 도구를 사용하여 규칙 집합에서 하나 이상의 규칙을 변경하려면
시작을 클릭하고 프로그램을 가리킨 다음 Microsoft BizTalk Server 20xx를 가리킨 다음 비즈니스 규칙 작성기를 클릭합니다.
참고
UAC(사용자 계정 컨트롤)를 지원하는 시스템에서는 관리 권한을 사용하여 도구를 실행해야 할 수 있습니다. 이렇게 하려면 애플리케이션을 마우스 오른쪽 단추로 클릭한 다음 관리자 권한으로 실행을 선택합니다.
SQL Server 대화 상자에서 확인을 클릭하여 규칙 저장소에 연결합니다.
정책 ExplorerNode LoanProcessing 아래에서 버전 1.0 – 배포된 노드를 마우스 오른쪽 단추로 클릭한 다음 복사를 클릭합니다.
LoanProcessing을 마우스 오른쪽 단추로 클릭한 다음 붙여넣기를 클릭합니다.
IncomeStatus, CommitmentsStatus, EmploymentStatus 및 ResidencyStatus 요소에 대해 다른 값을 생성하는 방식으로 규칙 또는 작업을 변경합니다. 변경하도록 선택한 규칙의 부정 부분(기본적으로 Else 절)의 값도 변경해야 합니다.
다음 표에는 이 샘플에서 사용된 규칙 집합이 표시됩니다. 별도로 언급되지 않는 한 팩트는 들어오는 XML 메시지에서 가져옵니다. 문자열 (db)는 팩트의 원본으로 데이터베이스를 나타냅니다.
규칙 번호 규칙 이름 설명 1 Income Status Rule IF BasicSalary + OtherIncome> 0
그런 다음 IncomeStatus = 유효2 Commitments Status Rule IF ID == ID(db)
AND
IF CreditCardBalance(db)> 500
THEN CommitmentsStatus =
"Compute Commitments"3 Employment Status Rule IF EmploymentType | TimeInMonths> 18
그런 다음 EmploymentStatus = 유효4 Residency Status Rule IF PlaceOfResidence | TimeInMonths> 18
그런 다음 ResidencyStatus = 유효한!1, !2, !3, !4 Negation Rules 규칙 1-4에 설명된 해당 조건의 논리적 NOT 조건입니다. 결과 작업은 설정되는 문자열의 변경 내용입니다. 버전 1.1(저장되지 않음) 노드를 마우스 오른쪽 단추로 클릭한 다음 저장을 클릭합니다.
버전 1.1 노드를 마우스 오른쪽 단추로 클릭한 다음 게시를 클릭합니다.
버전 1.1 노드를 마우스 오른쪽 단추로 클릭한 다음 배포를 클릭합니다.
변경 사항이 공유 SQL Server 규칙 저장소로 전파될 때까지 60초 정도 대기합니다.
파일 sampleLoan.xml 복사본을 폴더 In에 붙여 넣습니다.
Out 폴더에서 만든 .xml 파일을 확인합니다. XML 구조의 끝에 있는 네 가지 상태 요소에 데이터가 추가된 입력 XML 메시지가 포함됩니다. IncomeStatus, CommitmentsStatus, EmploymentStatus 및 ResidencyStatus. 이러한 요소에 추가된 데이터는 이 절차의 5단계에서 수행된 변경의 특성에 따라 이전 실행과 다르거나, 다르지 않습니다.
의견
이 샘플에 대한 추적 정보를 보려면 비즈니스 규칙 엔진 배포 마법사를 사용하여 관련 규칙 집합(대출 처리)을 배포 취소한 다음 재배포해야 합니다.
이 샘플은 비즈니스 규칙을 사용하여 오케스트레이션 내부에서 규칙 양식으로 비즈니스 정책을 적용하는 방법을 보여 줍니다. 또한 정책을 변경하고, 오케스트레이션 솔루션을 다시 컴파일하거나 재배포하지 않고 오케스트레이션 내부에서 정책의 변경 사항을 동적으로 반영하도록 하는 방법도 보여 줍니다.
이 견본에서 입력 대출 케이스는 구조가 다음과 같은 XML 메시지입니다.
Name
ID
Income
BasicSalary
OtherIncome
EmploymentType
TimeInMonths
PlaceOfResidence
TimeInMonths
CommitmentsStatus
IncomeStatus
EmploymentStatus
ResidencyStatus