Condividi tramite


Utilizzo di filtri con la forma Receive Message

Un'espressione di filtro è un parametro facoltativo che può essere applicato a una forma di ricezione dell'orchestrazione che specifica un valore True per la proprietà Activate. Se viene specificata un'espressione di filtro, l'orchestrazione verrà attivata solo se un messaggio in ingresso corrisponde alle condizioni specificate nell'espressione di filtro. Se non viene specificata alcuna espressione di filtro, qualsiasi messaggio in arrivo sottoscritto dall'orchestrazione attiverà l'orchestrazione.

Per creare un'espressione di filtro, confrontare una proprietà di un messaggio in arrivo sul lato sinistro dell'espressione con una costante sul lato destro dell'espressione. È anche possibile creare espressioni composte applicando gli operatori AND e OR a due o più espressioni. È anche possibile lasciare vuota l'espressione di filtro, nel qual caso verranno accettati tutti i messaggi.

Un'espressione di filtro potrebbe essere simile alla seguente:

InvoiceSchema.Quantity >= 1000  

In questo esempio viene presentato un messaggio in arrivo all'orchestrazione. L'orchestrazione ha una forma receive di attivazione (la proprietà Activation è impostata su True in modo che la ricezione di un determinato messaggio provocherà l'esecuzione dell'orchestrazione) con l'espressione di filtro precedente applicata. Il messaggio in arrivo dovrebbe avere una proprietà denominata Quantity nello spazio dei nomi InvoiceSchema. L'orchestrazione accetta solo fatture per 1000 o più elementi, quindi il motore di runtime controlla il messaggio in arrivo prima dell'esecuzione.

Nella tabella seguente vengono illustrati gli operatori che è possibile usare nelle espressioni di filtro.

Operatore Descrizione Esempio
== uguale a ReqMsg(Total) == 100
!= non uguale a ReqMsg(Total) != 100
< minore di ReqMsg(Totale) < 100
> maggiore di ReqMsg(Total) > 100
<= minore o uguale a ReqMsg(Total) <= 100
>= maggiore o uguale a ReqMsg(Total) >= 100
esiste esiste ReqMsg(Description) esiste

Annotazioni

I valori stringa nelle espressioni di filtro sono racchiusi tra virgolette, ad esempio: ReqMsg(Description) = "Purchase Order Status". Non è possibile usare un valore di carattere in un'espressione di filtro.

Annotazioni

Se la ricezione di attivazione è associata a una porta con associazione diretta e successivamente si invia un messaggio dello stesso tipo con lo stesso valore per la proprietà testata nel filtro, si creerà un ciclo infinito. Il messaggio passerà a MessageBox, dove verrà prelevato di nuovo perché corrisponde ai criteri di filtro. Per evitare questo problema, è necessario filtrare in base a una proprietà diversa, inviare un messaggio di un tipo diverso o assicurarsi di modificare il valore della proprietà prima di inviare un messaggio dello stesso tipo.

Vedere anche

Come configurare la forma di ricezione
Uso delle correlazioni nelle orchestrazioni
Utilizzo di campi distinti e campi delle proprietà
Uso dei messaggi nelle orchestrazioni