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 中应用了任何条件并且你想使用这些常量。您可能需要确保首先处理所有行并将其存储到 trans_Status 变量中(最好的方法是使用 CONTINUE_TRANSFORMATION),然后放置所有条件。
你也可以阅读我的博客。
希望这个解释有帮助,希望我是正确的:)