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 :

Création d'une variable dans un job


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Août 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Août 2021
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Création d'une variable dans un job
    Bonjour,
    je suis débutant dans le développement sur talend.

    J'ai créé un job qui me permet d'avoir une restitution des informations dans j'ai besoins depuis plusieurs tables cible.
    J'applique un filtre sur la date pour récupère la période d'un an glissant ( jour exécution job)
    aujourd'hui je saisi à la main avant chaque exécution.
    je souhaiterai créer une variable dynamique ( contexte )

    Je vous remercie par avance pour votre aide
    Images attachées Images attachées   

  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
    Bonjour,
    Le context est une variable de configuration et non dynamique, il est de mauvaise pratique de la changer à l'execution.

    Je vois que tu montres ta requette, je suppose que c'est la close where, ou uniquement les dates que tu voudrais viabiliser.

    Normalement dans un job tu as une vue context sous Talend qui s'affiche dans un onglet au même niveau que celui de "composant" "execution"...

    Tu remplis les variables de ton context comme dans un schema

    Après pour utiliser ta variable dans ta requette, vu que ta requette est une chaine de caractere en java, du coup il faut faire une concaténation de chaînes de caractères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE ta_date IS BETWEEN '" + context.beginDate +"'  AND "' + context.endDate + '" )...
    Attention : Dans le cas ou beginDate et endDate sont de type String

    ou juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE  " + context.whereClause + "  ...

    Quand tu exportes le job, et que tu le lances hors Talend tu peux surcharger tes variable de context de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./tonJob_run.sh --context-param variable1=valeur1   --context-param variable2=valeur2
    Je ne pense pas que tu en aura besoin sauf si tu veux que ça soit un autre système qui te donnes tes entrée....
    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 à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Août 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Août 2021
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Je vous remercie pour votre réponse.
    effectivement, il s'agit d'une partie de la requête SQL (where)
    j'ai essayé de paramétrer les date (debut/fin) comme précisé. j'ai un message d'erreur de type
    Nom : Capture-3.PNG
Affichages : 66
Taille : 35,5 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    "SELECT 
     OS_KERN.PROTOKOLLE.ASADBUID, 
      OS_KERN.PROTOKOLLE.ASAID, 
      OS_KERN.PROTOKOLLE.CANCELLATIONTYPE, 
      OS_KERN.PROTOKOLLE.EDATE
    FROM OS_KERN.PROTOKOLLE
    WHERE 
    OS_KERN.PROTOKOLLE.STORNOARTID is null  AND
    OS_KERN.PROTOKOLLE.ENDGUELTIG = 'J'  AND
    OS_KERN.PROTOKOLLE.SUBTYP = 'O'  AND 
     OS_KERN.PROTOKOLLE.OP_ID IN 
    (SELECT  OS_KERN.OP.OP_ID FROM OS_KERN.OP WHERE   OS_KERN.OP.OP_DATUM BETWEEN  " + context.beginDate+"  AND "+context.endDate+"  )
    "

  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
    Dans la question originale la requette est de ce genre

    BEETWEEN '01/12/2020' AND '31/12/2020'

    la on doit être plutot sur du

    BEETWEEN '01-12-2020' AND '31-12-2020'


    Puis-je voir la vue 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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Août 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Août 2021
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    un grand merci pour votre aide.
    alors ci dessous une capture d'écran comme demandé.
    j'ai essayé avec les deux écritures mais toujours le même message d'erreur.

    Nom : Capture-4.PNG
Affichages : 65
Taille : 45,2 Ko

  6. #6
    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
    C'est quoi le type des dates dans le context ?

    J'avais préciser
    Attention : Dans le cas ou beginDate et endDate sont de type String

    On peut le faire avec un type date mais il faut définir le format dans le context et reformatter la date à la génération de la requête c'est plus chiant à faire.
    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

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

Discussions similaires

  1. Création d'une variable tableau dans un fichier xla
    Par john_mtp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2011, 12h33
  2. Réponses: 1
    Dernier message: 07/04/2011, 21h28
  3. [PowerShell] Recupération de données dans une variable depuis Receive-job
    Par Striper dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 07/06/2010, 14h30
  4. Réponses: 1
    Dernier message: 02/06/2010, 15h05
  5. Création d'une variable vide dans BO
    Par atoffoli75 dans le forum Deski
    Réponses: 5
    Dernier message: 10/06/2008, 10h32

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