根据Talend中的条件跳过组件

Rak*_*ama 3 talend

我有一个场景,我想根据条件跳过一个组件来执行,并在Talend中运行它的连续组件.

它可能吗?

yda*_*coR 5

您有两种选择可以有条件地执行部分工作.

在条件检查之后的组件可以是起始组件(如果将其放到画布上然后它应该具有绿色背景),那么您可以使用Run if连接器将其链接到作业的上一部分,如下所示:

运行如果作业设置

在这个例子中,我们只是有条件地调用另一个tJava组件,但这可以是任何可启动的组件.

使用以下代码配置第一个tJava组件(Set condition boolean):

Boolean condition = false;
globalMap.put("condition",condition);
Run Code Online (Sandbox Code Playgroud)

而且,这两个Run if接口被设置为((Boolean)globalMap.get("condition")) == true((Boolean)globalMap.get("condition")) == false分别.

更好的选择可能是在tMap或tFilterRow组件中使用过滤,这也允许您链接到不启动组件的组件.为此,您可以将工作设置如下:

tMap条件作业设置

在这个工作中,我在tFixedFlowInput组件中硬编码了一些表格数据:

tMap条件工作数据

然后我们使用tMap过滤数据流到以下任何组件:

tMap条件作业数据tMap配置

我们在其中测试数据的布尔条件列的值.作为一个例子,我还对数据应用了一些简单的条件转换,其中"true"行的值增加了1000,"false"行的值减去了100.

从这里开始,您可以正常地继续工作流程,在这种情况下,我们会链接到一个tSystem组件,以根据您的评论执行系统命令.