Partager via


Recevoir des messages d’interrogation à l’aide d’instructions SELECT avec une clause FOR XML de SQL à l’aide de BizTalk Server

Vous pouvez configurer l’adaptateur SQL pour recevoir des messages de modification de données périodiques pour SQL Server tables ou vues à l’aide d’instructions SELECT ou de procédures stockées qui incluent une clause FOR XML. Vous pouvez spécifier ces instructions comme instruction d’interrogation que l’adaptateur exécute pour interroger la base de données. L’instruction d’interrogation peut être une instruction SELECT ou une procédure stockée qui retourne un jeu de résultats.

Pour plus d’informations sur la façon dont l’adaptateur prend en charge l’interrogation, consultez Prise en charge de l’interrogation. Pour plus d’informations sur la structure du message SOAP pour les opérations d’interrogation, consultez Schémas de message pour les opérations d’interrogation et de typedPolling. La clause SQL FOR XML fournit plus de détails.

Notes

Cette rubrique montre comment utiliser l’opération entrante XmlPolling pour recevoir des messages d’interrogation. L’opération XmlPolling est utilisée pour interroger une base de données SQL Server à l’aide d’instructions SELECT ou de procédures stockées qui incluent une clause FOR XML. Le message de l’opération XmlPolling inclut le message xml reçu en exécutant l’instruction SELECT ou la procédure stockée dans SQL Server Management Studio.

Vous pouvez également utiliser l’adaptateur pour recevoir différents types de messages d’interrogation.

Important

Si vous souhaitez avoir plusieurs opérations d’interrogation dans une seule application BizTalk, vous devez spécifier une propriété de connexion InboundID dans le cadre de l’URI de connexion pour la rendre unique. Avec un URI de connexion unique, vous pouvez créer plusieurs ports de réception qui interrogent la même base de données, ou même la même table dans une base de données. Pour plus d’informations, consultez Recevoir des messages d’interrogation sur plusieurs ports de réception de SQL à l’aide de BizTalk Server.

Comment cette rubrique illustre l’interrogation

Dans cette rubrique, pour montrer comment l’adaptateur SQL prend en charge la réception de messages de modification de données, nous utilisons une instruction SELECT avec la clause FOR XML pour interroger la base de données SQL Server. Lorsque vous appelez une telle instruction dans SQL Server Management Studio, la sortie se présente sous la forme d’un message xml. Pour utiliser de telles instructions pour interroger une base de données SQL Server, vous devez disposer du schéma du message xml de réponse. L’adaptateur SQL nécessite ce schéma pour recevoir un message d’interrogation après l’exécution d’une instruction SELECT avec la clause FOR XML. Par conséquent, pour utiliser une instruction SELECT avec la clause FOR XML pour interroger la base de données SQL Server, vous devez effectuer l’ensemble de tâches suivant.

  1. Générez le schéma du message de réponse XML pour l’instruction SELECT avec la clause FOR XML.

  2. Créez un projet BizTalk et ajoutez le schéma généré au projet.

  3. Créez un message dans le projet BizTalk pour recevoir des messages de réponse XML à partir de la base de données SQL Server.

  4. Créez une orchestration pour recevoir des messages de la base de données SQL Server et les enregistrer dans un dossier.

  5. Générez et déployez le projet BizTalk.

  6. Configurez l’application BizTalk en créant des ports d’envoi et de réception physiques.

    Important

    Pour les scénarios d’interrogation entrante, vous devez toujours configurer un port de réception WCF-Custom ou WCF-SQL unidirectionnel. Les ports de réception bidirectionnel WCF-Custom ou WCF-SQL ne sont pas pris en charge pour les opérations entrantes.

  7. Démarrez l’application BizTalk.

Génération du schéma pour l’instruction SELECT message de réponse

Vous pouvez générer le schéma du message de réponse pour l’instruction SELECT en incluant la xmlschema clause avec la for xml clause . Dans cette rubrique, nous utilisons une instruction SELECT pour récupérer les détails de l’employé pour un ID d’employé donné. Pour récupérer le schéma en exécutant une instruction SELECT, l’instruction SELECT doit être écrite de la manière suivante :

SELECT Employee_ID ,Name ,Designation FROM Employee for xml auto, xmlschema

Exécutez cette instruction SELECT pour obtenir le schéma du message de réponse. Enregistrez le schéma. Vous devez maintenant créer un projet BizTalk dans Visual Studio et ajouter ce schéma au projet. Pour cet exemple, vous pouvez nommer ce schéma PollingResponse.xsd.

Important

Veillez à supprimer la xmlschema clause après avoir exécuté l’instruction SELECT pour générer le schéma. Si vous ne parvenez pas à effectuer cette opération, lorsque vous exécutez enfin l’instruction SELECT via BizTalk dans le cadre de l’opération XmlPolling, vous générez à nouveau le schéma dans le message de réponse. Par conséquent, pour obtenir le message de réponse au format xml, vous devez supprimer la xmlschema clause .

