워크플로 관리자 1.0 Pub/Sub 작업

 

Workflow Manager 1.0를 사용하면 새로운 인스턴스 작성과 기존 인스턴스와의 상관 관계를 위해 워크플로가 메시지를 구독하고 받을 수 있습니다.인스턴스 작성이 워크플로 정의의 ActivationFilter에 의해 이루어지는 반면 특정한 상관 메시지 세트를 런타임에 동적으로 구독하려는 워크플로 인스턴스는 Subscribe와 ReceiveNotification 작업을 사용하여 이를 수행할 수 있습니다.

참고

이 모델은 활성화 정보가 워크플로 밖에서 WorkflowDefinition의 일부로 지정되므로 Receive의 CanCreateInstance 속성을 사용하는 WF4 모델과 다릅니다.

Pub/Sub 작업

다음의 4가지 핵심 작업을 사용하여 알림 메시지를 받을 수 있습니다.

  • BuildMatchAllFilter – 이 작업은 워크플로 인스턴스로 들어오는 메시지(Scope의 Notification 끝점에 있음)를 일치시키는 데 사용되는 필터를 정의합니다.이 필터는 지정된 속성 각각에 대해 제공된 값과 정확하게 일치시키지 않습니다.참고: 정의된 유형은 일치 의미 체계와 관련됩니다. 즉, 게시된 메시지에서 int 1은 string “1”과 일치하지 않습니다.

  • ReceiveNotification – 이 작업은 일치 알림 메시지가 수신될 때까지 워크플로 실행을 차단하는 데 사용됩니다.또한 이 작업은 메시지의 속성과 콘텐츠를 노출시켜 워크플로 변수와 바인딩될 수 있도록 합니다.필터는 작업에 명시적으로 제공되거나 SubscriptionHandle이 이전 Subscribe 작업에서 사용될 수 있습니다.필터를 작업에 제공하는 방식이 사용되면 메시지가 수신되어 워크플로에 배달된 후 구독 취소가 암시적으로 수행됩니다.

  • Subscribe – 이 작업은 입력 필터를 기반으로 구독 규칙을 명시적으로 작성하는 데 사용할 수 있습니다.구독은 SubscriptionHandle 변수에 저장되는데 이 변수는 후속 ReceiveNotification 작업 및/또는 Unsubscribe 작업에 사용될 수 있습니다.

  • Unsubscribe – 이 작업은 입력 SubscriptionHandle을 기반으로 명시적으로 구독 취소하는 데 사용할 수 있습니다.참고: SubscriptionHandle 변수가 범위를 벗어나면 핸들이 유출되지 않도록 구독 취소를 암시적으로 호출하므로 Unsubscribe 작업이 항상 필요한 것은 아닙니다.

메시지는 Notifications 끝점을 사용하거나 알림 메시지를 게시하기 위한 .NET 클라이언트 API(WorkflowInstanceManager)를 사용하여 Scope에 게시됩니다.알림 메시지는 다음과 같은 두 부분으로 구성됩니다.

  • 속성 – 필터링 용도로 사용할 수 있는 키-값 쌍의 목록으로 ReceiveNotification의 Properties 속성을 사용하여 워크플로에서 액세스할 수도 있습니다.

  • 콘텐츠 – 메시지의 내용입니다.ReceiveNotification의 Content 속성(ReceiveParametersContent)에 매핑하기 위해 Dictionary<string, object>가 제공되거나 ReceiveMessageContent의 페이로드로 워크플로에 매핑될 특정 개체가 전달될 수 있습니다.

Workflow Manager 1.0의 메시징에 대한 자세한 내용은 인바운드 메시징을 참조하세요.