Bonjour,

Je fais appel à vous à propos du SCD :

Je dois faire un Job qui gère à date les différents statuts du contrat.
Le dernier contrat doit avoir un flag_actif = True et une date de fin a 2999.

La particularité c’est que le client est titulaire pendant une période donnée. Et qu’il doit être renouvelé a la fin la période donnée s’il veut être de nouveau titulaire ==> On peut avoir un client qui est renouvelé X fois.

La problématique c’est que dans la base de données source j’ai une table qui contient le statut en cours du contrat (Signé / annulé / retrait / abandon / titulaire) ainsi que la date de création (date de création de la fiche contrat)
Exemple : pour le contrat CA01 on sait qu'il est titulaire et que l'on a crée le contrat en 2007
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CA01 | titulaire | 02/05/2007
Dans une autre table la date de sa (ses) titularisations uniquement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CA01 | 02/06/2007
CA01 | 02/05/2008
CA01 | 02/04/2009
Par contre je ne sais pas quand le statut a changé de titulaire a annulé/retrait/abandon (problème dans la base de données sources)==> Donc par défaut nous nous sommes dit on prend sa dernière date de titularisation et on lui rajoute 1 an.

Dans un 1er temps j’ai fait un job qui va chercher :
- La date de signature
- Les dates de titularisation
- Les statuts qui sont différent de « titularisation / signature »
- Calcul du numéro de version
Le numéro de version pour l’exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
NumContrat | date début | num_version
CA01 | 02/05/2007 | 1
CA01 | 02/06/2007 | 2
CA01 | 02/05/2008 | 3
CA01 | 02/04/2009 | 4
Pour faire mon Job j'ai utilisé un Tmemorize, et j’insère dans mon composant scd :
- Clé source : id_contrat / id_statut / numéro de version
- Et tous les autres champs en type 1
Jusque-là tout va bien car le dwh en vide.

Problématique :
Lorsque je mettrai en production le DWH, je serais capable de voir que mon statut a changé en Annulé / abandon / retrait et donc plus besoin de prendre la règle : date dernière titularisation + 1an.
C’est justement c’est partie que je n’arrive pas à faire.

J'ai bien pensé à faire 2 jobs en disant :
Si la table du DWH est vide alors exécuter ce job sinon exécuter l'autre job.
Comment faire dès que j’ai un nouveau contrat ?
Comment faire dès que le statut change ?
- il faut mettre la ligne précédente a false et changer sa date de fin par date de début – 1 jour et incrémenter le numéro de version + 1

je sèche, votre aide serait plus qu’appréciable.
Merci par avance de votre aide.