Partager via


Appeler des fonctions Table-Valued dans SQL Server à l’aide de BizTalk Server

Vous pouvez utiliser l’adaptateur SQL avec BizTalk Server pour appeler les fonctions à valeur de table dans SQL Server. L’adaptateur expose les fonctions valorisées en table comme opérations susceptibles d'être invoquées directement sur SQL Server. Pour plus d’informations sur la façon dont l’adaptateur prend en charge les fonctions table, consultez Exécution de fonctions Table-Valued dans SQL Server à l’aide de l’adaptateur SQL. Pour plus d’informations sur la structure du message SOAP pour appeler des fonctions table, consultez Schémas de message pour procédures et fonctions.

Conditions préalables

Appeler des fonctions à valeur de table sur une base de données SQL Server

L’exécution d’une opération sur une base de données SQL Server à l’aide de l’adaptateur SQL avec BizTalk Server implique des tâches procédurales décrites dans blocs de construction pour développer des applications BizTalk avec l’adaptateur SQL. Pour appeler des fonctions à valeur de table dans SQL Server, procédez comme suit :

  1. Créez un projet BizTalk et générez un schéma pour la fonction table que vous souhaitez appeler dans SQL Server.

  2. Créez des messages dans le projet BizTalk pour l’envoi et la réception de messages à partir de SQL Server.

  3. Créez une orchestration pour appeler l’opération sur SQL Server.

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

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

  6. Démarrez l’application BizTalk.

    Cette rubrique fournit des instructions pour effectuer ces tâches.

Générer un schéma

Cette rubrique démontre comment appeler des fonctions à valeur de table à l’aide de l’adaptateur SQL avec BizTalk Server dans SQL Server. Pour illustrer cette opération, dans cette rubrique, vous exécutez la fonction TVF_EMPLOYEE. Cette fonction prend la désignation d’un employé comme paramètre et retourne tous les enregistrements de l’employé avec cette désignation, comme type de table. La table Employee et la fonction sont créées en exécutant les scripts fournis avec les exemples. Pour plus d’informations sur le script, consultez Exemples pour l’adaptateur SQL.

Pour montrer comment appeler des fonctions à valeur de table, le schéma est généré pour la fonction à valeur de table TVF_EMPLOYEE. Vous devez créer un projet BizTalk et utiliser le Add-in Consommer le Service d’Adaptateur pour générer le schéma. Pour plus d’informations sur la génération de schémas , consultez La récupération des métadonnées pour les opérations SQL Server dans Visual Studio à l’aide de l’adaptateur SQL .

Définir 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. À présent, créez des messages pour l’orchestration et liez-les aux schémas que vous avez générés à l’étape précédente.

  1. Ajoutez une orchestration au projet BizTalk. Dans l’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 Vue Orchestration du projet BizTalk, si elle n’est pas déjà ouverte. Pour ce faire, cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Mode Orchestration.

  3. En mode 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 l’Message_1, procédez comme suit :

    Utiliser cette option Pour ce faire
    Identificateur Tapez Request
    Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez TableFunctions.TableValuedFunction_dbo. TVF_EMPLOYEE, où TableFunctions est le nom de votre projet BizTalk. TableValuedFunction_dbo est le schéma généré pour la fonction TVF_EMPLOYEE.
  6. Répétez l’étape 2 pour créer un message. Dans le volet Propriétés du nouveau message, procédez comme suit :

    Utiliser cette option Pour ce faire
    Identificateur Tapez Response
    Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez TableFunctions.TableValuedFunction_dbo.TVF_EMPLOYEEResponse.

Configurer l’orchestration

Créez une orchestration BizTalk pour utiliser BizTalk Server pour effectuer une opération sur SQL Server. Dans cette orchestration, vous déposez un message de requête dans un emplacement de réception spécifié. L’adaptateur SQL consomme ce message et le transmet à SQL Server. La réponse de SQL Server est enregistrée à un autre emplacement. Vous devez inclure des formes d’envoi et de réception pour envoyer des messages à SQL Server et recevoir des réponses, respectivement. Un exemple d’orchestration pour appeler une fonction valorisée table ressemble à ce qui suit :

Orchestration pour appeler une fonction renvoyant une table

Ajouter des formes de message

Entrez les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Shape sont les noms des formes de message telles qu'elles apparaissent dans l'orchestration mentionnée précédemment.

Forme Type de forme Propriétés
RecevoirMessage Recevoir - Définir Name sur ReceiveMessage
- Définir Activer sur True
SendMessage Envoyer - Définir Name sur SendMessage
RecevoirRéponse Recevoir - Définir Name à ReceiveResponse
- Définir Activer sur False
SendResponse Envoyer - Définir Nom sur SendResponse

Ajouter des ports

Entrez les propriétés suivantes pour chacun des ports logiques. Les noms répertoriés dans la colonne Port sont les noms des ports, comme indiqué dans l’orchestration.

Port Propriétés
MessageIn - Définir Identifier à MessageIn
- Définir Type sur MessageInType
- Définir le modèle de communication sur unidirectionnel
- Définir la direction de communication sur recevoir
LOBPort - Définir l’identificateur à LOBPort
- Définir Type à LOBPortType
- Définir le modèle de communication sur Demande-Réponse
- Définir la direction de communication pour envoyer-recevoir
ResponseOut - Définissez Identifier sur ResponseOut
- Définir Type sur ResponseOutType
- Définir le modèle de communication sur unidirectionnel
- Définir le sens de communication sur Envoyer

