Générateur d'expression

Le générateur d'expressions permet de créer des conditions ou des transformations sur des mappages. Les expressions sont des fragments SQL s'affichant dans l'instruction SQL générée. La sortie d'une expression peut être utilisée pour transformer une valeur d'une source vers une cible ou pour définir une condition pour un filtre ou une fusion. Une transformation peut toujours être utilisée à partir d'une source vers des cibles mais elle devient nécessaire dès qu'il existe plusieurs sources.

Vous pouvez ouvrir le générateur d'expressions à partir de la vue Propriétés d'un modèle de mappage ou à partir du menu contextuel d'un mappage ou d'un groupe de mappages. Vous pouvez saisir une instruction de condition ou de transformation dans la zone de texte d'expression de la vue Propriétés ou en sélectionner une à partir des zones et des menus de la vue de l'éditeur de mappages. La création d'une condition ou d'une transformation dépend du type d'amélioration. Les fusions et les filtres sont des conditions alors qu'une transformation modifie les données. Le résultat d'une condition doit être booléen et le résultat d'une transformation doit être une valeur dont le type correspond au type de l'objet cible.

Les expressions créées sont enregistrées dans le modèle de mappage actif. La liste des fonctions disponibles du générateur d'expressions comporte des fonctions SQL. Ces fonctions SQL sont un ensemble de fonctions standard ainsi que des fonctions UDF de la cible .dbm. Vous pouvez générer des instructions SQL incluant des expressions ou des transformations du modèle de mappage.

Le générateur d'expressions permet d'effectuer les actions suivantes :

Structure du générateur d'expression

Le générateur d'expressions est composé d'une liste des champs ou colonnes disponibles, d'une liste des fonctions et fonctions UDF disponibles (selon le schéma cible) et d'une sous-fenêtre d'édition affichant l'expression et ses identificateurs d'objets. Un identificateur d'objet contient au minimum un nom de schéma, un nom de table et un nom de colonne. S'il existe plusieurs bases de données dans le mappage, le nom de la base de données est ajouté à l'identificateur. La sous-fenêtre d'édition du générateur d'expressions peut contenir plusieurs lignes avec des retours chariot.

Le contenu des champs et des colonnes du générateur d'expressions dépend des colonnes source valides de l'expression active.

Fonction d'assistant de contenu

Le générateur d'expressions utilise une fonction d'assistant de contenu Eclipse standard. La fonction d'assistant de contenu propose une liste de fonctions valides applicables en fonction du contexte actuel des valeurs mappées. Utilisez les touches de raccourci CTRL+ESPACE pour ouvrir la fenêtre de l'assistant de contenu.

La sous-fenêtre d'édition du générateur d'expressions propose d'autres options de menu contenant des touches de raccourci.
Tableau 1. Options de menu du générateur d'expressions
Action Touches de raccourci
Copier CTRL+C
Couper CTRL+X
Coller CTRL+V
Annuler CTRL+Y
Rétablir CTRL+Z
Sélectionner tout CTRL+A

Validation des expressions

La sous-fenêtre d'édition affiche les parties d'expressions non valides soulignées par des vagues rouges si la case Valider les expressions de la page Préférences est cochée. Le générateur d'expressions vérifie que seules des colonnes valides sont contenues dans l'expression. Il vérifie également que le nom qualifié complet des colonnes est correct. Le générateur d'expressions valide la syntaxe de l'expression et des identificateurs utilisés dans celle-ci. La validation est appropriée si le mappage ne couvre pas plusieurs bases de données côté source.

Exemple de fichier de langage de spécification de mappage (.msl)

Lorsque vous terminez l'expression, la condition ou la transformation, l'expression obtenue apparaît comme partie du modèle .msl. Dans le modèle .msl, l'expression est représentée par des noms de variables.

Les exemples suivants présentent des expressions valides pouvant être utilisées dans le modèle de mappage :
Filtre simple sur les enregistrements d'un département spécifique :
COMPANY.DEPARTMENT.DNUMBER = 10

Fusion simple entre deux tables :
COMPANY.DEPARTMENT.ID = COMPANY.EMPLOYEE.DEPID

Transformation simple calculant un prix cible différent :
COMPANY.PRODUCT.PRICE - COMPANY.PRODUCT.DISCOUNT

Commentaires