为什么SKIP_TRANSFORMATION仅在将CONTINUE_TRANSFORMATION分配给trans_Status时才有效?我无法在wiki link
中找到相关信息//Not working (not getting skipped)
if (sequence_value%2==0){
trans_Status = SKIP_TRANSFORMATION;
}
//Working (checked from an online example)
trans_Status = CONTINUE_TRANSFORMATION;
if (sequence_value%2==0){
trans_Status = SKIP_TRANSFORMATION;
}
提前致谢。
答案 0 :(得分:2)
trans_Status=CONTINUE_TRANSFORMATION;
它的作用是,它读取所有传入的行并对其进行处理并将其移至下一步。它是默认的。
trans_Status=SKIP_TRANSFORMATION;
它从已处理的行中读取数据并拒绝它。
但是在过滤结果(如你的问题中)的情况下情况会有所不同。为了根据特定条件过滤或拒绝行,trans_Status应首先拥有所有已处理行的副本。一旦变量可用,基于条件的 SKIP_TRANSFORMATION 将拒绝/过滤条件。这基本上是问题中情景的原因。在你的情况下(不使用CONTINUE_TRANSFORMATION),trans_Status没有找到任何存储/处理过的变量来应用条件。
理解(我假设)的最佳方法是在JS步骤中使用以下片段:
if(field == "BB"){ //condition to filter the rows
trans_Status=SKIP_TRANSFORMATION; //filter rows on condition
}
Alert(field);
此处,字段是来自上一步/来源的数据字段。拿一些5-10个数据,仅供POC使用。
一旦预览 JS脚本,您会发现最初会提醒所有源值(字段列)。但是一旦所有行都被预览或处理,那么SKIP_TRANSFORMATION将起作用并拒绝所有行,最终为您提供所有被拒绝的行。
因此,最后,如果您在JS中应用了任何条件,并且您想要使用这些CONSTANTS。您可能需要确保首先处理所有行并将其存储到trans_Status变量中(最好的方法是使用CONTINUE_TRANSFORMATION)然后放置所有条件。
你也可以在同一时间阅读我的blog。
希望这个解释有所帮助,并希望我是正确的:)