Entrez des messages pour les formes d’action et connectez-les 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 Shape sont les noms des formes de message comme indiqué dans l’orchestration mentionnée précédemment.

Forme Propriétés
RecevoirMessage - Définir Message sur Requête
- Définir l’opération sur MessageIn.TVF.Request
SendMessage - Définir Message sur Requête
- Définissez l’opération sur LOBPort.TVF.Request
RecevoirRéponse - Définir le message en réponse
- Définir l’opération sur LOBPort.TVF.Response
SendResponse - Définir le message en réponse
- Définir l’opération sur ResponseOut.TVF.Request

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

À présent, générez la solution BizTalk et déployez-la sur BizTalk Server. Pour plus d’informations, consultez Génération et exécution d’orchestrations.

Configurer 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 dans la console Administration de BizTalk Server. Vous devez utiliser la console Administration de BizTalk Server pour configurer l’application. Pour obtenir une procédure, 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.

  • Associez les ports que vous avez créés dans votre orchestration aux ports physiques dans la console d'administration de BizTalk Server. Pour cette orchestration, vous devez :

    • Définissez un emplacement sur le disque dur et un port de fichier correspondant où vous supprimerez un message de demande. L’orchestration BizTalk consomme le message de requête et l’envoie à la base de données SQL Server.

    • Définissez un emplacement sur le disque dur et un port de fichier correspondant où l’orchestration BizTalk supprime le message de réponse contenant la réponse de la base de données SQL Server.

    • Définissez une WCF-Custom physique ou un port d’envoi WCF-SQL pour envoyer des messages à la base de données SQL Server. Vous devez également spécifier l’action dans le port d’envoi. Pour plus d’informations sur la création de ports, consultez Configurer manuellement une liaison de port physique sur l’adaptateur SQL.

      Remarque

      La génération du schéma à l'aide de l'extension de projet BizTalk Consume Adapter Service crée également un fichier de binding contenant des informations sur les ports et les actions à configurer pour ces ports. Vous pouvez importer ce fichier de liaison à partir de la console Administration de BizTalk Server pour créer des ports d’envoi (pour les appels sortants) ou recevoir des ports (pour les appels entrants). Pour plus d’informations, consultez Configurer une liaison de port physique à l’aide d’un fichier de liaison de port pour utiliser l’adaptateur SQL.

Démarrer l’application

Démarrez l'application BizTalk pour appeler des fonctions avec valeur de table sur 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 FILE pour recevoir des messages de requête pour l’orchestration est en cours d’exécution.

  • Le port d'envoi FILE, chargé de recevoir les messages de réponse de l’orchestration, est en cours d’exécution.

  • Le port d’envoi WCF-Custom ou WCF-SQL pour envoyer des messages à la base de données SQL Server est en cours d’exécution.

  • L’orchestration de BizTalk pour l’opération est en cours.

Exécuter l’opération

Après avoir exécuté l’application, vous devez envoyer un message de requête à l’emplacement de réception FILE. Le schéma du message de requête doit être conforme au schéma de la fonction table TVF_EMPLOYEE que vous avez générée précédemment. Par exemple, le message de requête pour appeler la fonction TVF_EMPLOYEE est :

<TVF_EMPLOYEE xmlns="http://schemas.microsoft.com/Sql/2008/05/TableValuedFunctions/dbo">  
  <emp_desig>Tester</emp_desig>  
</TVF_EMPLOYEE>  

Ce message de demande appelle la fonction TVF_EMPLOYEE pour récupérer les enregistrements des employés ayant la désignation « Testeur ». Consultez Schémas de message pour procédures et fonctions pour plus d’informations sur le schéma de message de requête pour appeler des fonctions table dans SQL Server à l’aide de l’adaptateur SQL.

Remarque

Si vous ne spécifiez pas de valeur pour le paramètre, l’adaptateur exécute en interne la fonction à l’aide du mot clé DEFAULT, ce qui signifie que l’adaptateur exécute la fonction en transmettant la valeur par défaut pour le paramètre, si elle est disponible dans le cadre de la définition de la fonction.

L’orchestration consomme le message et l’envoie à la base de données SQL Server. La réponse de la base de données SQL Server est enregistrée à l’autre emplacement FILE défini dans le cadre de l’orchestration. Par exemple, la réponse de la base de données SQL Server pour le message de requête précédent est la suivante :

<?xml version="1.0" encoding="utf-8" ?>   
<TVF_EMPLOYEEResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableValuedFunctions/dbo">  
  <TVF_EMPLOYEEResult>  
    <TVF_EMPLOYEE xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/TableFunctionReturnTables/dbo">  
      <Employee_ID>10499</Employee_ID>   
      <Name>John</Name>   
      <Designation>Tester</Designation>   
      <Salary>999999.00</Salary>   
      <Last_Modified>AAAAAAAAJBM=</Last_Modified>   
    </TVF_EMPLOYEE>  
    <TVF_EMPLOYEE xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/TableFunctionReturnTables/dbo">  
      ......  
      ......  
    </TVF_EMPLOYEE>  
    ......  
    ......  
  </TVF_EMPLOYEEResult>  
</TVF_EMPLOYEEResponse>  

Meilleures 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 afin que vous n’ayez pas besoin de créer des éléments tels que les ports d’envoi et les ports 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

Développer des applications BizTalk à l’aide de l’adaptateur SQL