Bonjour à tous,
Je viens de commencer les ETL avec BODI, et j'ai besoin d'historiser des lignes à l'aide de l'history preserving, mais cela ne semble pas fonctionner.
Voilà les détails de mon problème :
1) Données fonctionnelles :
Je récupère via un ODS des données telles que :
id_cli /----/ region_com /----/ region_facturation /----/ region_geo
Je veux une table cible Dim de mon DWH conservant un historique des modifs de régions en rajoutant 3 champs :
date_deb /----/ date_fin /----/ flag_act
J'ai donc mis ma clé primaire de ma table cible sur id_cli et date_deb.
2) Première phase : Table Comparison
Je fais un premier Table Comparison chargé de taguer les lignes à updater ou à insérer. Je fais ma comparaison au niveau des champs id_cli et des régions.
3) Deuxième phase : History Preserving
Je place à la suite mon History Preserving pour qu'il ne me remplace pas mes lignes mais me les conserve en changeant uniquement les dates et le flag.
Mes colonnes à comparer restent id_cli et les régions, et je met date_deb pour la date début de validité et date_fin pour la fin de validité. Cette date fin est automatiquement remplie à 31/12/9999 par l'objet history preserving.
La date début quand à elle provient du dernier mapping et est mappée en "sysdate()".
Pour le current flag, je rentre ma colonne flag_act et pour les valeurs de flag, je met 1 pour la set velue et 0 pour la reset value.
4) Enfin je relie le flux history preserving à la table cible et je lance...
Et là je vois que ça ne fais pas du tout ce que je veux, en effet selon la doc technique, l'objet history preserving devrais m'updaté les lignes taguées en update par le Table Comparison en remplaçant la date fin par la date début paramétrée dans le mapping (sysdate) et remplacer mon flag par la reset value (0).
Ensuite elle devrait insérer les nouvelles lignes...
Sauf qu'au final aucun update ne marche, et j'ai seulement 1 nouvelle ligne d'insérée...
Est-ce que qqn a réussi à faire fonctionner ce foutu history preserving ??
Partager