我有以下pdi职位结构:
START ---> TR1 ---> TR2 ---> TR3
其中:
TR1
将返回3行,
TR2
已启用我的execute every input row
,并将返回5行,
TR3
已启用我的execute every input row
,并且据说运行了15次(这3个TR2
中的每5次)。
我的期望是:
TR1
将精确地运行1次,TR2
将精确地并行运行3次(因为TR1
返回3行),
和TR3
将精确地运行15次(因为TR2
中的每一个都返回5行)。
但是现实是
TR2
被执行了3次,符合预期,
但是TR3
仅执行1次,未按预期执行。
我的问题是:
为什么会这样?
如何使TR3
像TR2
行中的循环一样
答案 0 :(得分:1)
为此您需要创建作业,请尝试以下顺序
开始-tr1-(job1(tr2-subjob2(tr3)))-结束
job1和job2将通过执行每个原始输入进行检查。
Dis- 创建job1并连接到tr1,然后将tr2放入其中,然后创建subjob2,然后连接到tr2,然后将tr3放入subjob2中。
答案 1 :(得分:0)
我认为,TR代表变革,而所有TR都是工作的一部分?如果是这种情况,那么您要做的就是-在TR1中,通过将TR1的最后一步与“将行复制到结果”相连,将结果发送到TR2,然后双击作业中的TR2,然后转到“高级”,然后选中“将以前的结果复制到参数”和“执行到每个输入行”。
现在,在其中以相同的名称序列将TR1的列名称添加到TR2的参数标签下。然后在TR2属性中将这些参数添加为具有空默认值的参数,以便您可以将前一次转换生成的值用作TR2中的变量。现在将TR3包含在TR2中,以便甚至对TR1生成的每一行都执行。希望我不要混淆。让我知道是否没有道理。