|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 43 ![]() |
Bonjour à tous,
J'ai remarqué l'option "Recover as a unit" dans les propriétés d'un Workflow sous BODI. Je sais que ça a un rapport avec l'intégrité des données lors d'une reprise, mais concrètement qqn pourrait m'expliquer comment ça marche ?? Il y a également l'option "Execute only once", je pense qu'il s'agit d'une option permettant de caractériser le Workflow en mode d'exécution unique, c'est à dire qu'en cas de reprise, il ne sera pas relancé, c'est bien ça ?? Merci de me confirmer tout cela !!!
|
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : juin 2002 Messages : 32 ![]() |
L'interdépendance de certaines étapes d'un WorkFlow nécessitte qu'elles s'exécutent ensemble. dans une telle situation, le WorkFlow peut être déclaré en tant qu'unité de reprise (option Recover as a unit) de telle sorte que l'échec d'une seule de ses étapes suffise à le réexécuter totalement en mode de reprise automatique.
La déclaration explicite d'ecécution unique au niveau d'un WorkFlow ou d'un Data Flow (option Execute only once) autorise cependant que le WorkFlow terminé correctement ne soit pas réexécuté, quand bien même il appartient à un WorkFlow considéré comme unité de reprise. |
|
|
00
|
|
|
#3 | |
|
Membre éclairé
![]() Consultant en Business Intelligence Inscription : mai 2006 Messages : 276 ![]() |
Citation:
Pour Recover as a unit : Supposons que tu gères un référentiel clients dans ton alimentation, tu gères des clients, leurs adresses, des entreprises et des tables pour dire quel client bosse pour quelle entreprise. L'ensemble de ces alimentations est judicieusement rangé dans un workflow vu que ces traitements vont ensembles. En activant l'option Recover as a unit au niveau du workflow qui regroupe le tout, l'ensemble du workflow sera ré-exécuté en cas de plantage sur un des sous-chargements, cela permet de maintenir la cohérence fonctionnelle de ton référentiel clients. Imaginons donc qu'un utilisateur de ton beau logiciel de CRM dont tu gère le référentiel client s'est planté en saisissant le pays Canada et qu'il a écrit Canoda dans le champ Pays. Tes traitements étant bien faits, tu fais une transcodification sur la table des pays pour récupérer l'identifiant du pays, et, ton pays étant inconnu, tu te retrouves avec une valeur nulle dans un champ supposé not null S'en suit un méga plantage qui fait que tout ce qui vient derrière n'est pas exécuté. Deux possibilités :
Pour Execute only once : Supposons maintenant que dans un autre traitement, tu as une interface entre 2 bases de données (pour maintenir à jour un logiciel de CRM suite à mise à jour d'une autre application par exemple), tu as ensuite d'autres traitements n'ayant rien à voir avec cette interface. Ton interface devra avoir l'option Execute only once activée afin d'éviter de charger des doublons. Imaginons que tu as un plantage sur un des traitements postérieur à ton interface, deux possibilités :
Evidement tout dépend de tes traitements, donc cela doit être défini dès le début pour éviter de faire la correction après le gros bug (qui finis toujours par arriver). |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com