Partager via


Utilisation des en-têtes SOAP dans les orchestrations

Les schémas de propriété permettent aux orchestrations de définir des propriétés de contexte d'en-tête SOAP. L'Éditeur BizTalk vous permet de définir ces propriétés.

Définition de propriétés de contexte d'en-tête SOAP à l'aide de schémas de propriété

Un schéma de propriété est requis pour utiliser dans les orchestrations des propriétés de contexte d'en-tête SOAP définies. Le schéma de propriété doit avoir l’espace de noms cible de http://schemas.microsoft.com/BizTalk/2003/SOAPHeader, et la propriété Base de schéma de propriété définie sur MessageContextPropertyBase. Chaque nom d'élément racine du schéma de propriété doit correspondre au nom de l'élément racine de l'en-tête SOAP défini. Vous pouvez ensuite définir des valeurs pour les propriétés de contexte en reprenant l'espace de noms du schéma de propriété et le nom de la propriété.

Notes

L’espace de noms du schéma de propriété est différent de l’espace de noms du schéma cible (http://schemas.microsoft.com/BizTalk/2003/SOAPHeader). Votre espace de noms peut prendre la forme de n'importe quelle chaîne ; toutefois, il utilise généralement la valeur par défaut qu'est le nom du projet.

Le code suivant montre l’affectation d’une propriété de contexte d’en-tête SOAP où l’espace de noms de schéma de propriété est SOAPHeader avec un nom de propriété OrigDest :

requestMessageInstance(SOAPHeader.OrigDest) = stringVar;  

Pour plus d’informations sur les schémas de propriétés et les propriétés de contexte, consultez Schémas de propriété.

Utilisation de l'Éditeur BizTalk pour définir des propriétés de contexte d'en-tête SOAP

Pour les orchestrations, les propriétés de contexte d'en-tête SOAP sont définies sur les chaînes qui contiennent des données XML. Vous définissez ces chaînes à l’aide de l’éditeur d’expression BizTalk dans une forme d’affectation de message ou d’expression .

L'exemple suivant illustre la chaîne définissant la propriété de contexte :

RequestMessageInstance(SOAPHeader.OrigDest) = "<?xml version=\"1.0\"?>  
<OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\">  
<Origination>Home</Origination>  
<Destination>Work</Destination>  
</OrigDest>"  

Utilisation de l'Éditeur BizTalk pour créer une instance d'un élément racine d'en-tête SOAP

Il peut être difficile de configurer l'en-tête SOAP sur la chaîne appropriée. Lors de l'ajout d'une référence Web à un projet BizTalk, toutes les parties d'un message Web complexe sont ajoutées en tant qu'éléments racines au fichier Reference.xsd. Ce fichier contient également les éléments racines de chaque en-tête SOAP défini. Pour garantir que vous ayez défini l'en-tête SOAP sur la bonne chaîne, il est recommandé d'utiliser l'Éditeur BizTalk pour créer une instance de l'élément racine de l'en-tête SOAP correspondant à Reference.xsd. Les données de l'instance générées ou les données de l'instance peuvent être utilisées directement ou servir à contenir les données réelles.

Pour plus d’informations sur l’utilisation de l’éditeur BizTalk pour générer des données instance, consultez Comment générer des messages d’instance.

Création d'un élément XmlDocument pour définir des propriétés de contexte

Vous pouvez définir des propriétés de contexte en créant un XmlDocument et en écrivant la valeur de chaîne du XmlDocument dans la propriété de contexte. Vous déclarez une variable de type XMLDocument et attribuez les données XML.

L’exemple suivant montre comment définir une déclaration d’une variable de type XMLDocument et affecter les données XML :

xmlDoc.LoadXml("<?xml version=\"1.0\"?><OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\"><Origination>Home</Origination><Destination>Work</Destination></OrigDest>");  

L'exemple suivant illustre la configuration de la propriété de contexte :

RequestMessageInstance(SOAPHeader.OrigDest) = xmlDoc.OuterXml;  

Pour plus d’informations sur l’utilisation de l’Éditeur d’expressions BizTalk, consultez Configuration requise et limitations pour les expressions. Pour plus d’informations sur l’appel de classes .NET, consultez Construction de messages dans le code utilisateur.

Création d'en-têtes SOAP pour une requête SOAP

Lors de la création d'en-têtes SOAP pour une requête SOAP, vous devez en premier lieu vous assurer d'avoir correctement créé les en-têtes SOAP. L'adaptateur SOAP ne vérifie pas le contenu des propriétés de contexte d'un en-tête SOAP.

Notes

Si l'en-tête est incorrect, BizTalk ne sera pas en mesure d'envoyer la requête SOAP au service Web.

La réponse SOAP que BizTalk renvoie au service Web est également susceptible de contenir des en-têtes SOAP. Vous pouvez uniquement accéder à ces en-têtes s'il s'agit d'en-têtes SOAP définis.

Notes

Les services Web utilisés prennent uniquement en charge les en-têtes SOAP définis.

Pour plus d’informations sur les en-têtes SOAP définis, consultez Utilisation d’en-têtes SOAP. Les en-têtes SOAP de réponse sont définis en tant que propriétés de contexte grâce à la même syntaxe que celle des en-têtes SOAP de requête.

Le code suivant illustre l'accès aux en-têtes SOAP de réponse :

stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);  

Les valeurs contenues dans les propriétés de contexte correspondent à des chaînes comportant des données XML. Vous définissez ces chaînes à l’aide de l’éditeur d’expression BizTalk dans une forme d’affectation de message ou d’expression . Vous chargez la chaîne dans un XmlDocument et utilisez des requêtes XPath pour accéder à des champs spécifiques.

Pour plus d’informations sur la création de documents XML dans l’Éditeur d’expression BizTalk, consultez Langage XLANG-s.

Voir aussi

Langage XLANG/s
En-têtes SOAP avec les services web utilisés