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

Développement de jobs Discussion :

tMap (Recharger à chaque ligne, charge chaque fois, toutes les correspondances)


Sujet :

Développement de jobs

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 80
    Points
    80
    Par défaut tMap (Recharger à chaque ligne, charge chaque fois, toutes les correspondances)
    Bonjour,

    Je suis en train de développer un job dans lequel j'ai un mapping entre SAP et une table oracle.
    Dans la table Oracle j'ai différents statuts pour un champ dans SAP et selon les statuts dans la table Oracle je fais mon traitement ou pas.
    Je peux avoir plusieurs statuts Ok pour un seul champ dans SAP est ce qui perturbe mon traitement.
    exemple
    dans la table oracle j'ai deux champs : id et Statut_Ok
    dans la table SAP j'ai deux champs : id et statut
    j'ai fait le mapping la table principale c'est la table SAP et Oracle la table en lookup.

    Table Oracle :
    Id ; Statut_Ok
    1 ; 50
    1 ; 53
    1 ; 55

    Table SAP
    id ; Statut
    1 ; 53

    Les paramétrés de mon tMap sont les paramétrés par défaut ( charge une fois, correspondance unique) inner join sur ma table Oracle (lookup).
    Quand je lance mon traitement la ligne de la table SAP ca va rejeter pourtant que dans la liste de la table Oracle j'ai son statut c'est ok (53).
    Je suis sur que c'est une manipulation au niveau du composant tMap (Recharger à chaque ligne, charge chaque fois, toutes les correspondances, ...) mais quelle valeur je mets je ne sais pas :'(.
    J'ai essayé de créer une liste avec les statut_ok (de la table oracle) pour chaque Id mais je n'arrive pas à faire une variable type liste dans le tMap.
    Quelqu’un peut m'aider SVP.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Tu n'es pas clair, et je ne suis pas sûr d'avoir compris ton problème.

    J'ai compris que tu souhaitais avoir une sortie pour chaque status de lookup sur le champs id
    C'est bien ça ton problème?

    Si c'est ça ton problème, il faut que tu changes "correspondance unique" en toutes les correspondances, et ton lookup tu n'as pas besoin de recharger car il n'est pas sensé être modifié.
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Tu n'es pas clair, et je ne suis pas sûr d'avoir compris ton problème.

    J'ai compris que tu souhaitais avoir une sortie pour chaque status de lookup sur le champs id
    C'est bien ça ton problème?

    Si c'est ça ton problème, il faut que tu changes "correspondance unique" en toutes les correspondances, et ton lookup tu n'as pas besoin de recharger car il n'est pas sensé être modifié.

    Merci supergeoffrey pour ta réponse,
    En fait en principale j'ai une table qui a un ID et un STATUT je veux test est ce que son STATUT est OK ou pas.
    Pour tester le STATUT c'est OK ou pas j'ai une autre table dans la quelle j'ai pour chaque ID les statuts OK.
    De coup pour un ID on peut avoir plusieurs statuts OK dans la table de référence.
    J'ai essayé avec " toutes les correspondances" est ca fonctionne pas comme je veux.
    J’espère que la problématique est plus claire là?

    Schéma de mon traitement :

    Nom : IDOC.png
Affichages : 1080
Taille : 32,1 Ko

    Mon idée c'est de faire un jointure avec le type_idoc et comparer les STATUT_Ok et STATUS si c'est ok alors j'envoie rien si non j'envoie le type_idoc.

    Merci d'avance pour ton aide

  4. #4
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Pourquoi fais-tu un filtre pour savoir si les status sont différent?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !(row5.STATUS).equals(row4.STATUS_OK)
    Tu sembles perdu.

    Pour faire ce que tu veux :
    Si tu as dans ton lookup que les status "ok", pour savoir si le status est "ok" dans le flux principale il faut juste tester si tu as une ligne de mapping en lookup ou non.
    Pour celà, il te faut un "left outer join" avec correspondance unique.

    Et dans ton filtre ok
    Et dans ton filtre ko
    Attention if faut définir row5.TYPE_IDOC comme Nullable
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Pourquoi fais-tu un filtre pour savoir si les status sont différent?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !(row5.STATUS).equals(row4.STATUS_OK)
    Tu sembles perdu.

    Pour faire ce que tu veux :
    Si tu as dans ton lookup que les status "ok", pour savoir si le status est "ok" dans le flux principale il faut juste tester si tu as une ligne de mapping en lookup ou non.
    Pour celà, il te faut un "left outer join" avec correspondance unique.

    Et dans ton filtre ok
    Et dans ton filtre ko
    Attention if faut définir row5.TYPE_IDOC comme Nullable
    Merci
    Problème résolu.

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

Discussions similaires

  1. Trouver le nombre de ligne pour chaque tableau de chaque feuille
    Par andy05 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/03/2014, 00h58
  2. [XL-MAC 2011] Insérer 2 Lignes entre chaque ligne de la sélection
    Par olibxl dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/01/2013, 11h49
  3. SCD Transformation charge chaque fois toutes les données
    Par nessim dans le forum Alimentation
    Réponses: 0
    Dernier message: 05/01/2010, 16h40
  4. Afficher n° ligne de chaque ligne d'un SF
    Par jprjv dans le forum IHM
    Réponses: 4
    Dernier message: 25/11/2007, 19h41
  5. Réponses: 1
    Dernier message: 24/05/2007, 16h05

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