Share via


Actividades Pub/Sub de Workflow Manager 1.0

 

Workflow Manager 1.0 permite a los flujos de trabajo suscribirse a los mensajes y recibir estos, tanto para la creación de nuevas instancias como para la correlación con instancias existentes.Si bien la creación de instancias se impulsa mediante el elemento ActivationFilter de la definición de un flujo de trabajo, las instancias de flujo de trabajo que deseen suscribirse dinámicamente en el tiempo de ejecución a un conjunto concreto de mensajes de correlación pueden hacerlo mediante las actividades Subscribe y ReceiveNotification.

Nota

Este modelo es diferente del modelo WF4 que usa la propiedad CanCreateInstance de la actividad Receive en la medida que la información de activación se especifica fuera del flujo de trabajo (como parte de su WorkflowDefinition).

Actividades Pub/Sub

Hay cuatro actividades básicas que se pueden usar para recibir mensajes de notificación:

  • BuildMatchAllFilter: esta actividad define el filtro que se usa para hacer coincidir los mensajes entrantes (en el extremo de notificación del ámbito) con la instancia del flujo de trabajo.Este filtro realiza una coincidencia exacta en cada una de las propiedades que se especifica en el valor proporcionado.Nota: el tipo definido es relevante para la semántica de coincidencia, es decir, un elemento int de valor 1 no coincidiría con una cadena “1” en el mensaje publicado.

  • ReceiveNotification: esta actividad se usa para bloquear la ejecución del flujo de trabajo hasta que se haya recibido un mensaje de notificación coincidente.La actividad también expone las propiedades del mensaje y el contenido de modo que se puedan enlazar a las variables de flujo de trabajo.El filtro se puede proporcionar de manera explícita a la actividad o se puede usar un elemento SubscriptionHandle de una actividad Subscribe anterior.Si se usa el primer modo (proporcionar el filtro a la actividad), se realiza una anulación de suscripción implícita después de que el mensaje se haya recibido y entregado al flujo de trabajo.

  • Subscribe: esta actividad se puede usar para crear de manera explícita la regla de suscripción en función del filtro de entrada.La suscripción se almacena en una variable SubscriptionHandle, que se puede usar para actividades ReceiveNotification subsiguientes o la actividad Unsubscribe.

  • Unsubscribe: esta actividad se puede usar para anular la suscripción de manera explícita en función de un elemento SubscriptionHandle de entrada.Nota: si una variable SubscriptionHandle sale del ámbito, llamará implícitamente a la actividad Unsubscribe de modo que los controladores no se puedan fugar. Por lo tanto, la actividad Unsubscribe no siempre es necesaria.

Los mensajes se publican en el ámbito mediante el extremo de notificaciones o la API del cliente .NET (WorkflowInstanceManager) para publicar el mensaje de notificación.Un mensaje de notificación consta de dos partes:

  • Propiedades: una lista planta de pares de clave y valor que se pueden usar para fines de filtrado. Son accesibles en el flujo de trabajo mediante la propiedad Properties del elemento ReceiveNotification.

  • Contenido: el contenido del mensaje.Se puede proporcionar un elemento Dictionary<cadena, objeto> para asignarlo a la propiedad Content del elemento ReceiveNotification (ReceiveParametersContent), o bien pasar un objeto concreto, de modo que se asignará al flujo de trabajo como carga de un elemento ReceiveMessageContent.

Para obtener más información sobre la mensajería en Workflow Manager 1.0, consulte Mensajería entrante.