Partager via


Exécutez des procédures stockées avec un seul paramètre XML dans SQL Server à l’aide de BizTalk Server

L’exécution d’une procédure stockée qui prend un paramètre unique est similaire à l’exécution de toute autre procédure stockée, comme décrit dans Exécuter des procédures stockées dans SQL Server à l’aide de BizTalk Server. Toutefois, pour l’approche décrite dans le lien précédent, vous devez générer des métadonnées pour la procédure stockée au moment de la conception et créer une orchestration pour appeler la procédure au moment de l’exécution.

Envisagez un scénario dans lequel vous souhaitez simplement passer une seule valeur à une procédure stockée sans effectuer de traitement sur cette valeur. Dans ce cas, vous ne souhaitez pas avoir à générer des métadonnées, à créer une orchestration, à déployer l’orchestration et à exécuter l’opération. Au lieu de cela, vous pouvez configurer un port d’envoi WCF-Custom ou WCF-SQL pour appeler directement la procédure stockée. Cette rubrique montre comment effectuer ces tâches à l’aide de la console d’administration BizTalk Server.

Notes

Cette rubrique fournit des instructions sur la configuration d’un port d’envoi WCF-Custom pour l’exécution d’une procédure stockée qui prend un seul paramètre. Vous pouvez effectuer les mêmes étapes en configurant un port WCF-SQL. Pour obtenir des instructions sur la configuration du port WCF-SQL, consultez Configurer un port à l’aide de l’adaptateur WCF-SQL.

Appeler des procédures stockées sans orchestration

Pour montrer comment exécuter des procédures stockées avec des paramètres uniques sans orchestration, cette rubrique utilise la procédure stockée ADD_LAST_EMP_XML_INFO. Cette procédure prend une valeur XML comme paramètre et l’insère dans la colonne Address de la table Employee . Vous devez avoir la valeur XML que vous passerez à la procédure stockée. Toutefois, pour exécuter la procédure stockée à l’aide de l’adaptateur, vous devez envoyer un message de demande conforme au schéma de la procédure et contenant la valeur XML du champ Address à la SQL Server. Vous devez donc créer ce message de demande en :

  • À l’aide de l’option Modèle dans la configuration du port d’envoi à l’aide de laquelle vous pouvez créer un message de demande à l’aide d’un modèle de message.

  • Placer la valeur XML du champ Address dans le message.

    Toutes ces étapes sont décrites en détail dans cette rubrique. Vous devez effectuer l’ensemble de tâches suivant :

  1. Créez un port de réception FILE où vous supprimerez le fichier XML qui sera inséré dans le champ XML d’adresse de la table Employee . Supposons que ce port soit appelé port MessageIn .

  2. Créez un port d’envoi unidirectionnel WCF-Custom qui sélectionne le fichier XML à partir du port de réception FILE, construit le message à l’aide du modèle de message et l’envoie à SQL Server pour exécuter la procédure stockée.

    Cette partie de la rubrique fournit des instructions sur la configuration d’un port d’envoi WCF-Custom avec le modèle de message.

Notes

Même si les informations de cette rubrique montrent comment exécuter une procédure stockée avec un seul paramètre XML, vous pouvez effectuer les tâches pour effectuer n’importe quelle opération qui prend un paramètre unique de n’importe quel type de données. La seule différence réside dans la façon dont vous créez un modèle de message pour une opération spécifique. Vous pouvez créer un modèle de message en prenant le message de demande que vous utiliseriez pour exécuter l’opération à l’aide d’une orchestration et en remplaçant la valeur du paramètre par le corps du message BizTalk.

Configurer un port d’envoi WCF-Custom

