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 :

Utiliser résultat de requête sql comme variable de contexte


Sujet :

Développement de jobs

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant en solutions décisionnelles
    Inscrit en
    Mars 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Consultant en solutions décisionnelles
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Utiliser résultat de requête sql comme variable de contexte
    Bonjour à la communauté,

    Je suis à la recherche de comment créer un contexte à partir d'un résultat de requête.
    Ce contexte sera utilisé dans la suite du job dans une autre requête sql.

    J'ai vu ce post et donc j'image que c'est possible : https://www.developpez.net/forums/d1...-select-seule/

    Merci d'avance pour vos réponses.

  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
    Je n'ai pas compris totalement ton besoin.
    Je ne vois pas le rapport avec le tDenormalize.

    Mais tu peux toujours surcharger le context via tContextLoad (D'ailleurs je ne suis pas sur que tu en ais besoin).

    _____________________

    Je pense que tu veux faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tSGBDInput1 -row1-> ...(transformation en pseudo context )... -rowN-> tFlowToIterate -iterate->tSGBDInput2 -rowX-> ...(Ce que tu veux faire avec la 2e requête)
    Ici dans tSGBDInput2 tu peux utiliser toutes les variables de rowN dynamiquement comme celle du context.
    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
    Candidat au Club
    Homme Profil pro
    Consultant en solutions décisionnelles
    Inscrit en
    Mars 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Consultant en solutions décisionnelles
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse supergeoffrey !

    Par contre je ne suis pas sûr de bien comprendre (je suis assez débutant sur l'outil).

    On a plusieurs projets où l'on doit venir écrire des calculs en cascade pour chacun d'eux.
    Voici un exemple :

    Calculs niveau 1 :
    Calcul 1 : Somme des hommes = hommes cdi + hommes cdd
    Calcul 2: Somme des femmes = femmes cdi + femmes cdd

    Calcul niveau 2 :
    Calcul 3 : Somme des effectifs = total Hommes + Total Femmes (Niveau 2)

    Dans un premier temps, on souhaite récupérer les résultats de calcul de niveau 1, les stocker en bdd et ainsi de suite pour les niveaux supérieurs.

    Voici les étapes que nous avons identifié :
    - Looper sur chaque projet
    - Looper sur chaque niveau (calculs de niveau 1, puis niveau 2...)
    - Récupérer les paramètres de calcul via une requête SQL (Mysql)
    - Passer ces informations en contexte (pour être utilisées dans une autre requête SQL)
    - Faire le calcul et écriture en BDD

    exemple :
    Les infos récupérées des calculs et à passer en contexte :
    indicateur | paramètres de calcul
    Somme des hommes | Hommes cdi + Hommes cdd

    Notre problème, c'est que nous n'arrivons pas à passer ces paramètres en contexte.

    Ici, quand tu dis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tSGBDInput1 -row1-> ...(transformation en pseudo context )... -rowN-> tFlowToIterate -iterate->tSGBDInput2 -rowX-> ...(Ce que tu veux faire avec la 2e requête)
    Transformation en pseudo contexte, ça serait la partie qui nous intéresse mais on ne voit pas comment faire.
    Merci encore !
    Images attachées Images attachées  

  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
    Citation Envoyé par etienne.petit
    Notre problème, c'est que nous n'arrivons pas à passer ces paramètres en contexte.

    Ici, quand tu dis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tSGBDInput1 -row1-> ...(transformation en pseudo context )... -rowN-> tFlowToIterate -iterate->tSGBDInput2 -rowX-> ...(Ce que tu veux faire avec la 2e requête)
    Transformation en pseudo contexte, ça serait la partie qui nous intéresse mais on ne voit pas comment faire.
    Merci encore !
    En fait, ici, j'insinue que rowX est un speudo-context. Tu l'utilises comme la variable `context` sauf qu'elle s'appelle rowX est que c'est une variable.
    L'avantage c'est qu'à la génération du code par Talend rowX est visible dans le flux itérate .
    Réellement tu fais une itération sur le résultat d'une requête et tu ne modifies pas le context.


    Dans ton job c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tMysqlInput -row11-> tJavaRow_1 -> row12 -> tFlowToIterate -> ton job
    Globalement ici row12 est accessible dans tout se qui suit le iterate (TtMysqlInput_2, tMap_3, tFilterRow, tReplace_1,tReplace_2,tFileOutputDelimited_1,tBufferOutput_1).
    Et row12 contient toutes les valeurs que tu as défini dans ton tJavaRow_1.

    Du coup dans n'importe quel composant dans le flux iterate tu peux faire row12.variable1 comme tu ferais un context.variable1.
    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 émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    tu souhaites créer un context.
    Et à un moment un tJavaRow_1 modifie la valeur de ce context genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    context.projetServeur=input_row.server...
    Puis un autre un tJavaRow_2 modifie la valeur de ce context genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.sommeHomme= context.sommeHomme+input_row.sommeHomme;
    ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Consultant en solutions décisionnelles
    Inscrit en
    Mars 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Consultant en solutions décisionnelles
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos messages.

    J'ai réussi à récupérer les variables comme tu as dit supergeoffrey, à savoir itérer sur chaque ligne de requête via le tMysqlInput et récupérer les valeurs avec la méthode rowN.

    Pour chaque ligne récupérée et triée (soit somme ou moyenne), nous devions écrire toutes les lignes pour chaque périmètre. j'ai passé les champs en variable le projet et les field comme ceci dans le tmap :
    Nom : Screenshot_4.png
Affichages : 877
Taille : 40,7 Ko

    J'ai pu comme ça récupérer ces éléments dans mon autre requête :
    Nom : Screenshot_5.png
Affichages : 832
Taille : 22,4 Ko

    Comme ça au final, toutes les lignes s'écrivent pour un projet, un indicateur en fonction du type de calcul, tout s'écrit en base.
    Nom : Screenshot_3.png
Affichages : 870
Taille : 108,1 Ko

    Merci encore pour votre aide !

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

Discussions similaires

  1. Résultats de requête SQL comme paramètres de fonction VBA
    Par lamiae1989 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 09/02/2018, 07h52
  2. résultat de requête sqlplus dans variable shell
    Par lkovax dans le forum Oracle
    Réponses: 4
    Dernier message: 21/06/2007, 16h21
  3. Requête SQL comme recordsource d'un état
    Par Daniel MOREAU dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 01/02/2007, 18h01
  4. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 03h41
  5. Différence de résultats entre requêtes SQL et Criteria
    Par titoudemtl dans le forum Hibernate
    Réponses: 3
    Dernier message: 07/08/2006, 09h30

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