Pour ajouter le schéma à un projet BizTalk

  1. Créez un projet BizTalk dans Visual Studio.

  2. Ajoutez le schéma de réponse que vous avez généré pour la procédure stockée au projet BizTalk. Cliquez avec le bouton droit sur le projet BizTalk dans le Explorateur de solutions, pointez sur Ajouter, puis cliquez sur Élément existant. Dans la boîte de dialogue Ajouter un élément existant, accédez à l’emplacement où vous avez enregistré le schéma, puis cliquez sur Ajouter.

  3. Ouvrez le schéma dans Visual Studio et apportez les modifications suivantes.

    1. Ajoutez un nœud au schéma et déplacez le nœud racine existant sous ce nœud nouvellement ajouté. Donnez un nom au nœud racine. Pour cette rubrique, renommez le nœud racine en Racine.

    2. Le schéma de réponse généré pour l’instruction SELECT fait référence à un sqltypes.xsd. Vous pouvez obtenir le schéma sqltypes.xsd à partir de https://go.microsoft.com/fwlink/?linkid=31850. Ajoutez le schéma sqltypes.xsd au projet BizTalk. Pour plus d’informations sur ce schéma, accédez à :

    3. Dans le schéma généré pour l’instruction SELECT, remplacez la valeur de import schemaLocation par ce qui suit.

      import schemaLocation=”sqltypes.xsd”
      

      Vous le faites, car vous avez déjà ajouté le schéma sqltypes.xsd à votre projet BizTalk.

    4. Fournissez un espace de noms cible pour le schéma. Cliquez sur le <nœud Schéma> et, dans le volet propriétés, spécifiez un espace de noms dans la propriété Espace de noms cible . Pour cette rubrique, attribuez à l’espace de noms .http://ForXmlPolling/namespace

Définition des messages et des types de messages

Le schéma que vous avez généré précédemment décrit les « types » requis pour les messages dans l’orchestration. Un message est généralement une variable, dont le type est défini par le schéma correspondant. Une fois le schéma généré, vous devez le lier aux messages de la vue Orchestration du projet BizTalk.

Pour cette rubrique, vous devez créer un message pour recevoir des messages de la base de données SQL Server.

Effectuez les étapes suivantes pour créer des messages et les lier au schéma.

  1. Ajoutez une orchestration au projet BizTalk. Dans le Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet BizTalk, pointez sur Ajouter, puis cliquez sur Nouvel élément. Tapez un nom pour l’orchestration BizTalk, puis cliquez sur Ajouter.

  2. Ouvrez la fenêtre d’affichage d’orchestration du projet BizTalk, s’il n’est pas déjà ouvert. Cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.

  3. Dans la vue Orchestration, cliquez avec le bouton droit sur Messages, puis cliquez sur Nouveau message.

  4. Cliquez avec le bouton droit sur le message nouvellement créé, puis sélectionnez Fenêtre Propriétés.

  5. Dans le volet Propriétés de Message_1, procédez comme suit :

    Propriété Pour
    Identificateur Tapez PollingMessage.
    Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez ForXMLPolling.PollingResponse, où ForXMLPolling est le nom de votre projet BizTalk. PollingResponse est le nom du schéma de réponse généré par l’exécution de l’instruction SELECT comme décrit sous Recevoir des messages d’interrogation à l’aide d’instructions SELECT avec la clause FOR XML de SQL à l’aide de BizTalk Server.

Configuration de l’orchestration

Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour recevoir des messages de modification de données basés sur l’interrogation à partir de la base de données SQL Server. Dans cette orchestration, l’adaptateur reçoit la réponse de l’instruction select spécifiée pour la propriété de liaison PollingStatement . La réponse de l’instruction SELECT est enregistrée dans un emplacement FILE. Une orchestration classique pour l’interrogation d’une base de données SQL Server contient :

  • Recevoir et envoyer des formes pour recevoir des messages de SQL Server et envoyer à un port FILE, respectivement.

  • Port de réception unidirectionnel pour recevoir des messages de SQL Server.

    Important

    Pour les scénarios d’interrogation entrante, vous devez toujours configurer un port de réception unidirectionnel. Les ports de réception bidirectionnel ne sont pas pris en charge pour les opérations entrantes.

  • Port d’envoi unidirectionnel pour envoyer des réponses d’interrogation à partir d’une base de données SQL Server vers un dossier.

    Un exemple d’orchestration ressemble à ce qui suit.

    Orchestration pour l’interrogation d’une base de données SQL Server

Ajout de formes de message

Veillez à spécifier les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Forme sont les noms des formes de message affichées dans l’orchestration qui vient d’être mentionnée.

Forme Type de forme Propriétés
ReceiveMessage Recevoir - Définissez Nom sur ReceiveMessage

- Définissez Activer sur True
SaveMessage Envoyer - Définissez Nom sur SaveMessage

Ajout de ports

