Uso de encabezados SOAP en orquestaciones
Las orquestaciones usan esquemas de propiedades para definir las propiedades de contexto de encabezados SOAP. Use el Editor de BizTalk para establecer las propiedades de contexto de encabezados SOAP.
Definir propiedades de contexto de encabezados SOAP con esquemas de propiedades
Necesitará un esquema de propiedades para usar propiedades de contexto de encabezados SOAP definidas en orquestaciones. El esquema de propiedades debe tener el espacio de nombres de destino de http://schemas.microsoft.com/BizTalk/2003/SOAPHeader
y la propiedad Property Schema Base establecida en MessageContextPropertyBase. Cada nombre de elemento raíz del esquema de propiedades debe coincidir con el nombre de elemento raíz del encabezado SOAP definido. Entonces podrá establecer valores para las propiedades de contexto que usen el espacio de nombres del esquema de propiedades y el nombre de la propiedad.
Nota
El espacio de nombres del esquema de propiedades es diferente del espacio de nombres del esquema de destino (http://schemas.microsoft.com/BizTalk/2003/SOAPHeader
). Su espacio de nombres puede ser cualquier cadena; no obstante, suele tener de forma predeterminada el nombre del proyecto.
El código siguiente muestra la asignación de una propiedad de contexto de encabezado SOAP donde el espacio de nombres del esquema de propiedades es SOAPHeader con un nombre de propiedad de OrigDest:
requestMessageInstance(SOAPHeader.OrigDest) = stringVar;
Para obtener más información sobre los esquemas de propiedades y las propiedades de contexto, vea Esquemas de propiedades.
Usar el Editor de BizTalk para establecer las propiedades de contexto de encabezados SOAP
Respecto a las orquestaciones, las propiedades de contexto del encabezado SOAP están establecidas como cadenas que contienen datos XML. Estas cadenas se establecen mediante el Editor de expresiones de BizTalk en una forma de asignación de mensajes o expresión .
El siguiente ejemplo muestra la configuración de la cadena de la propiedad de contexto:
RequestMessageInstance(SOAPHeader.OrigDest) = "<?xml version=\"1.0\"?>
<OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\">
<Origination>Home</Origination>
<Destination>Work</Destination>
</OrigDest>"
Usar el Editor de BizTalk para crear una instancia de un elemento raíz de encabezado SOAP
La configuración del encabezado SOAP a la cadena correcta puede ser una tarea difícil. Al agregar una referencia Web a un proyecto de BizTalk, todas las partes del mensaje Web se agregan a Reference.xsd como elementos raíz. Reference.xsd también contiene elementos raíz para cada encabezado SOAP definido. Para asegurar que establece el encabezado SOAP con la cadena correcta, debe usar el Editor de BizTalk para crear una instancia del elemento raíz del encabezado SOAP para Reference.xsd. Puede usar los datos de instancia generados directamente en los datos de instancia para contener los datos reales.
Para obtener más información sobre cómo usar el Editor de BizTalk para generar datos de instancia, vea Cómo generar mensajes de instancia.
Crear un XmlDocument para establecer propiedades de contexto
Puede establecer propiedades de contexto creando un XmlDocument y escribiendo el valor de cadena de XmlDocument en la propiedad de contexto. Se declara una variable de tipo XMLDocument y se asignan los datos XML.
En el ejemplo siguiente se muestra cómo establecer una variable declarando una variable de tipo XMLDocument y asignar los datos XML:
xmlDoc.LoadXml("<?xml version=\"1.0\"?><OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\"><Origination>Home</Origination><Destination>Work</Destination></OrigDest>");
El siguiente ejemplo muestra la configuración de la propiedad de contexto:
RequestMessageInstance(SOAPHeader.OrigDest) = xmlDoc.OuterXml;
Para obtener más información sobre el uso del Editor de expresiones de BizTalk, vea Requisitos y limitaciones para expresiones. Para obtener más información sobre cómo llamar a clases de .NET, vea Construir mensajes en código de usuario.
Crear encabezados SOAP para una solicitud SOAP
Cuando cree encabezados SOAP para la solicitud SOAP, debe asegurarse de que ha creado los encabezados SOAP correctamente. El adaptador de SOAP no comprueba el contenido de las propiedades de contexto del encabezado SOAP.
Nota
Si el encabezado SOAP es incorrecto, BizTalk no puede enviar la solicitud SOAP al servicio Web.
La respuesta SOAP que devuelve BizTalk al servicio Web también puede contener encabezados SOAP. Sólo puede obtener acceso a estos encabezados SOAP si son encabezados SOAP definidos.
Nota
Los servicios Web consumidos sólo admiten encabezados SOAP definidos.
Para obtener más información sobre los encabezados SOAP definidos, vea Uso de encabezados SOAP. Los encabezados SOAP de respuesta están establecidos como propiedades de contexto que usan la misma sintaxis que los encabezados SOAP de solicitud.
El siguiente código muestra cómo obtener acceso a los encabezados SOAP de respuesta:
stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);
Los valores contenidos en las propiedades de contexto son cadenas que contienen datos XML. Estas cadenas se establecen mediante el Editor de expresiones de BizTalk en una forma de asignación de mensajes o expresión . La cadena se carga en xmlDocument y se usan consultas XPath para tener acceso a campos específicos.
Para obtener más información sobre cómo crear documentos XML en el Editor de expresiones de BizTalk, vea Lenguaje XLANG-s.
Consulte también
Lenguaje XLANG-s
Encabezados SOAP con servicios web consumidos