Compartir a través de


Cómo utilizar las propiedades de contexto de mensaje

Las propiedades del sistema son las que suele utilizar de forma interna el motor de mensajería de BizTalk Server y sus componentes. En general, no se recomienda cambiar los valores que establece el motor para estas propiedades, ya que esto puede afectar a la lógica de ejecución del motor. Sin embargo, hay numerosas propiedades que sí se pueden modificar.

La siguiente tabla contiene una lista de propiedades de contexto de mensaje que el motor de mensajería puede promocionar. Puede usar estas propiedades para crear expresiones de filtro en puertos de envío y orquestaciones en Microsoft BizTalk Server. Por ejemplo,

PortName = MyMessage(BTS.ReceivePortName);  
MyFileName = MyMessage(FILE.ReceivedFileName);  
MySubject= MyMessage(POP3.Subject);  

En otra tabla se enumeran otras propiedades que pueden resultar útiles en ciertas aplicaciones de BizTalk que no se pueden promocionar.

Propiedad Cuándo y dónde se promociona Tipo Descripción
BTS.AckFailureCategory Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:int Identifica el errorCategory, que proporciona el lugar y el motivo de la suspensión.
BTS.AckFailureCode Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica el código de error, que proporciona el lugar y el motivo de la suspensión.
BTS.AckID Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica el MessageID del mensaje original.
BTS.AckInboundTransportLocation Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica inboundTransportLocation del mensaje original.
BTS.AckOutboundTransportLocation Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica outboundTransportLocation del mensaje original.
BTS.AckOwnerID Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica el identificador de instancia del mensaje original.
BTS.AckReceivePortID Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica receivePortID del mensaje original.
BTS.AckReceivePortName Promocionada por el motor de mensajería para el mensaje de confirmación. xs:string Identifica ReceivePortName del mensaje original.
BTS.AckSendPortID Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica el SendPortID del mensaje original.
BTS.AckSendPortName Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica SendPortName del mensaje original.
BTS.AckType Promocionada por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Permite la supervisión de confirmaciones y confirmaciones negativas por parte de una orquestación. El valor será ACK para una confirmación positiva y NACK en el caso de una confirmación negativa.
BTS.ActionOnFailure Esta propiedad puede establecerla un adaptador antes de llamar a la interfaz API IBTTTransportBatch::SubmitMessage() para enviar el mensaje a BizTalk. xs:int Controla el comportamiento del motor de mensajería cuando se produce un error en la canalización de recepción. Generalmente, el motor de mensajería suspende los mensajes con error; sin embargo, ciertos adaptadores (como HTTP) informarían del error al cliente en lugar de suspender el mensaje debido a un error de canalización de recepción.

Valores válidos:

- Default. si la propiedad no existe, el motor de mensajería intentará suspender el mensaje.
- 0. indica que el motor de mensajería no debería suspender automáticamente el mensaje.

Otros valores se reservan para un uso futuro.
BTS.CorrelationToken Si se establece esta propiedad en el contexto de mensaje, el motor de mensajería la promociona. Esta propiedad se establece implícitamente en un contexto cuando un adaptador solicitud-respuesta o una orquestación envían un mensaje de solicitud a la base de datos de cuadro de mensajes. xs:string Habilita el enrutamiento de respuesta a puertos de solicitud-respuesta.
BTS.EpmRRCorrelationToken Promocionada por el motor de mensajería al ejecutar el mensaje de solicitud-respuesta. Esta propiedad se promociona antes de que los mensajes se envíen a la base de datos de cuadro de mensajes. xs:int Utilizada internamente por el motor de mensajería. Especifica el Nombre del servidor, el Id. del proceso y un GUID único para una secuencia de mensajes de solicitud-respuesta.
BTS.InboundTransportLocation Promocionada por el motor de mensajería después de recibir un mensaje de un adaptador de recepción y antes de publicarla en la base de datos de cuadro de mensajes. xs:string Especifica la ubicación (URI) en la que el controlador recibió el mensaje.
BTS.InboundTransportType Promocionada por el motor de mensajería después de recibir un mensaje de un adaptador de recepción y antes de publicarla en la base de datos de cuadro de mensajes. xs:string Especifica el tipo de adaptador que recibió este mensaje y lo envió al servidor: FILE, HTTP, etc.
BTS.InterchangeSequenceNumber Promocionada por el motor de mensajería después de recibir un mensaje del adaptador de recepción y antes de publicarlo en la base de datos de cuadro de mensajes. xs:int Indica el número de secuencia del documento en el intercambio. Si el documento no forma parte de un intercambio que se desensamblató en documentos individuales, este valor será 1. La propiedad se puede leer en una orquestación, una canalización de envío y un adaptador de envío.
BTS.IsDynamicSend Esta propiedad puede definirse en el contexto del mensaje. No se promocionará y sólo se aplicará a las operaciones de envío. xs:boolean El motor de mensajería la escribe en el contexto del mensaje con un valor true cuando la operación de envío se efectúa en un puerto de envío dinámico. Si quisiera definir de forma dinámica propiedades para puertos de envío estáticos en las canalizaciones de envío, tendría que definir este valor como true.
BTS.MessageDestination Esta propiedad puede establecerla un componente de canalización de desensamblador en la canalización de recepción cuando devuelve un mensaje de GetNext(). xs:string Se utiliza principalmente para admitir el procesamiento de intercambio recuperable en desensambladores, esta propiedad controla si un mensaje se publica en el cuadro de mensajes o se suspende en la cola de suspensión. Si una canalización detecta un mensaje no válido en un intercambio y desea suspender el mensaje y continuar el procesamiento, puede hacerlo estableciendo MessageDestination = SuspendQueue y devolver el mensaje cuando el motor llame a GetNext() en el desensamblador.