Veillez à spécifier les propriétés suivantes pour chacun des ports logiques. Les noms répertoriés dans la colonne Port sont les noms des ports affichés dans l’orchestration.

Port Propriétés
SQLReceivePort - Définissez Identificateur sur SQLReceivePort

- Définissez Type sur SQLReceivePortType

- Définir le modèle de communication sur Unidirectionnel

- Définir le sens de la communication sur Réception
SaveMessagePort - Définissez Identifier sur SaveMessagePort

- Définissez Type sur SaveMessagePortType

- Définir le modèle de communication sur Unidirectionnel

- Définir le sens de la communication sur Envoyer

Spécifier des messages pour les formes d’action et se connecter aux ports

Le tableau suivant spécifie les propriétés et leurs valeurs que vous devez définir pour spécifier des messages pour les formes d’action et lier les messages aux ports. Les noms répertoriés dans la colonne Forme sont les noms des formes de message affichées dans l’orchestration mentionnée précédemment.

Forme Propriétés
ReceiveMessage - Définir le message sur Réception

- Définissez Opération sur SQLReceivePort.XmlPolling.Request
SaveMessage - Définir le message sur Réception

- Définissez Opération sur SaveMessagePort.XmlPolling.Request

Une fois que vous avez spécifié ces propriétés, les formes et les ports de message sont connectés et votre orchestration est terminée.

Vous devez maintenant générer la solution BizTalk et la déployer sur un BizTalk Server. Pour plus d’informations, consultez Génération et exécution d’orchestrations.

Configuration de l’application BizTalk

Une fois que vous avez déployé le projet BizTalk, l’orchestration que vous avez créée précédemment est répertoriée sous le volet Orchestrations de la console d’administration BizTalk Server. Vous devez utiliser la console d’administration BizTalk Server pour configurer l’application. Pour obtenir une procédure pas à pas, consultez Procédure pas à pas : déploiement d’une application BizTalk de base.

La configuration d’une application implique :

  • Sélection d’un hôte pour l’application.

  • Mappage des ports que vous avez créés dans votre orchestration à des ports physiques dans la console d’administration BizTalk Server. Pour cette orchestration, vous devez :

Démarrage de l’application

Vous devez démarrer l’application BizTalk pour recevoir des messages de la base de données SQL Server. Pour obtenir des instructions sur le démarrage d’une application BizTalk, consultez Guide pratique pour démarrer une orchestration.

À ce stade, assurez-vous que :

  • Le port de réception unidirectionnel WCF-Custom ou WCF-SQL, qui interroge la base de données SQL Server à l’aide des instructions spécifiées pour la propriété de liaison PollingStatement, est en cours d’exécution.

  • Le port d’envoi FILE, qui reçoit les messages de SQL Server, est en cours d’exécution.

  • L’orchestration BizTalk pour l’opération est en cours d’exécution.

Exécution de l’opération

Après avoir exécuté l’application, l’ensemble d’actions suivant se produit, dans la même séquence :

  • L’adaptateur exécute PolledDataAvailableStatement sur la table Employee et détermine que la table contient des enregistrements pour l’interrogation.

  • L’adaptateur exécute l’instruction d’interrogation et reçoit un message d’interrogation de la base de données SQL Server. Étant donné que l’instruction d’interrogation se compose d’une instruction SELECT avec une clause FOR XML, le message d’interrogation reçu par l’adaptateur ressemble à ce qui suit :

    <?xml version="1.0" encoding="utf-8" ?>
    <Root xmlns="http://ForXmlPolling/namespace">
      <Employee Employee_ID="10765" Name="John" Designation="Tester" xmlns="" />
      <Employee Employee_ID="10766" Name="Sam" Designation="Manager" xmlns="" />
      .....
      .....
    </Root>
    

    Notez que le message d’interrogation est reçu dans le même schéma que celui généré par l’exécution de l’instruction SELECT avec la clause xmlschema . Notez également que le nœud racine et l’espace de noms sont les mêmes que les valeurs que vous avez spécifiées pour les propriétés de liaison XmlStoredProcedureRootNodeName et XmlStoredProcedureRootNodeNamespace , respectivement.

Notes

L’adaptateur SQL continuera à interroger jusqu’à ce que vous désactiviez explicitement le port de réception à partir de la console d’administration BizTalk Server.

Bonnes pratiques

Une fois que vous avez déployé et configuré le projet BizTalk, vous pouvez exporter les paramètres de configuration vers un fichier XML appelé fichier de liaison. Une fois que vous avez généré un fichier de liaison, vous pouvez importer les paramètres de configuration à partir du fichier, de sorte que vous n’avez pas besoin de créer les ports d’envoi et de réception pour la même orchestration. Pour plus d’informations sur les fichiers de liaison, consultez Réutiliser les liaisons d’adaptateur.

Voir aussi

Interroger SQL Server à l’aide de l’adaptateur SQL avec BizTalk Server