Avant de créer le port d’envoi WCF-Custom, vérifiez que vous avez créé le port de réception FILE, MessageIn.

  1. Démarrez la console Administration BizTalk Server.

  2. Dans l’arborescence de la console, développez BizTalk Group, puis Applications.

  3. Développez l’application sous laquelle vous souhaitez déployer l’adaptateur SQL.

  4. Cliquez avec le bouton droit sur Ports d’envoi, pointez sur Nouveau, puis pointez sur Port d’envoi unidirectionnel statique.

  5. Dans la boîte de dialogue Propriétés du port d’envoi, sous l’onglet Général , tapez un nom pour le port d’envoi.

  6. Configurez le port pour recevoir tous les messages supprimés au port de réception FILE, MessageIn.

    1. Dans la boîte de dialogue Propriétés du port d’envoi , dans le volet gauche, cliquez sur Filtres.

    2. Dans le volet droit, sous la colonne Propriété , cliquez sur la grille, puis sélectionnez BTS. Propriété ReceivePortName .

    3. Pour la colonne Opérateur , sélectionnez «== ».

    4. Pour la colonne Valeur , spécifiez le nom du port de réception FILE, MessageIn.

  7. Dans la boîte de dialogue Propriétés du port d’envoi, sous l’onglet Général , dans la liste déroulante Type , sélectionnez WCF-Custom, puis cliquez sur Configurer.

  8. Dans la boîte de dialogue Propriétés de transport personnalisées WCF , procédez comme suit :

    1. Cliquez sur l’onglet Général et, dans le champ Adresse (URI), spécifiez l’URI de connexion pour SQL Server. Pour plus d’informations sur l’URI de connexion, consultez Créer l’URI de connexion SQL Server.

    2. Sous l’onglet Général , dans la zone de texte Action , tapez l’action de l’opération. Pour obtenir la liste des actions pour chaque opération, consultez Messages et schémas de message. Par exemple, l’action permettant d’appeler le ADD_LAST_EMP_XML_INFO est :

      Procedure/dbo/ADD_LAST_EMP_XML_INFO  
      
    3. Cliquez sur l’onglet Liaison , puis dans la liste Type de liaison , sélectionnez sqlBinding. Vous pouvez spécifier les différentes propriétés de liaison exposées par l’adaptateur SQL. Pour plus d’informations sur les propriétés de liaison, consultez En savoir plus sur l’adaptateur BizTalk pour SQL Server propriétés de liaison de l’adaptateur.

    4. Cliquez sur l’onglet Informations d'identification, puis effectuez l’une des opérations suivantes :

      • Sélectionnez l’option Ne pas utiliser l’authentification unique et spécifiez le nom d’utilisateur et le mot de passe pour vous connecter à SQL Server. Notez que le nom d’utilisateur et le mot de passe respectent la casse.

        Notes

        Si vous souhaitez vous connecter à SQL Server à l’aide de Authentification Windows, spécifiez un nom d’utilisateur et un mot de passe vides.

      • Sélectionnez l’option Utiliser l’authentification unique , puis spécifiez une application d’authentification unique d’entreprise (SSO) associée.

        Pour plus d’informations sur la sécurité en ce qui concerne BizTalk Server, consultez Sécurité avec l’adaptateur SQL et BizTalk Server.

    5. Cliquez sur l’onglet Messages et, dans la section Corps du message WCF sortant , choisissez l’option Modèle .

    6. Dans la zone de texte XML , spécifiez le modèle qui sera utilisé pour construire le message WCF. Ce faisant, vous créez un message conforme à l’opération ADD_LAST_EMP_XML_INFO pour l’adaptateur SQL basé sur WCF.

      Spécifier le modèle pour le message WCF sortant

      Pour la procédure stockée ADD_LAST_EMP_XML_INFO, vous devez spécifier le modèle suivant :

      <ADD_LAST_EMP_XML_INFO xmlns="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo">  
      <xml_info>  
      <bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/>  
      </xml_info>  
      </ADD_LAST_EMP_XML_INFO>  
      

      Important

      L’encodage dans le modèle de message doit toujours être « string », quel que soit le type du paramètre pour l’opération qui sera appelée à l’aide du port d’envoi. Par exemple, le ADD_LAST_EMP_XML_INFO prend un paramètre de type XML, mais l’encodage dans le modèle de message est chaîne.

      Notes

      Vous pouvez créer ce modèle de message en copiant le message de demande pour la procédure stockée et en remplaçant la valeur dans les <balises xml_info> par le corps du message BizTalk. Vous pouvez obtenir le message de demande pour la procédure stockée en générant le schéma de la procédure à l’aide du complément Consume Adapter Service, puis en générant une instance du schéma pour obtenir le CODE XML de la demande.

    7. Pour revenir à la boîte de dialogue Propriétés du port d’envoi , cliquez sur OK.

  9. Dans la liste Gestionnaire d’envoi , sélectionnez BizTalkServerApplication.

  10. Dans la liste Envoyer le pipeline , sélectionnez le pipeline qui correspond à PassThruTransmit.

  11. Cliquez sur OK.

Démarrer l’application

Pour démarrer l’application BizTalk, vous pouvez démarrer l’emplacement de réception FILE et le port d’envoi WCF-Custom individuellement. Vous devez maintenant copier un fichier XML dans le dossier mappé à l’emplacement de réception FILE. L’application BizTalk consomme le fichier et la valeur XML est insérée dans la colonne Adresse de la table Employee. Vous pouvez le vérifier à l’aide d’un client SQL Server et en sélectionnant les enregistrements dans la table Employee.

Utilisation d’un port d’envoi bidirectionnel WCF-Custom

Les instructions de cette rubrique, dans la section Comment configurer un port d’envoi WCF-Custom, montrent comment configurer un port d’envoi unidirectionnel WCF-Custom pour exécuter une procédure stockée avec un seul paramètre sans utiliser d’orchestration BizTalk. Toutefois, dans ce cas, pour vérifier si la procédure stockée est correctement exécutée, vous devez vérifier dans la base de données SQL Server si la colonne Adresse de la table Employee est mise à jour.

Au lieu de cela, vous pouvez créer un port d’envoi bidirectionnel WCF-Custom qui obtient également la réponse de SQL Server si la procédure stockée est exécutée avec succès. Vous devez effectuer quelques étapes supplémentaires si vous créez un port de WCF-Custom bidirectionnel. Notez que vous aurez toujours besoin d’un emplacement de réception FILE, comme indiqué dans les instructions précédentes.

  1. Créez un port d’envoi bidirectionnel WCF-Custom, par exemple , ExecProcedure. Les étapes de configuration du port d’envoi sont similaires à celles du port d’envoi unidirectionnel. La seule différence est que pour le port bidirectionnel, vous devez également spécifier un pipeline de réception. Veillez à sélectionner PassThruReceive pour le pipeline de réception.

  2. Créez un port d’envoi FILE. Ce port supprime le message de réponse de la base de données SQL Server vers un dossier. À l’aide de l’onglet Filtres de la boîte de dialogue propriétés du port, configurez le port d’envoi FILE pour recevoir tous les messages de réponse du WCF-Custom port d’envoi.

    1. Dans la boîte de dialogue Propriétés du port d’envoi , dans le volet gauche, cliquez sur Filtres.

    2. Dans le volet droit, sous la colonne Propriété , cliquez sur la grille, puis sélectionnez BTS. Propriété SPName .

    3. Pour la colonne Opérateur , sélectionnez «== ».

    4. Pour la colonne Valeur , spécifiez le nom de l'WCF-Custom port d’envoi, ExecProcedure.

    Démarrez les trois ports. Copiez un fichier XML dans le dossier mappé à l’emplacement de réception FILE. Recherchez la réponse dans le dossier mappé au port d’envoi FILE.

Voir aussi

Développer des applications BizTalk avec l’adaptateur SQL