Valores válidos:

- Default. si la propiedad no existe, el mensaje se da por válido y se publica en el cuadro de mensajes.
- SuspendQueue. indica al motor de mensajería que suspenda el mensaje. Nota: El mensaje suspendido será el mensaje posterior a la canalización o asignación y no el mensaje enviado por el adaptador (es decir, el mensaje de conexión).
BTS.MessageType Promocionada por los componentes de canalización de desensamblador durante el análisis del mensaje. xs:string Especifica el tipo del mensaje. El tipo de mensaje se define como una concatenación del espacio de nombres del esquema de documento y el nodo raíz del documento: http://<MyNamespace>#<MyRoot>.
BTS.OutboundTransportLocation Si se establece esta propiedad en el contexto de mensaje, el motor de mensajería la promociona. Esta propiedad se establece implícitamente en un contexto de mensaje cuando una orquestación envía un mensaje a un puerto de envío. Esta propiedad también se puede establecer explícitamente en una orquestación o en una canalización. xs:string Especifica el URI de la ubicación de destino al que se envía el mensaje. El URI puede contener el prefijo del adaptador, como http://. El motor de mensajería utiliza el prefijo del adaptador para determinar el tipo de adaptador que se va a utilizar al enviar el mensaje. Si el prefijo del adaptador y el BTS. La propiedad OutboundTransportType se establece, el tipo de adaptador de BTS. OutboundTransportType siempre tiene prioridad sobre el tipo de adaptador determinado del prefijo.

Valores válidos:

BizTalk Message Queuing: DIRECT=, PRIVATE=y PUBLIC=

ARCHIVO: file://

FTP: FTP://

HTTP: http:// y https://

SMTP: mailto:

SOAP: SOAP://

SQL: SQL://
BTS.OutboundTransportType Si se establece esta propiedad en el contexto de mensaje, el motor de mensajería la promociona. Esta propiedad se establece implícitamente en un contexto cuando una orquestación envía un mensaje a un puerto de envío. Esta propiedad también se puede establecer explícitamente en una orquestación o en una canalización. xs:string Especifica el tipo de adaptador utilizado para enviar el mensaje. Los tipos de adaptador disponibles son FILE, FTP, HTTP, SMTP, SOAP y SQL.

Los valores establecidos en esta propiedad, así como los prefijos del adaptador especificados en la dirección, no hacen distinción entre mayúsculas y minúsculas.
BTS.PropertiesToUpdate Un adaptador establece esta propiedad cuando tiene que conservar algunos valores de la propiedad en un mensaje con error que se reenvía o suspende.

Esto quiere decir que, cuando el mensaje se reenvía o reanuda, las propiedades especificadas estarán establecidas en el contexto.
xs:string Contiene una cadena XML con elementos que representan nombres de propiedades, espacios de nombres y valores.
BTS.ReceivePortID Promocionada por el motor de mensajería después de recibir un mensaje de un adaptador de recepción y antes de publicarla en la base de datos de cuadro de mensajes. xs:int Identifica el puerto de recepción donde se recibió el mensaje.
BTS.ReceivePortName Promocionada por el motor de mensajería después de recibir un mensaje de un adaptador de recepción y antes de publicarla en la base de datos de cuadro de mensajes. xs:string Nombre descriptivo del puerto de recepción donde se recibió el mensaje.
BTS.RouteDirectToTP Promocionada por el motor de mensajería en mensajes de ejecución de bucle invertido o solicitud-respuesta. Esta propiedad se promociona antes de que los mensajes se envíen a la base de datos de cuadro de mensajes. xs:boolean Utilizada internamente por el motor de mensajería para habilitar escenarios de bucle invertido o de solicitud-respuesta.
BTS.SPGroupID Promocionada por el motor de mensajería cuando el mensaje se envía a un puerto de envío desde una orquestación. xs:string Especifica el Id. del grupo de puertos de envío.
BTS.SPID Promocionada por el motor de mensajería cuando se envía un mensaje a un puerto de envío desde una orquestación. xs:string Especifica el Id. del puerto de envío.
BTS.SPName Promocionado por el motor de mensajería cuando se publica un mensaje de respuesta desde un puerto de envío de petición-respuesta. xs:string Se usa para suscribirse a los mensajes de respuesta desde un puerto de envío de petición-respuesta. El valor es el nombre del puerto de envío.
BTS.SPTransportBackupID Promocionado por el motor de mensajería cuando se envía un mensaje a un puerto de envío desde una orquestación. xs:string Especifica el Id. del adaptador de copia de seguridad del puerto de envío.
BTS.SPTransportID Promocionado por el motor de mensajería cuando se envía un mensaje a un puerto de envío desde una orquestación. xs:string Especifica el Id. del adaptador principal del puerto de envío.
BTS.SuspendAsNonResumable Esta propiedad puede establecerla un adaptador antes de llamar a SubmitMessage() o en una orquestación antes de enviar un mensaje a un puerto de envío. Nota: SubmitRequestMessage() omitirá esta propiedad; Los mensajes bidireccionales siempre se suspenden como no reanudables. xs:boolean Controla si el motor de mensajería debe suspender un mensaje como no reanudable si hay un error en él. Generalmente, los mensajes se suspenden como reanudables, pero hay casos en que resulta inadecuado: por ejemplo, la reanudación de un mensaje de un puerto de envío o recepción solicitado alteraría el orden de los mensajes.

