我有一个Talend工作,我试图重构迭代运行。原始作业会在prejob-> tJava中将值放入全局映射,然后fileInput使用该值打开文件(tFileInputDelimited)并在子作业中执行rowMain。 fileInput还有一个OnSubjobOk,它触发另一个fileInput,它有一系列rowMain进程。
我现在正在尝试重构这个工作,以便tJava prejob设置一个列表并将其添加到globalMap。然后我使用迭代器迭代到tJavaFlex,然后迭代到fileInput触发第一个subjob。但是,我不能从第一个subjob触发第二个subjob,并想知道如何从1迭代器迭代一系列的子作业。
我怎样才能设计这样的工作?
这是原始作业的示例。它使用了一个context参数来指定一个文件名,然后由“read demo”使用。我想遍历每个文件的所有子工作。作业需要完成第一个子作业,然后完成第二,第三和第四个子作业,然后再使用下一个文件名进行下一次迭代。如果没有提供,prejob只在文件名上设置默认值,并且不是必需的。
我尝试过使用tIterate进入“read demo”组件,但无法根据需要使用它。
答案 0 :(得分:1)
而不是OnSubJobOK只需使用tFlowToIterate - >迭代链接以触发读取价格CSV。
请注意,在作业中无法轻易更改读取价格CSV文件名。当你添加一个迭代链接时,整个readCSV将成为subjob的一部分,动态更改它是一件痛苦的事。你还有几个选择: