Uso de filtros con la forma Recibir mensaje
Una expresión de filtro es un parámetro opcional que puede aplicarse a una forma Recepción de una orquestación que especifica un valor True para la propiedad Activar. Si se especifica una expresión de filtro, la orquestación solo se activará si un mensaje entrante cumple la condición o condiciones especificadas en dicha expresión. Si no se especifica ninguna expresión de filtro, ningún mensaje entrante al que se suscriba la orquestación la activará.
Para crear una expresión de filtro, hay que comparar una propiedad de un mensaje entrante a la izquierda de la expresión con una constante a la derecha de ésta. También se pueden crear expresiones compuestas aplicando los operadores AND y OR a dos expresiones o más. Asimismo, se puede dejar en blanco la expresión de filtro, en cuyo caso se aceptarán todos los mensajes.
Una expresión de filtro podría tener el siguiente aspecto:
InvoiceSchema.Quantity >= 1000
En este ejemplo, se presenta un mensaje entrante a la orquestación. La orquestación tiene una forma de recepción de activación (la propiedad Activation se establece en True para que se ejecute la recepción de un mensaje determinado) con la expresión de filtro anterior aplicada. Se espera que el mensaje entrante tenga la propiedad Quantity en el espacio de nombres InvoiceSchema. La orquestación solo acepta facturas para 1000 elementos o más, de modo que el motor de tiempo de ejecución comprueba el mensaje entrante antes de que se ejecute.
La siguiente tabla muestra los operadores que se pueden utilizar en expresiones de filtro.
Operador | Descripción | Ejemplo |
---|---|---|
== | igual a | ReqMsg(Total) == 100 |
!= | not equal to | ReqMsg(Total) != 100 |
< | menor que | ReqMsg(Total) < 100 |
> | mayor que | ReqMsg(Total) > 100 |
<= | Menor o igual que | ReqMsg(Total) <= 100 |
>= | Mayor o igual que | ReqMsg(Total) >= 100 |
exists | exists | ReqMsg(Description) existe |
Nota
Los valores de cadena de las expresiones de filtro se incluyen entre comillas, por ejemplo: ReqMsg(Description) = "Estado del pedido de compra". No se puede utilizar un valor de carácter en una expresión de filtro.
Nota
Si la recepción de activación está asociada a un puerto de enlace directo y posteriormente se envía un mensaje del mismo tipo con el mismo valor para la propiedad probada en el filtro, se creará un bucle infinito. El mensaje irá al cuadro de mensajes, de donde se recuperará porque coincide con los criterios del filtro. Para evitarlo, se debe filtrar según una propiedad diferente, enviar un mensaje de un tipo distinto o asegurarse de cambiar el valor de la propiedad antes de enviar un mensaje del mismo tipo.
Consulte también
Cómo configurar la forma Recepción
Uso de correlaciones en orquestaciones
Uso de campos distintivos y campos de propiedades
Uso de mensajes en orquestaciones