인바운드 메시징

 

게시: 2016년 5월

Workflow Manager 1.0를 사용하면 새로운 인스턴스 작성과 기존 인스턴스와의 상관 관계를 위해 워크플로가 메시지를 구독하고 받을 수 있습니다.이러한 메시지는 해당 Scope(워크플로가 호스팅되는 Scope)에서 배달되는 인바운드 메시지를 일치시키는 데 사용되는 구독의 일부로 필터를 제공하는 사용자를 기반으로 하는 단방향으로 조정된 메시지입니다.

인바운드 메시징

워크플로 정의 자체에서 ActivationFilter를 정의할 수 있습니다.이 필터는 Scope에서 메시지가 게시될 때 워크플로의 새 인스턴스가 만들어져야 하는지 여부를 정하는 데 사용됩니다.실행 중인 워크플로 인스턴스도 Subscribe와 ReceiveNotification 작업을 사용하여 필터를 정의할 수 있습니다.Workflow Manager 1.0의 Subscribe 및 ReceiveNotification 작업에 대한 자세한 내용은 2af7983b-8357-4e0f-9ba9-dfdeed05a8a7#BKMK_PubSubActivities을 참조하세요.

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

  • 속성 – 필터링 용도로 사용할 수 있는 키-값 쌍의 목록입니다.

  • 콘텐츠 – 메시지의 내용입니다.워크플로 정의의 InArgument에 매핑하거나 ReceiveNotification의 Content 속성(ReceiveParametersContent)에 매핑하기 위해 Dictionary<string, object>가 제공되어야 합니다.다음 코드 snippt는 메시지를 Scope에 게시하는 방법을 보여줍니다.

    // Create the WorkflowInstanceManager 
    WorkflowInstanceManager wim = new WorkflowInstanceManager(new Uri(RootScope + ScopeName)); 
    // Publish New Order message 
    wim.PublishNotification(new WorkflowNotification() 
    { 
        Properties = 
        { 
            { "EventName", "New Order" } 
        }, 
        Content = new Dictionary() 
        { 
            { "OrderId", Int32.Parse(orderid) }, 
            { "Cost", Double.Parse(ordercost) } 
        } 
    });
    

참고

현재 Workflow Manager 1.0에서는 양방향(요청-응답) 통신을 비롯한 직접 SOAP 메시징이 지원되지 않습니다.