3

CONTINUE_TRANSFORMATION が trans_Status に割り当てられている場合にのみ SKIP_TRANSFORMATION が機能するのはなぜですか? 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;
}

前もって感謝します。

4

1 に答える 1

3
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);

ここで、fieldは前のステップ/ソースからのデータ フィールドです。POC のためだけに、5 ~ 10 個のデータを取得します。

JS スクリプトをプレビューすると、最初にすべてのソース値 (フィールド列) が警告されることがわかります。ただし、すべての行がプレビューまたは処理されると、SKIP_TRANSFORMATION が機能し、すべての行が拒否され、最終的にすべての拒否された行が返されます。

したがって、JS で条件を適用していて、これらの CONSTANTS を使用したい場合は、結論として。最初にすべての行が処理され、trans_Status 変数に格納されていることを確認してから(CONTINUE_TRANSFORMATION を使用するのが最善の方法です)、すべての条件を配置する必要がある場合があります。


私のブログも同じように読むことができます。

この説明が役に立ち、私が正しいことを願っています:)

于 2015-07-19T20:05:30.130 に答える