주요 메시지 및 필드
이 섹션에서는 OrderBroker 및 OrderManager 오케스트레이션에서 처리하는 주요 메시지 및 필드에 대해 간략하게 설명합니다. 애플리케이션의 전체 메시지 목록은 비즈니스 프로세스 관리 솔루션에 대한 메시지 참조를 참조하세요.
주문 메시지
OrderBroker의 주문 메시지는 여러 부분으로 구성된 메시지입니다. 한 파트에는 라우팅 정보가 포함되고 다른 파트에는 주문 정보가 포함됩니다. 라우팅 메시지 파트를 정의하는 .NET 클래스는 오케스트레이션이 모든 클래스 멤버를 메시지 속성으로 액세스할 수 있도록 모든 필드를 고유 필드로 설정합니다. 또한 클래스는 메시지가 라우팅 가능하도록 라우팅 클래스에 승격 필드를 포함합니다. 승격 필드도 프로그래밍되고 덜 복잡한 표기법으로 참조될 수 있도록 모두 고유 필드로 설정됩니다.
.NET 클래스를 사용하여 메시지를 정의하는 방법에 대한 자세한 내용은 사용자 코드에서 메시지 생성을 참조하세요.
주문 식별
솔루션은 라우팅 정보의 세 필드를 사용하여 주문을 식별합니다. 이 세 가지 중 두 가지는 주문 식별자(OrderID) 및 CustomerID(고객 식별자)를 식별합니다. 그러나 두 필드가 주문을 식별하지만 주문의 여러 인스턴스가 있을 수 있습니다. 예를 들어 고객이 새 표준 케이블 설치를 주문한 다음 나중에 전화를 걸어 주문을 새 디럭스 케이블 설치로 변경할 수 있습니다. 대체로 업데이트된 주문이 도착하기 전에 원래 주문이 완료되지 않으므로 주문의 두 인스턴스가 만들어집니다.
주문 인스턴스를 구분하기 위해 솔루션은 고유한 주문 시퀀스 번호(SeqNum)를 사용합니다. OrderID, CustomerID 및 SeqNum의 세 필드는 주문의 instance 고유하게 식별합니다.
마지막으로 솔루션이 SeqNum에 대해 증가하는 숫자를 사용하기 때문에 솔루션은 업데이트를 원래 순서와 구분할 수 있습니다. 업데이트의 SeqNum이 더 높습니다.
참고
솔루션은 주문 요청을 만드는 시스템에 의존하여 SeqNum에 오름차순 값을 할당합니다. 입력 웹 서비스인 CSRMainForm.aspx.cs에 대한 ASP 페이지의 코드와 요청을 주문으로 변환하는 맵 CSR_OrderRequest_To_Order.btm 을 참조하세요.
상태
OrderBroker, OrderManager 및 해당 위성 오케스트레이션은 순서 메시지 라우팅 부분의 두 필드를 사용하여 상태를 추적합니다. 상태 및 스테이지. 상태 필드는 주문의 상태 추적합니다. 다음 표에서는 상태 필드의 값을 설명합니다.
값 | 설정 위치 | Description |
---|---|---|
수락됨 | OrderBroker | 주문이 OrderManager로 이동할 수 있습니다. |
완료됨 | OrderManager | 전체 주문의 처리가 오류 없이 완료되었습니다. |
오류 | OrderManager | 주문에서 오류가 검색되었습니다. |
ORDERMANAGER-EXCEPTION | OrderManager | 주문을 처리하는 동안 주문 관리자에서 예외가 발생했습니다. |
STAGE_n_COMPLETED | OrderManager | 오류 없이 완료된 n단계를 나타냅니다. 여기서 n은 숫자입니다. |
STARTED | OrderManager | 주문 처리가 시작되었습니다. |
TERMINATED | OrderManager | 취소로 인해 주문 처리가 중지되었습니다. |
단계
OrderManager는 라우팅 파트의 스테이지 필드를 사용하여 메시지의 처리 단계를 나타냅니다. 이 필드는 메시지를 처리하는 위성 오케스트레이션을 결정하는 필터에 사용됩니다. OrderManager는 처음에 스테이지를 1로 설정합니다. 주문이 종료되거나 완료되면 OrderManager 는 Stage 를 오케스트레이션 변수인 Stop 값으로 설정합니다.
RequestType
OrderManager는 주문 메시지의 RequestType 필드도 사용합니다. 필드 값이 TERMINATE이면 주문이 종료됩니다. 오케스트레이션은 RequestType 필드의 다른 모든 값을 무시하고 주문 시퀀스 번호를 사용하여 주문 업데이트 및 중복을 인식합니다. 그렇지 않으면 OrderBroker 는 RequestType 필드를 공급업체 또는 고객 서비스 시스템의 메시지에 있는 상태 필드 값으로 설정합니다.
OrderTypeCode, OrderType 및 ServiceClass
주문 유형은 주문 메시지의 OrderTypeCode 필드에 있습니다. OrderBroker는 해당 값을 고객 서비스 시스템 또는 공급업체 시스템에서 오는 메시지의 OrdTypeCode 필드 값으로 설정합니다. 다음 표에서는 OrderTypeCode에 사용할 수 있는 값을 보여줍니다.
값 | Description |
---|---|
NS | 새 표준 케이블 설치입니다. |
ND | 새 디럭스 케이블 설치입니다. |
XS | 표준 케이블 설치를 취소합니다. |
XD | 디럭스 케이블 설치를 취소합니다. |
CS | 표준 케이블 설치를 변경합니다. |
CD | 디럭스 케이블 설치를 변경합니다. |
UNKNOWN | 알 수 없습니다. |
나중에 유효성 검사 오케스트레이션은 비즈니스 규칙 엔진을 사용하여 이러한 값을 OrderType 및 ServiceClass라는 두 개의 별도 필드로 변환합니다. 유효성 검사 오케스트레이션은 첫 번째 주문 처리 단계인 CableOrder1에서 호출됩니다.
다음 표에서는 OrderType에 대한 값을 제공합니다.
OrderTypeCode 값 | OrderType 값 |
---|---|
NS, ND | 활성화 |
XS, XD | 취소 |
CS, CD | CHANGE |
잘못된 조합입니다. | INVALID |
ServiceClass의 값은 해당하는 단일 문자, 표준의 경우 S 또는 디럭스의 경우 D입니다.
추가 식별자
또한 솔루션은 각 개별 주문에 대해 식별자를 사용합니다. 이 식별자 RequestId는 모든 주문에서 고유해야 합니다. 입력 웹 서비스에서 자동으로 GUID를 할당합니다. 일괄 처리 입력을 통해 제출된 메시지에는 이 필드의 값이 포함되어야 합니다. 필드는 순서 스키마의 RequestID 입니다. 그러나 OrderBroker는 CSR_OrderRequest 스키마를 사용하여 주문을 처리합니다. 필드는 이 스키마에서 ReqId 로 표시되며 고유 속성입니다.
솔루션은 RequestId 를 사용하여 BAM 추적 시스템에 사용되는 활동 식별자를 형성합니다.
참고 항목
프로세스 관리자 논리
프로세스 관리자를 통한 주문 흐름
사용자 코드에서 메시지 생성
비즈니스 프로세스 관리 솔루션의 메시지 참조