1. Introduction▲
DataFederator est un module de la suite SAP Business Objects qui permet de créer un univers en pointant sur plusieurs bases de données.
Il peut également être utilisé comme ETL.
Une fois le module installé, le projet se déroule en quatre étapes :
- DataFederator Designer ;
- création de la connexion ODBC pointant sur le projet ;
- création de l'univers ;
- création des rapports.
Nous allons nous intéresser uniquement à la partie Designer de DataFederator.
2. DataFederator Designer▲
2-A. Création d'un projet▲
Une fois connecté sur l'interface DataFederator Designer,cliquez "Add Project".
Entrez un nom pour ce projet, des commentaires... Nous ferons très original dans notre cas, avec le projet "Test"
Dans l'ensemble des interfaces DataFederator, il n'y a pas de "OK" ou "Appliquer". Il faut toujours cliquer sur "Save" qui se situe en haut de la fenêtre.
2-B. Import des DataSources▲
Le projet est créé. Il faut maintenant importer les tables sources des différentes bases de données.
Cliquez sur "Add" puis sur "New datasource from an existing table".
Donnez un nom à cette table, et sélectionnez le type de SGBD. (Oracle dans notre cas).
Selon le SGBD choisi, différents paramètres sont à renseigner pour atteindre la base :
Après validation des paramètres, cliquez sur "Update all tables" pour accéder à toutes les tables/vues de votre base.
Sélectionnez vos tables et cliquez sur "Update" :
Les tables rapatriées apparaissent en "draft", il faut cliquer sur "Make final" pour valider.
Pour ajouter plus tard d'autres tables de cette base, il faut repasser en mode draft, sélectionner les nouvelles tables, et repasser en mode final.
Répéter ces opérations autant de fois que vous avez de BDD différentes.
2-C. Création des Target Tables▲
Les target tables sont les tables qui seront utilisées dans l'univers DataFederator. Ce sont en quelque sorte des vues créées sur DataFederator.
Il existe deux possibilités pour les créer : à partir d'une table existante, ou à partir de rien.
Je partirai d'une table existante afin d'éviter de créer toutes les colonnes une à une...
Sélectionnez votre table source dans l'arborescence proposée.
L'option "Create default mapping rule" permet d'associer directement chaque colonne de la target à chaque colonne de la table source.
Abordons maintenant ce mapping...
2-D. Modifications, mappings...▲
Il existe un mapping par target table, accessible via l'arborescence sur la gauche :
Le mapping est composé de plusieurs encadrés :
- General : nom, commentaires...
- Mapping formula : modification du mapping ;
- Table relationship and pre-filter : ajouter des tables au mapping, des filtres...
- Impact and lineage : permet de visualiser les impacts du mapping sur d'autres target tables par exemple ;
- Constraint checks : vérifier les primary keys
- Mapping rule test tool : permet de requêter sur votre mapping afin de visualiser une partie de l'extraction.
Le rectangle "S1" représente une table (le nom de l'alias est modifiable). Cliquez sur "Add table" pour ajouter une autre table à ce mapping. Ensuite, il faut cliquer sur "Add relationship" pour faire la jointure entre les deux tables.
Il reste à ajouter de nouvelles colonnes à cette target table et de les faire pointer sur la deuxième table (S2.NomDeColonne).
L'ajout de préfiltres permet comme son nom l'indique de filtrer les données en amont, afin de restreindre la volumétrie par exemple.
Les préfiltres (comme les mappings) utilisent une interface proposant différentes formules pour l'élaboration de la requête :
2-E. Export du projet▲
Pour déployer le projet sur le serveur, cliquez sur "Deploy" :
Entrez un nom à cet export et les différentes infos du serveur :
Pour finir, il ne reste plus qu'à créer une connexion sur votre serveur BO pointant sur le référentiel DataFederator, et de créer votre univers. (Du Business Objects pur et dur ;) )
3. Remerciements▲
Je tiens à remercier TomDuBouchon, qui m'a poussé à écrire cet article.
Je remercie également toute l'équipe de developpez.com pour l'hébergement, et les conseils qui m'aident quotidiennement.
Merci aussi au correcteur de cet article, Claude Leloup.