Valores válidos:

-Falso. el mensaje se suspende como reanudable (éste es el valor predeterminado).
-Verdad. el mensaje se suspende como no reanudable.
BTS.SuspendMessageOnRoutingFailure Promocionada por el motor de mensajería después de recibir un mensaje de un adaptador de recepción y antes de publicarla en la base de datos de cuadro de mensajes. xs:boolean Especifica el comportamiento cuando se produce un error de enrutamiento de un mensaje entrante.

Valores válidos:

- Valor predeterminado/False. si la propiedad no existe o está definida como False, el motor informa del error al adaptador cuando se produce un error de enrutamiento.
-Verdad. el motor de enrutamiento suspenderá de forma automática el mensaje cuando se produzca un error de enrutamiento. Nota: El mensaje suspendido será el mensaje posterior a la canalización o asignación y no el mensaje enviado por el adaptador (es decir, el mensaje de conexión).

Hay otras propiedades en este espacio de nombres que contienen información que puede resultar útil para ciertas aplicaciones de BizTalk.

Propiedad Cuándo y dónde se promociona Tipo Descripción
BTS.AckDescription Establecida por el motor de mensajería antes de publicar un mensaje de confirmación en la base de datos de cuadro de mensajes. xs:string Identifica el errorDescription, que proporciona el lugar y el motivo de la suspensión.
BTS.EncryptionCert No promocionable. xs:int Identifica la huella digital correspondiente al certificado de cifrado. Para llevar a cabo el cifrado de respuesta en un puerto de solicitud-respuesta que recibe un mensaje firmado y cifrado, defina esta propiedad en una orquestación o en un componente de canalización personalizado antes del componente de canalización de codificación de MIME/SMIME de una canalización.
BTS.InterchangeID Establecida por el motor de mensajería para cada mensaje que llega al servidor. xs:string Define el Id. único utilizado para agrupar los documentos resultantes del mismo mensaje de intercambio.
BTS.Loopback Establecida por un adaptador al enviar el mensaje de solicitud para la ejecución de bucle invertido. xs:boolean Define si el mensaje debe enviarse al servidor para una ejecución de bucle invertido. En una ejecución de bucle invertido, el mensaje de solicitud se publica en la base de datos de cuadro de mensajes donde se enruta directamente al adaptador de recepción como respuesta.
BTS.SignatureCertificate Establecida por algunos adaptadores al enviar un mensaje al servidor. Esta propiedad lo usa componente de canalización de resolución de entidades. xs:string Identifica la huella digital del certificado de firma utilizado para firmar el mensaje recibido por BizTalk Server.
BTS.SourcePartyID Establecida por el componente de canalización de resolución de entidades después de que se haya identificado la entidad correspondiente al mensaje entrante. xs:string Indica el Id. de la entidad de BizTalk.
BTS.SSOTicket Si el adaptador de recepción admite esta propiedad, se establece al publicar el mensaje en un servidor. xs:string Un vale contiene el dominio y el nombre de usuario cifrados del usuario actual, así como la fecha de caducidad del vale. Los adaptadores con inicio de sesión único habilitado utilizan el vale para obtener las credenciales para el usuario al autenticar con los extremos de destino.
BTS.WindowsUser Establecida por algunos adaptadores al enviar un mensaje al servidor. Esta propiedad lo usa componente de canalización de resolución de entidades. xs:string Especifica la cuenta del usuario en nombre de quien se envía el mensaje al servidor:

Para obtener más información sobre propiedades y esquemas de propiedades asociados a componentes de canalización y adaptadores, vea los temas siguientes:

Consulte también

Propiedades de contexto de mensaje de BizTalk
Cómo utilizar expresiones para asignar valores a puertos dinámicos