Messaggistica in ingresso
Pubblicato: maggio 2016
Progettazione flussi di lavoro 1.0 consente ai flussi di lavoro di eseguire una sottoscrizione per i messaggi e di riceverli sia per la creazione di nuove istanze sia per la correlazione a istanze esistenti.Si tratta di messaggi negoziati unidirezionali per i quali è necessario specificare un filtro come parte della sottoscrizione allo scopo di determinare la corrispondenza dei messaggi in ingresso recapitati all'ambito corrispondente, ossia quello in cui è ospitato il flusso di lavoro.
Messaggistica in ingresso
Le definizioni di flusso di lavoro possono definire una proprietà ActivationFilter.Questo filtro viene usato per determinare se è necessario creare una nuova istanza del flusso di lavoro quando viene pubblicato un messaggio nell'ambito.Un'istanza di flusso di lavoro in esecuzione può inoltre definire filtri mediante le attività Subscribe e ReceiveNotification.Per altre informazioni sulle attività Subscribe e ReceiveNotification in Progettazione flussi di lavoro 1.0, vedere 2af7983b-8357-4e0f-9ba9-dfdeed05a8a7#BKMK_PubSubActivities.
I messaggi vengono pubblicati nell'ambito mediante l'endpoint delle notifiche o l'API client .NET (WorkflowInstanceManager).Un messaggio di notifica è costituito da due parti:
Properties: un elenco semplice di coppie chiave-valore che è possibile usare a scopo di filtro.
Content: il contenuto del messaggio.È necessario specificare un tipo Dictionary<string, object> per eseguire il mapping alle istanze di InArgument della definizione del flusso di lavoro o alla proprietà Content di ReceiveNotification (ReceiveParametersContent).Nel frammento di codice seguente viene illustrato come pubblicare un messaggio in un ambito.
// 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) } } });
Nota
In Progettazione flussi di lavoro 1.0 non è attualmente supportata la messaggistica SOAP diretta, incluse le comunicazioni bidirezionali (richiesta-risposta).