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 :

Lookup dynamique et données non créées


Sujet :

Informatica

  1. #1
    Membre du Club
    Inscrit en
    juin 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 67
    Points : 46
    Points
    46
    Par défaut Lookup dynamique et données non créées
    Bonjour,

    Je sollicite votre aide sur un mystère, peut-être auriez-vous une idée.
    J'utilise un look-up dynamique dans lequel j'ai en entrée une adresse (définie via un identifiant unique) et un type numérique (valeur 1 ou 2). Donc 2 conditions.
    Je regarde si une ligne existe avec la même adresse et type = 1.
    Si elle n'existe pas (donc NewLookupRow = 1), je la crée dans ma table en même temps d'une ligne de la même adresse mais avec type = 2.
    Si elle existe déjà, je crée juste une ligne avec type = 2.

    En gros, je dois obtenir un truc du genre :
    ID | ADRESSE | TYPE
    01 | $1 | 1
    02 | $1 | 2
    03 | $1 | 2
    04 | $2 | 1
    05 | $2 | 2
    06 | $3 | 1
    07 | $3 | 2
    08 | $3 | 2
    09 | $3 | 2

    Sauf que dans certains cas, aucune ligne de type = 1 n'est créée alors qu'elle n'existe pas dans la table target. Et en mode debugguer, elles se créent bien comme attendu. Pareil quand on met un filtre dans le Source Qualifier et qu'on lance le mapping, les lignes sont créées.
    Mais avec le total des données (environ 22000 lignes), ces cas ne veulent pas se créer.

    Est-ce que vous auriez une idée d'où ça peut coincer ?
    Je développe sous Informatica 9.1.

    Merci d'avance pour votre aide !

  2. #2
    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 352
    Points
    16 352
    Par défaut
    Citation Envoyé par Yaone Voir le message
    J'utilise un look-up dynamique dans lequel j'ai en entrée une adresse (définie via un identifiant unique) et un type numérique (valeur 1 ou 2). Donc 2 conditions.
    Je regarde si une ligne existe avec la même adresse et type = 1.
    Si elle n'existe pas (donc NewLookupRow = 1), je la crée dans ma table en même temps d'une ligne de la même adresse mais avec type = 2.
    Si elle existe déjà, je crée juste une ligne avec type = 2.
    Vous avez su créer un algorithme qui ne sert à rien, puisque au final vous insérez toujours une ligne d'adresse avec le type à 2.

  3. #3
    Membre du Club
    Inscrit en
    juin 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Il faut toujours un ligne avec type = 2, c'est normal ça, mais pas toujours de ligne avec type = 1.

    Mais je viens de résoudre mon problème.
    Pour comprendre, il faut rajouter le fait que toutes mes adresses n'avaient pas forcément un type 1 à créer (donc on peut avoir une adresse avec seulement un type 2). Il faut aussi savoir qu'il y a un champ en plus qui me permet de savoir si je devais en créer un ou non.
    Du coup, quand une ligne avec une adresse $1 arrivait et que la condition n'était pas remplie, ça me rajoutait dans le cache du lookup la ligne adresse/type ($1/1). Et forcément, quand j'ai ma ligne avec la même adresse $1 mais avec la condition remplie qui rentrait dans le lookup, bah il trouvait une ligne. Et à l'arrivée, pas de ligne $1/type1, seulement $1/type2.

    Donc j'ai juste rajouté un champ "ACREER" avec comme valeur 0 (non) ou 1 (oui) à mes conditions de mon lookup et une condition d'update "in_ACREER = 1 AND ACREER = 0". Et le tour est joué.

    Désolée du dérangement. ^^

  4. #4
    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 352
    Points
    16 352
    Par défaut
    Je n'avais pas compris dans la phrase suivant qu'on crééait une ligne avec le type à 1 :
    Si elle n'existe pas (donc NewLookupRow = 1), je la crée dans ma table en même temps d'une ligne de la même adresse mais avec type = 2.
    Au temps pour moi !

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

Discussions similaires

  1. [AJAX] Crée dynamiquement des données JSON
    Par geforce dans le forum AJAX
    Réponses: 3
    Dernier message: 20/04/2010, 16h30
  2. Réponses: 2
    Dernier message: 29/06/2007, 13h50
  3. Impossible d'accéder aux tables non créées par dbo
    Par Pete dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2005, 14h01
  4. Réponses: 4
    Dernier message: 01/07/2005, 16h20
  5. [CR] Impression de données non issues d'une base de données
    Par jeroe dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 04/04/2005, 09h09

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