2016-07-01 5 views
1

Ich versuche, ein Java-Programm aufzurufen, das ich in Talend eingebaut habe. Eines der Argumente ist der Name (oder path\name) der TSV-Datei, an der gerade gearbeitet wird. Also, habe ich diesen Job:Talend: Erhalte den Namen der Datei von tFileInputDelimited in tSystem

job

Mit dem tFileInputDelimited wie folgt aussehen:

tFileInputDelimited

Und die tSystem wie das suchen:

tSystem

Grundsätzlich Ich muss den folgenden Befehl inausführen:

"java -cp * tsvTranspositer.TSVTransposer " + fileName 

Mit fileName ist der Name des (Pfad) der Präzedenzfall tFileInputDelimited Aber die fileName Variable scheint nicht aufrufbar zu sein (wie auf dem letzten Screenshot zu sehen), während ich gesagt wurde, war es. Wie kann ich von innen auf tSystem zugreifen?

Antwort

2

Keine Notwendigkeit, die Datei zu lesen, müssen Sie nur den Dateinamen in die tSystem Komponente passieren eine tFileList

tFileList-----(iterate)----->tSystem 

In tSystem Komponente, die globale var auf Ihren Befehl verketten:

"java -cp * tsvTranspositer.TSVTransposer "+((String)globalMap.get("tFileList_1_CURRENT_FILEPATH")) 

Auf diese Weise wird Ihr Job über alle Ihre Eingabedateien iterieren.

+0

Scheint wie eine gute Lösung für mich. Ich werde das morgen versuchen und ja, am Ende sollte es eine tFileList beim Eintritt bekommen, also ein anderes Problem gelöst, danke. – Fitz

+1

Funktioniert tatsächlich! ty – Fitz

Verwandte Themen