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

Informatica Discussion :

[PowerCenter 9] Tracer l'exécution des sessions d'un workflow dans une table.


Sujet :

Informatica

  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 : 328
    Points
    328
    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
    Inactif  

    Homme Profil pro
    Freelance EURL / Business Intelligence ETL
    Inscrit en
    Avril 2005
    Messages
    5 879
    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 879
    Points : 26 150
    Points
    26 150
    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.

  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 : 328
    Points
    328
    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
    Inactif  

    Homme Profil pro
    Freelance EURL / Business Intelligence ETL
    Inscrit en
    Avril 2005
    Messages
    5 879
    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 879
    Points : 26 150
    Points
    26 150
    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.

  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 : 328
    Points
    328
    Par défaut
    OK, merci.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    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