Appeler des fonctions scalaires dans SQL Server à l’aide de BizTalk Server
Vous pouvez utiliser l’adaptateur SQL avec BizTalk Server pour appeler des fonctions scalaires dans SQL Server. L’adaptateur expose les fonctions scalaires en tant qu’opérations qui peuvent être appelées directement sur SQL Server. Pour plus d’informations sur la façon dont l’adaptateur prend en charge les fonctions scalaires, consultez Exécuter des fonctions scalaires dans SQL Server à l’aide de l’adaptateur SQL. Pour plus d’informations sur la structure du message SOAP pour appeler des fonctions scalaires, consultez Schémas de message pour les procédures et les fonctions.
Prérequis
Configurez MSDTC sur les ordinateurs exécutant l’adaptateur SQL et SQL Server.
Appeler des fonctions scalaires sur SQL Server base de données
L’exécution d’une opération sur SQL Server base de données à 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 scalaires dans SQL Server, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour la fonction scalaire que vous souhaitez appeler dans SQL Server.
Créez des messages dans le projet BizTalk pour l’envoi et la réception de messages à partir de SQL Server.
Créez une orchestration pour appeler l’opération sur SQL Server.
Générez et déployez le projet BizTalk.
Configurez l’application BizTalk en créant des ports d’envoi et de réception physiques.
Démarrez l’application BizTalk.
Cette rubrique fournit des instructions pour effectuer ces tâches.
Générer un schéma
Cette rubrique montre comment appeler des fonctions scalaires dans SQL Server à l’aide de l’adaptateur SQL avec BizTalk Server. Pour illustrer cette opération, dans cette rubrique, vous exécutez la fonction GET_EMP_ID. Cette fonction prend la désignation d’un employé comme paramètre et retourne l’ID de cet employé à partir de la table EMPLOYEE. La table 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 scalaires, le schéma est généré pour la fonction scalaire GET_EMP_ID. Vous devez créer un projet BizTalk et utiliser le complément Consume Adapter Service pour générer le schéma. Pour plus d’informations sur la génération de schémas, consultez Récupération de métadonnées pour les opérations SQL Server dans Visual Studio.
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.
Ajoutez une orchestration au projet BizTalk. À partir 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.
Si la fenêtre Vue Orchestration du projet BizTalk n’est pas déjà ouverte, ouvrez-la. Pour ce faire, cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.
Dans la vue Orchestration, cliquez avec le bouton droit sur Messages, puis cliquez sur Nouveau message.
Cliquez avec le bouton droit sur le message nouvellement créé, puis sélectionnez Fenêtre Propriétés.
Dans le volet Propriétés du Message_1, procédez comme suit :
Propriété Pour Identificateur Saisissez Request
Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez ScalarFunction.ScalarFunction_dbo. GET_EMP_ID, où ScalarFunction est le nom de votre projet BizTalk. ScalarFunction_dbo est le schéma généré pour la fonction GET_EMP_ID. Répétez l’étape 2 pour créer un message. Dans le volet Propriétés du nouveau message, procédez comme suit :
Propriété Pour Identificateur Saisissez Response
Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez ScalarFunction.ScalarFunction_dbo. GET_EMP_IDResponse.
Configurer l’orchestration
Créez une orchestration BizTalk à utiliser BizTalk Server pour effectuer une opération sur SQL Server. Dans cette orchestration, vous supprimez un message de demande à un emplacement de réception défini. 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 Envoyer et Recevoir pour envoyer des messages à SQL Server et recevoir des réponses, respectivement. Un exemple d’orchestration pour appeler une fonction scalaire ressemble à ce qui suit :
Ajouter des 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 |
SendMessage | Envoyer | - Définissez Nom sur SendMessage |
ReceiveResponse | Recevoir | - Définissez Nom sur ReceiveResponse - Définissez Activer sur False |
SendResponse | Envoyer | - Définissez Name 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 affichés dans l’orchestration.
Port | Propriétés |
---|---|
MessageIn | - Définissez Identifier sur MessageIn - Définissez Type sur MessageInType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de la communication sur Réception |
LOBPort | - Définissez Identifier sur LOBPort - Définissez Type sur LOBPortType - Définir le modèle de communication sur Requête-réponse - Définir le sens de la communication sur Envoyer-Recevoir |
ResponseOut | - Définissez Identificateur sur ResponseOut - Définissez Type sur ResponseOutType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur Envoyer |
Spécifier des messages pour les formes d’action et les connecter aux ports
Le tableau suivant spécifie les propriétés et leurs valeurs que vous devez définir pour spécifier les 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, comme indiqué dans l’orchestration mentionnée précédemment.
Forme | Propriétés |
---|---|
ReceiveMessage | - Définir message sur Requête - Définissez Opération sur MessageIn.ScalarFunction.Request |
SendMessage | - Définir message sur Requête - Définissez Opération sur LOBPort.ScalarFunction.Request |
ReceiveResponse | - Définir message sur Réponse - Définissez Opération sur LOBPort.ScalarFunction.Response |
SendResponse | - Définir message sur Réponse - Définissez Opération sur ResponseOut.ScalarFunction.Request |
Une fois que vous avez entré ces propriétés, les formes et les ports de message 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
Après avoir 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 Administration BizTalk Server. Vous devez utiliser la console 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 aux ports physiques dans la console Administration BizTalk Server. Pour cette orchestration, vous devez :
Définissez un emplacement sur le disque dur et un port de fichier correspondant où vous allez supprimer un message de demande. L’orchestration BizTalk consomme le message de requête et l’envoie à SQL Server base de données.
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 SQL Server base de données.
Définissez un port d’envoi WCF-Custom physique ou WCF-SQL pour envoyer des messages à SQL Server base de données. 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 à l’adaptateur SQL.
Notes
La génération du schéma à l’aide du complément De projet BizTalk du service Consume Adapter crée également un fichier de liaison qui contient des informations sur les ports et les actions à définir pour ces ports. Vous pouvez importer ce fichier de liaison à partir de la console d’administration BizTalk Server pour créer des ports d’envoi (pour les appels sortants) ou de réception (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 scalaires dans SQL Server base de données. 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 les messages de demande pour l’orchestration est en cours d’exécution.
Le port d’envoi FILE pour 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 à SQL Server base de données est en cours d’exécution.
L’orchestration BizTalk pour l’opération est en cours d’exécution.
Exécuter l’opération
Après avoir exécuté l’application, vous devez supprimer un message de demande à l’emplacement de réception FILE. Le schéma du message de demande doit être conforme au schéma de la fonction GET_EMP_ID que vous avez générée précédemment. Par exemple, le message de demande d’appel de la fonction GET_EMP_ID est :
<GET_EMP_ID xmlns="http://schemas.microsoft.com/Sql/2008/05/ScalarFunctions/dbo">
<emp_desig>Manager</emp_desig>
</GET_EMP_ID>
Ce message de demande appelle la fonction GET_EMP_ID pour récupérer l’ID des employés avec la désignation « Manager ». Pour plus d’informations sur le schéma de message pour l’appel de fonctions scalaires dans SQL Server à l’aide de l’adaptateur SQL, consultez Schémas de message pour les procédures et les fonctions.
L’orchestration consomme le message et l’envoie à SQL Server base de données. La réponse de SQL Server base de données est enregistrée à l’autre emplacement FILE défini dans le cadre de l’orchestration. Par exemple, la réponse de SQL Server base de données pour le message de demande précédent est la suivante :
<?xml version="1.0" encoding="utf-8"?>
<GET_EMP_IDResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/ScalarFunctions/dbo">
<GET_EMP_IDResult>10072</GET_EMP_IDResult>
</GET_EMP_IDResponse>
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 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.