Condividi tramite


Uso di filtri con la forma del messaggio Ricezione

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

Per creare un'espressione filtro, si confronta una proprietà di un messaggio in ingresso nella parte sinistra dell'espressione con una costante nella parte destra dell'espressione. È inoltre possibile creare espressioni composte applicando gli operatori AND e OR a due o più espressioni. In alternativa, è possibile lasciare vuota l'espressione filtro, in modo che tutti i messaggi vengano accettati.

Un'espressione filtro dovrebbe avere l'aspetto sotto illustrato:

InvoiceSchema.Quantity >= 1000  

In questo esempio un messaggio in ingresso viene presentato all'orchestrazione. L'orchestrazione ha una forma di ricezione dell'attivazione (la proprietà Attivazione è impostata su True in modo che la ricezione di un determinato messaggio causerà l'esecuzione dell'orchestrazione) con l'espressione di filtro precedente applicata. Il messaggio in ingresso deve avere una proprietà denominata Quantity nello spazio dei nomi InvoiceSchema. L'orchestrazione accetta solo le fatture per 1000 o più articoli, pertanto il motore di runtime controlla il messaggio in ingresso prima che venga eseguito.

Nella tabella seguente sono riportati gli operatori che è possibile utilizzare nelle espressioni di filtro.

Operatore Descrizione Esempio
== Uguale a ReqMsg(Total) == 100
!= diverso da ReqMsg(Total) != 100
< minore di ReqMsg(Total) < 100
> maggiore di ReqMsg(Total) > 100
<= minore o uguale a ReqMsg(Total) <= 100
>= maggiore o uguale a ReqMsg(Total) >= 100
esiste esiste ReqMsg(Description) exists

Nota

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

Nota

Se la forma Ricezione di attivazione è associata a una porta con binding diretto 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 verrà spostato nel MessageBox, dal quale verrà nuovamente prelevato in quanto corrisponde al criterio di filtro. Per evitare questo problema, utilizzare un'altra proprietà nel filtro, inviare un messaggio di tipo diverso oppure accertarsi di modificare il valore della proprietà prima di inviare un messaggio dello stesso tipo.

Vedere anche

Come configurare la forma Ricezione
Uso di correlazioni nelle orchestrazioni
Uso di campi differenzianti e di campi di proprietà
Uso di messaggi nelle orchestrazioni