IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2005
    Messages : 418
    Points : 317
    Points
    317
    Par défaut [PowerCenter 9] Tracer l'exécution des sessions d'un workflow dans une table.
    Bonjour.

    Je suis novice en Informatica, et j'ai du mal à saisir toute la logique de l'outil...

    J'aimerais tracer l'exécution des sessions de mon workflow.
    A chaque fin de session, je voudrais insérer une ligne dans une table technique du type [nom_session ; résussite_ou_échec]

    J'entrevois 2 possibilités :
    - post-sql dans chaque mapping
    Le problème, c'est qu'en cas d'échec, je n'ai pas l'info "échec"
    - un mapping qui fait l'insertion d'une ligne dans ma table avec en source un "select * from dual" pour récupérer une seule ligne à insérer.
    En utilisant des variables je dois pouvoir en faire une tâche réutilisable à exécuter en post-traitement de chaque session

    Voyez-vous mieux et/ou plus simple ?

    Par la suite, en cas de plantage de mon workflow, j'aimerais pouvoir conditionner l'entrée dans chaque session en fonction de la réussite/échec de la précédente exécution.
    Est-ce faisable ?
    Comment créer une tâche qui assigne une valeur à une variable en fonction du contenu de ma table technique ?


    Merci d'avance pour vos pistes et éclaircissements.

  2. #2
    Expert éminent sénior
    Avatar de Glutinus
    Homme Profil pro
    Freelance EURL / Business Intelligence ETL
    Inscrit en
    avril 2005
    Messages
    5 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance EURL / Business Intelligence ETL
    Secteur : Finance

    Informations forums :
    Inscription : avril 2005
    Messages : 5 328
    Points : 25 162
    Points
    25 162
    Billets dans le blog
    3
    Par défaut
    Hello,

    Dans un premier temps, c'est très bien de penser à ça si t'as la possibilité, l'audit c'est très intéressant.

    Dans un deuxième lieu il n'y a évidemment pas une seule solution et plusieurs. Je t'indique celle que je préfère.

    Supposons que tu aies un workflow de type Start => session_A => session_B => session_C.

    Dans un premier temps, j'ouvre chaque session et je coche "fail parent if this task fails" et "fail parent if this task does not run". Ce qui fait que grosso modo tu fais échouer tout le workflow si jamais une seule des session ne marche pas.

    Ensuite, clique sur chacun des "links", c'est-à-dire des flèches violettes qui séparent deux sessions. Un message s'ouvre. Et là tu pourrais conditionner le passage des sessions.

    Ainsi, sur le lien entre session_A et session_B, tu ouvres la fenêtre, tu doubles-cliques sur "Status" pour le faire rentrer dans la formule puis tu rajoutes [= SUCCEEDED] (sans les crochets, mais bien égal).
    Tu peux également mettre ErrorCode = 0. Si jamais la session fail => celle d'après ne tourne pas.

    Enfin, tu peux créer deux autres sessions session_A_failed et session_A_succeeded avec un mapping dedans ou qui exécute une tâche unix permettant d'insérer ta ligne d'audit dans la table que tu veux, et conditionne mettant $session_A.ErrorCode = 0 ou $session_A.ErrorCode <> 0 par exemple, ou alors $session_A.Status = SUCCEEDED ou NOT($session_A.Status = SUCCEEDED).

    Il y a des milliers d'autres manières mais personnellement je trouve celle-ci la plus simple et la plus lisible.
    - So.... what exactly is preventing us from doing this?
    - Geometry.
    - Just ignore it !!
    ****
    "The longer he lived, the more he realized that nothing was simple and little was true" A clash of Kings, George R. R. Martin.
    ***
    Quand arrivera l'apocalypse, il restera deux types d'entreprise : les pompes funèbres et les cabinets d'audit. - zecreator, 21/05/2019

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2005
    Messages : 418
    Points : 317
    Points
    317
    Par défaut
    Merci Glutinus pour ta réponse.

    Je vais regarder ces propriétés (pfff, il y en a partout et à tous les niveaux...).
    Pour ce qui est d'une tâche qui fait un insert, y'a pas plus simple ou plus "joli" que de faire un "select * from dual" dans un mapping pour insérer une simple ligne dans une table (ou un fichier) ??
    (la proc stock est hors de question côté service d'exploitation).

  4. #4
    Expert éminent sénior
    Avatar de Glutinus
    Homme Profil pro
    Freelance EURL / Business Intelligence ETL
    Inscrit en
    avril 2005
    Messages
    5 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance EURL / Business Intelligence ETL
    Secteur : Finance

    Informations forums :
    Inscription : avril 2005
    Messages : 5 328
    Points : 25 162
    Points
    25 162
    Billets dans le blog
    3
    Par défaut
    J'avais vu comme solution un lancement d'un script unix (tous nos serveurs BDD et INFA sont sur Unix) qui se connecte et fait un Insert.

    Mais sinon effectivement si tu pars depuis un mapping il vaut mieux faire un from dual ou from une table DUMMY car il faut toujours au moins une source.

    Mais après je trouve ça plus propre aussi.
    - So.... what exactly is preventing us from doing this?
    - Geometry.
    - Just ignore it !!
    ****
    "The longer he lived, the more he realized that nothing was simple and little was true" A clash of Kings, George R. R. Martin.
    ***
    Quand arrivera l'apocalypse, il restera deux types d'entreprise : les pompes funèbres et les cabinets d'audit. - zecreator, 21/05/2019

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2005
    Messages : 418
    Points : 317
    Points
    317
    Par défaut
    OK, merci.

  6. #6
    Modérateur

    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    8 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata

    Informations forums :
    Inscription : septembre 2008
    Messages : 8 115
    Points : 16 351
    Points
    16 351
    Par défaut
    Vous pouvez faire un fichier dummy avec une ligne et le déposer sur l'ETL dans les sourcefiles, et bien le verrouiller en modification côté OS.
    Vous évitez ainsi une connexion à une BDD.
    Mais fondamentalement c'est le même principe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/01/2013, 23h19
  2. [WD15] Affichage des donnes de fichier INI dans une table mémoire
    Par bestmoroco dans le forum WinDev
    Réponses: 7
    Dernier message: 17/10/2012, 20h15
  3. Réponses: 9
    Dernier message: 26/03/2011, 09h46
  4. Affichage des résultats du khi-deux dans une table
    Par jenyo7 dans le forum SAS STAT
    Réponses: 14
    Dernier message: 29/04/2010, 15h03
  5. Transférer des lignes d'un datastore dans une table SQL
    Par Deedoo2000 dans le forum Powerbuilder
    Réponses: 7
    Dernier message: 30/10/2006, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo