Altova MapForce 2024 Enterprise Edition

Procédures stockées dans les Composants cibles

Accueil Préc Haut Suivant

Cet exemple vous montre comment appeler une procédure qui prend des paramètres d'entrée et met à jour une base de données. Appeler une procédure de cette manière rend l’activation des transactions possible et annule l’action en cas d’erreur, ou ajouter une instruction SQL personnalisée à exécuter avant que la procédure ne soit appelée. Ce scénario implique que la procédure stockée agisse comme un un composant cible dans MapForce et que vous n'êtes pas intéressé par la sortie retournée par la procédure stockée. Pour consulter un exemple qui illustre comment passer des paramètres et mapper des données retournées par une procédure stockée, voir Procédures stockées avec Entrée et Sortie.

 

Créons tout d'abord la procédure stockée de démonstration dans la base de données "AdventureWorks". Pour ce faire, exécuter le script ci-dessous par rapport à la base de données. Vous pouvez ce faire à partir d'une fenêtre de requête de Microsoft SQL Server Management Studio, ou directement depuis l'onglet Requête BD de MapForce, voir Parcourir et interroger des bases de données. Dans tous les cas, s'assurer que votre compte d'utilisateur de base de données a la permission de créer des procédures stockées.

 

CREATE PROCEDURE Production.uspAddProductModel
  @ModelName nvarchar(50)
  ,@Inst xml
AS
BEGIN
INSERT INTO [Production].[ProductModel]
          ([Name]          
          ,[Instructions]
          ,[rowguid]
          ,[ModifiedDate])
    VALUES
          (@ModelName          
          ,@Inst
          ,NEWID()
          ,GETDATE())
END

 

La procédure stockée ci-dessus prend deux paramètres (@ModelName, @Inst) en tant qu'entrée et insère les valeurs correspondantes dans la table ProductModel de la base de données AdventureWorks, avec quelques données générées par base de données.

 

Les étapes suivantes vous montrent comment créer un mappage qui consomme des données retournées par cette procédure.

 

1.Se connecter à la base de données "AdventureWorks" depuis MapForce, et ajouter la procédure stockée au mappage comme décrit dans la section Ajouter des procédures stockées dans le mappage. Assurez-vous que votre compte d'utilisateur de base de données détient la permission de créer des procédures stockées.

2.Cliquez sur le bouton Afficher Menu contextuel mf_ic_storedproc_menu à côté de la procédure stockée et sélectionnez Afficher Nœuds comme Cible. La procédure stockée apparaît maintenant en tant que composant cible dans le mappage, à l'endroit où le côté gauche recense les paramètres d'entrée.

mf_sp_15

3.Cliquez sur le bouton Afficher Menu contextuel mf_ic_storedproc_menuune nouvelle fois, et sélectionnez Paramètres de procédure. Cette étape optionnelle vous permet d’exécuter la procédure stockée à l’intérieur de la transaction qui peut être annulée. Vous pouvez aussi ajouter une instruction SQL personnalisée à exécuter avant que la procédure soit appelée.

4.Cochez la case à cocher Utiliser transactions.

mf_sp_16
Note :Dans cet exemple, le traçage de base de données est désactivé au niveau du composant de base de données et aucun traçage n'est défini pour être exécuté. Néanmoins, vous pouvez activer un traçage de base de données pour les procédures stockées, le cas échéant.

 

5.Ajouter le composant source qui fournit les données à insérer dans la base de données. Dans cet exemple, les données de source sont fournies par des constantes ; néanmoins, tout autre composant de source pris en charge par MapForce peut agir en tant qu'entrée. Pour plus d'informations concernant les constantes, voir Ajouter une constante au mappage.

mf_sp_17

Puisque ce mappage met à jour une base de données, vous ne pouvez pas consulter sa sortie directement comme c'est le cas pour d'autres mappages. Au lieu, cliquer sur la touche Sortie pour afficher le pseudo-SQL contenant des indices concernant la manière dont la base de données sera modifiée. Si vous avez activé des transactions, celles-ci se produiront selon les indications par les commentaires.

mf_sp_18

Le pseudo-SQL afficher dans le volet Sortie ne montre pas les commandes de transaction réelles, il ne montre que des indices (comme des commentaires). Les commandes SQL réelles sont néanmoins envoyées à l'API de base de données sous-jacente.

 

Pour exécuter le mappage par rapport à la base de données, suivre une des deux étapes :

 

Dans le menu Sortie, cliquer sur Exécuter Script SQL.

Cliquer sur la touche de la barre d'outils Exécuter Script SQL mf_ic_run-sql.

 

Procédures stockées et entrées doubles

Si vous souhaitez mapper des données provenant de plusieurs sources sur le mappage dans la même procédure stockée de manière à ce qu'elle accepte plusieurs entrées. Pour ce faire, cliquez avec la touche de droite sur l'item de procédure stocké dans le composant et sélectionner Ajouter une entrée double depuis le menu contextuel, voir aussi Doubler les entrées. Lorsque le mappage est exécuté, ces procédures stockées doubles seront appelées une fois pour chaque entrée double.

 

Veuillez noter que la commande Ajouter une entrée double est désactivée pour les paramètres de procédure stockée, parce que chaque paramètre est une valeur atomique (et pourrait être "nullable").

 

Traçage au niveau de la procédure stockée

Pour activer le traçage au niveau de la procédure stockée :

 

1.Assurez-vous que le niveau de traçage au niveau du composant de base de données est défini soit comme Toujours ou Erreur (voir ci-dessus).

2.S'il s'agit d'une procédure stockée, cliquez sur la touche mf_ic_storedproc_menu Afficher le menu contextuel , et choisir Paramètres de procédure depuis le menu contextuel.

3.Choisir le niveau de traçage. L'option Utiliser les paramètres de composant hérite des mêmes paramètres qui ont été définis au niveau du composant. L'option Limiter aux erreurs limite le traçage uniquement aux événements d'erreur. Toujours désactivé signifie qu'aucun traçage ne se produira pour cette table ou procédure stockée.

 

© 2018-2024 Altova GmbH