为什么SKIP_TRANSFORMATION只在CONTINUE_TRANSFORMATION分配给trans_Status时才能工作?我无法在wiki链接中找到有关这方面的信息
//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;
}提前谢谢。
发布于 2015-07-19 20:05:30
trans_Status=CONTINUE_TRANSFORMATION;它所做的就是读取所有传入的行并对其进行处理,并将其移动到下一步。默认情况下。
trans_Status=SKIP_TRANSFORMATION;它从处理过的行中读取数据并拒绝它。
但是,在过滤掉结果的情况下,情况就不同了(如在您的问题中)。为了根据特定条件筛选或拒绝行,trans_Status应该首先拥有所有处理过的行的副本。一旦在变量中可用,基于条件的SKIP_TRANSFORMATION将拒绝/过滤条件。这基本上就是问题中情景发生的原因。在您的情况下(不使用CONTINUE_TRANSFORMATION),trans_Status没有找到任何存储/处理的变量来应用条件。
理解(我认为)的最佳方法是在JS步骤中使用下面的snip:
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中应用了任何条件,并且希望使用这些常量。您可能需要确保首先处理所有行并将其存储到trans_Status变量中(最好的方法是使用CONTINUE_TRANSFORMATION),然后放置所有条件。
您也可以在相同的位置阅读我的博客。
希望这个解释有所帮助,并希望我是对的
https://stackoverflow.com/questions/31499900
复制相似问题