비즈니스 규칙 Hello World1(BizTalk Server 샘플)
Business Rules Hello World1 샘플은 BizTalk 규칙 집합을 만들고 파일(SampleRuleSet.xml)에 저장하고 로드하여 팩트의 샘플 집합을 기반으로 실행하는 방법을 보여줍니다. 샘플 규칙 집합에는 XML 요소 및 .NET 기반 개체(속성 및 멤버)를 규칙 정의의 용어로 포함하는 간단한 규칙이 포함되어 있습니다.
이 샘플의 용도
이 샘플은 다음과 같은 단계를 수행하는 실행 파일을 만듭니다.
CreateRuleset 메서드를 호출하여 주의 섹션에 설명된 규칙 집합을 빌드합니다.
SaveToFile 메서드를 호출하여 규칙 집합을 파일에 저장하는 방법을 보여 줍니다.
LoadFromFile 메서드를 호출하여 파일에서 규칙 집합을 로드하는 방법을 보여 줍니다.
규칙 집합을 실행하는 샘플 팩트를 생성합니다.
샘플 팩트에 대해 규칙 집합을 실행하여 화면 출력을 생성합니다.
일시 중지하여 규칙 집합 파일 SampleRuleStore.xml을 검토합니다.
샘플의 후속 실행을 준비하는 과정에서 규칙 집합 파일을 삭제하여 정리합니다.
이 샘플이 있는 위치
< 샘플 경로>\Business Rules\Business Rules Hello World1\
다음 표는 이 샘플의 파일을 보여 주고 각각의 용도에 대해 설명합니다.
파일 | Description |
---|---|
App.ico, AssemblyInfo.cs, BusinessRulesHelloWorld1.csproj, BusinessRulesHelloWorld1.sln | 규칙 집합을 만들고 저장하고 로드하고 실행하는 이 샘플 부분에 대한 프로젝트, 솔루션 및 관련 파일입니다. |
HelloWorld1.cs | 규칙 집합을 만들고 규칙 집합을 파일로 저장하고 파일에서 규칙 집합을 로드하는 것을 보여주는 메서드가 포함된 Visual C# 파일입니다. 또한 이러한 메서드를 호출한 다음 만들어진 규칙 집합을 실행하는 주변 코드가 포함되어 있습니다. |
Cleanup.bat | 어셈블리의 배포를 취소하고 GAC(전역 어셈블리 캐시)에서 어셈블리를 제거하는 데 사용됩니다. 송신 및 수신 포트를 제거합니다. 필요한 경우 Microsoft IIS(인터넷 정보 서비스) 가상 디렉터리를 제거합니다. |
SampleDocumentInstance.xml | SampleSchema.xsd 파일에 정의된 스키마를 준수하는 샘플 입력 파일입니다. |
SampleSchema.xsd | Visual C# 파일 HelloWorld1.cs에서 만든 규칙 집합에서 참조하는 요소로 간단한 스키마를 정의하는 스키마 파일입니다. |
Setup.bat | 이 샘플을 빌드 및 초기화하는 데 사용됩니다. |
\MySampleLibrary 폴더에서: AssemblyInfo.cs, MySampleLibrary.csproj, MySampleLibrary.sln |
만들어진 규칙 집합에서 참조하는 개체를 정의하는 클래스를 제공하는 이 샘플 부분에 대한 프로젝트, 솔루션 및 관련 파일입니다. |
\MySampleLibrary 폴더에서: MySampleLibraryClass.cs |
만든 규칙의 IF 부분에서 참조되는 속성과 생성된 규칙의 THEN 부분에서 호출될 수 있는 메서드를 포함하는 Visual C# 파일입니다. |
이 샘플 빌드 및 초기화
다음 절차를 사용하여 Business Rules Hello World1 샘플을 빌드하고 초기화합니다.
이 샘플을 빌드 및 초기화하려면 다음을 수행하십시오.
명령 창에서 다음 폴더로 이동합니다.
< 샘플 경로>\Business Rules\Business Rules Hello World1\
다음 작업을 수행하는 Setup.bat 파일을 실행합니다.
- 이 샘플에 대한 Microsoft Visual Studio 프로젝트를 컴파일하고 배포합니다.
참고
이 샘플을 실행하기 전에 BizTalk Server가 빌드 및 초기화 프로세스 동안 오류를 보고하지 않았는지 확인해야 합니다.
참고
Setup.bat 파일을 실행하지 않은 채 이 샘플에서 프로젝트를 열고 빌드하려는 경우 먼저 .NET Framework Strong Name 유틸리티(sn.exe)를 사용하여 강력한 이름 키 쌍을 만들어야 합니다. 이 키 쌍을 사용하여 결과 어셈블리를 등록합니다.
참고
Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat를 두 번째로 실행하기 전에 Cleanup.bat를 실행해야 합니다.
이 샘플 실행
다음 절차를 사용하여 Business Rules Hello World1 샘플을 실행합니다.
이 샘플을 실행하려면
명령 창에서 다음 폴더로 이동합니다.
< 샘플 경로>\Business Rules\Business Rules Hello World1\bin\Debug\
명령 창에서 이 샘플의 실행 파일 이름(BusinessRulesHelloWorld1.exe)을 입력한 다음 Enter를 누릅니다.
참고
실행하는 동안 이 샘플은 bin\Debug 폴더에 SampleRuleStore.xml 규칙 집합 파일을 생성합니다. 실행 파일이 일시 중지되면 Enter를 눌러 끝내기 전에 이 파일의 내용을 검토할 수 있습니다. 아무 키나 눌러 끝내기 전에 반드시 이 파일을 닫아야 합니다. 그렇지 않으면 샘플의 후속 실행을 준비하는 과정에서 실행 파일이 규칙 집합 파일을 삭제하지 못할 수 있습니다.
만든 규칙 집합의 특성에 따라 제공된 샘플 입력 파일 SampleDocumentInstance.xml 사용하여 이 샘플을 실행하는 경우 해당 ID 요소에 대해 1의 값이 정의되어 있으면 다음 출력이 표시됩니다.
Creating a new ruleset ...
Saving ruleset to SampleRuleStore.xml ...
Loading ruleset ...
Asserting objects ...
Executing ...
MySampleBusinessObject Class -- MySampleMethod executed for object 2 with parameter 5
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5
Press any key to finish ...
참고
앞의 코드와 다음 코드 모두에서 굵게 표시된 출력은 규칙 집합에서 참조하는 MySampleLibrary 폴더의 파일에 의해 정의된 샘플 비즈니스 개체에 의해 생성된 출력입니다.
샘플 입력 파일 SampleDocumentInstance.xmlID 요소와 연결된 값을 1에서 2(2)로 변경하면 다음과 같이 출력이 변경됩니다.
Creating a new ruleset ...
Saving ruleset to SampleRuleStore.xml ...
Loading ruleset ...
Asserting objects ...
Executing ...
MySampleBusinessObject Class -- MySampleMethod executed for object 1 with parameter 5
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5
Press any key to finish ...
MyValue 속성이 샘플 입력 파일 SampleDocumentInstance.xml ID 요소와 연결된 값과 일치하는 값(생성 중)으로 설정된 MySampleBusinessObject 클래스의 개체에 대한 출력 줄을 가져오지 않습니다.
의견
CreateRuleset() 메서드 내에서 프로그래밍 방식으로 만든 규칙은 다음을 보여줍니다.
IF
MySampleBusinessObject.MyValue 는 XML 문서의 ID 요소 값과 같지 않습니다.
THEN
이 경우 정수 매개 변수가 있는 MySampleBusinessObject.MySampleMethod(int)는 상수 5(5)로 하드 코딩됩니다. 이 메서드는 MySampleBusinessObject 클래스 –-를 시작하는 출력 줄을 생성합니다.
이 규칙은 다음에 따라 달라집니다.
MyValue라는 공용 속성과 MySampleMethod(정수 매개 변수를 사용하는)라는 public 메서드가 있는 MySampleBusinessObject 클래스입니다.
ID 요소가 포함된 XML 문서를 정의하는 XSD(XML 스키마 정의 언어) 스키마입니다.
클래스와 스키마의 측면에서 규칙을 정의하지만 실행하는 동안 관련 클래스의 개체 인스턴스 및 관련 스키마의 문서 인스턴스가 필요합니다. 이러한 실행 시간 인스턴스(팩트라고 함)에 대해 규칙을 평가합니다. 이 샘플에서는 MyValue 속성에 대해 서로 다른 값으로 생성된 MySampleBusinessObject 개체의 여러 인스턴스와 ID 요소에 대한 값을 포함하는 정의된 스키마의 단일 XML instance.