Puis-je insérer un contexte dans un autre contexte ?
Sinon comment puis-je transformer ce texte : context.chemin_d_access+"/fixc"
pour l'obtenir en value d'un autre contexte ?
Puis-je insérer un contexte dans un autre contexte ?
Sinon comment puis-je transformer ce texte : context.chemin_d_access+"/fixc"
pour l'obtenir en value d'un autre contexte ?
Re-Salut,
si j'ai bien compris ta question, dans un tJava :
Code : Sélectionner tout - Visualiser dans une fenêtre à part context.var = context.chemin_d_access+"/fixc";
Re
Ouais c'est bien ça sauf qu'il me faudrait dans mon groupe de contexte un truc du genre :
NOM VALUE
var context.chemin_d_access+"/fixc"
Si je fais un tJava il se situerais où ?
Hum,
Pas sûr que dans un groupe de contexte du puisse initialiser une variable avec une autre variable de contexte.
Je n'ai jamais testé, mais j'ai un doute... (Je peux me tromper bien sûr).
Je ne vois pas bien pourquoi tu aurais besoin de faire cela.
Pourrais-tu en dire plus sur le besoin qui est derrière ta demande?
Parce que pour moi, dans ton job, une initialisation dans un tJava suffirai...
En fait j'ai une vingtaine de fichiers dans un dossier d'où le : context.chemin_d_access
puis suit : +"/fixc" et idem pour tous les fichiers.
Seulement si je fais exporter en variable de contexte, il veut que tous les champs de paramètres de mon fichier de données soient des contextes.
et donc je ne sais pas quoi mettre dans la valeur de mon contexte qui contient le chemin d'accès au fichier vu qu'à la base s'était : context.chemin_d_access+"/..."
Alors si tu as une vingtaine de fichiers dans le même dossier, et à condition qu'ils aient tous la même structure, je te conseil d'utiliser le composant tFileList.
Ce composant va te permettre de te positionner sur un dossier, puis de réaliser un traitement pour tout les fichiers de ce dossier.
Cela te permet d'avoir quelque chose de dynamique (car c'est le composant tFileList qui récupère le nom de chaque fichier en cours d'itération).
Je t'invite à regarder la documentation du composant (touche F1 sur le composant).
C'est bien ton besoin où je suis à côté de la plaque?
En fait je veux faire cela pour que les fichiers de données se mettent à jour automatiquement dans les jobs lorsque j'ai besoin de le modifié.
Donc vu qu'il faut être en mode référentiel et que je dois garder mes contextes je n'ai pas le choix que d'exporter en contexte le fichier.
Concernant le tfilelist je ne suis pas sûr qu'il permettent à mon fichier de données de se mettre à jour.
Tu évoques le fait par exemple de rajouter une colonne dans le référentiel et que cela se propage à tout les jobs si besoin?les fichiers de données se mettent à jour automatiquement dans les jobs lorsque j'ai besoin de le modifié
Pas sûr de te suivre là...et que je dois garder mes contextes je n'ai pas le choix que d'exporter en contexte le fichier
Je vais tenter de résumé :
Tu as un dossier contenant une vingtaine de fichier (sources j'imagine).
Tu veux, et c'est bien, lier ces fichiers au référentiel de façon à ce que le jour où tu as une modification d'ordre schématique ou adressique, cela se propage automatiquement.
Ce que tu ne n'as pas dit, c'est est-ce tes fichiers ont le même schéma? Parce que suivant ta réponse cela peut tout changer...
Il faudrait que tu soit plus précis et plus clair car sinon ça va être difficile de t'aider...
A vrai dire je n'ai toujours pas compris pourquoi tu souhaites imbriquer un contexte dans un autre contexte au niveau du nom de tes fichiers.
un fichier de données = un jobTu évoques le fait par exemple de rajouter une colonne dans le référentiel et que cela se propage à tout les jobs si besoin?
Si je modifie un fichier de données j'aimerais que le job en question se mette à jour sans que je n'ai à supprimer le fichier et le remplacer par celui modifié.
Faire cela est très simple car il suffit de mettre en mode référentiel.
Seulement les contextes entre en compte. J'ai besoin du contexte du chemin d'accès au fichier car j'externalise mes jobs et donc je n'ai plus qu'à modifié le fichier default.properties une fois externalisés. Jusque là tu me suis ?
Le problème est de conserver le contexte du chemin d'accès en mode référentiel.
Ok donc j'imagine que les fichiers sont différents les uns des autres (ils n'ont pas le même schéma ni le même nom) et qu'ils te servent à alimenter plusieurs tables.
A priori, ils sont tous liés au référentiel (nom et schéma j'imagine) de façon à ce que tu puisses propager facilement toute modification qui pourrait être faite dans le futur.
Donc si tu modifie la structure d'un fichier A dans le référentiel, le ou les jobs utilisant ce fichier A se mettront à jour (la même chose est valable pour le nom et chemin d'accès du fichier).
J'imagine deux solutions:
- Ton problème se situe au niveau du nom d'accès dans le référentiel Talend.
Tu souhaites, par exemple, changer le chemin d'accès et le nom du fichier A, seulement, lorsque tu vas dans le référentiel, et bien tu es bloqué car tu te retrouve devant un contexte et non un chemin d'accès.
Pour modifier il faut aller dans le groupe de contexte attaché à ton fichier- Ton problème se situe au niveau du référentiel lui-même car il affiche le nom du fichier en toute lettre et toi tu souhaiterais une variable de contexte?
Dans ce cas là, tu laisses le nom du fichier en dur dans le référentiel, MAIS dans ton job tu utilises une variable de contexte de façon à ce que tu puisse changer le nom facilement lorsque tu auras externalisé tes job (du coup tu passe en mode built in sur les propriétés générales mais tu reste en mode référentiel sur le schéma)
Désolé encore de t'embêter avec ça, mais il faut absolument que tu sois + précis et + concis dans tes explications si tu veux une aide pertinente.
Là, j'ai du me creuser la tête pour tenter de deviner ton problème en me basant sur des suppositions (et j'espère que j'ai bon!).
Pour ma part, Je parierais sur la solution...2!
C'est bon merci j'ai résolu le problème
C'est une bonne chose.
Et comment as-tu fait?
Cela pourra certainement aider d'autres personnes rencontrant le même souci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager