【发布时间】: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