【问题标题】:Creating folder in Talend after comparing data from File比较文件中的数据后在 Talend 中创建文件夹
【发布时间】:2016-04-16 08:53:11
【问题描述】:

我有一个要求,我有一个 excel 文件,其中文件中有四列。列的图像已附上。

我使用 tsystem 组件创建了一个简单的作业,它在指定目录中创建文件夹。 该作业的参数更改如下:

组件正在创建所需的文件夹,但这里的要求是我将在运行时传递上下文变量文件夹和文件夹 1 的值,这需要与 excel 文件的列(即文件夹和文件夹 1)进行映射,并且如果它与上下文变量 initial_path 的值匹配,则需要从 excel 中提供列 Path 的值。

请注意,excel 将有多行,但只有一行与我在运行时传递的输入匹配,因此应读取每一行直到找到匹配项。

我该如何设计这份工作。

提前感谢您的帮助。

【问题讨论】:

  • tFileInputExcel-->tRowToIterate-->tJava (在这里你可以应用你的逻辑来判断是否找到了这个行匹配..设置一些全局变量)--RUN-IF-Trigger-- ->tSystem(使用您在 tJava 组件中设置的值)并且仅在 run-if 条件为 true 时运行
  • 您能否提供我应该用于我的要求的示例 java 代码。另外据我所知,没有称为 tRowToIterate 的组件,但我们有 tFlowToIterate。这和你说的一样吗?
  • yes tFlowToIterate.. 在 java 代码中你必须做的如下(首先你必须取消选中 tFlowToIterate 中的默认基本设置以允许你定义将是全局变量的键。然后接下来你必须将这些变量/键映射到来自 excel 的传入列。接下来在 tJava 代码中,您可以使用 globalMap.get("key/variablename") 获取这些变量/键并比较它们以确定是否必须附加路径然后您可以使用 globalMap.set() 设置一个标志并将其存储在另一个全局变量中,并在 Run-IF 触发器中使用它

标签: excel jobs talend data-integration


【解决方案1】:

感谢@garpitmzn 的输入,我应用了一些代码并能够构建所需的作业。

工作如下:

我应用的java代码如下:

然后在 If 触发器上,我使用了以下逻辑:

context.folder == ((String)globalMap.get("path_dir"))

完成了我的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多