2016-05-25 4 views
0

Dans ma transformation, j'ai créé un var (formaté au format aaaa-mm-jj HH24mmss) dans le script java modifié. J'utilise ensuite une étape de définition de variable pour définir le champ sur une variable et la portée est valide dans le travail racine.kettle etl passing variable

La question est de savoir comment utiliser cette variable dans une autre transformation (dans le même travail)? J'ai essayé d'obtenir variable, mais il semble y avoir seulement des variables système. Ce que je veux faire est de sortir la date dans un fichier de la seconde transformation. Il y a plus de transformations entre les deux, c'est pourquoi je ne peux pas faire la sortie dans la première transformation.

Ou est-il possible de créer une variable dans le travail, et définir sa valeur (date actuelle dans HH24mmss-jj aaaa-mm) puis utiliser dans des transformations?

EDIT:

La réponse fonctionne, mais la date est pas dans mon format attendu (HH24mmss aaaa-mm-jj), et on ne sait pas quel format la date est. Par exemple, si j'essaie de le formater dans un script java modifié et que j'utilise la fonction getFullYear, j'obtiens TypeError: Impossible de trouver la fonction getFullYear dans l'objet Wed May 25 17:44:04 BST 2016. Mais si je le publie dans un fichier, le La date est en aaaa/mm/jj hh: mm: ss.

Donc, j'ai trouvé une autre façon de le faire est d'utiliser une entrée de table et de générer une date au format souhaité et définir la variable, le reste est le même.

Répondre

0

Lors de votre première transformation, utilisez l'étape Get System Info pour injecter la date et l'heure actuelles dans votre flux de données et exécutez-la dans une étape Set Variables qui définit la variable définie dans votre Job.

La variable que vous utilisez peut ne pas apparaître dans la liste déroulante lorsque vous utilisez CTRL-Space. En effet, la variable est allouée par le Job lors de l'exécution et n'est pas disponible au moment du design. Tapez simplement '$ {VariableName}' dans le champ au moment du design. Lorsque vous exécutez un travail qui contient une variable de ce nom, cela devrait fonctionner.