-1

TalendDI4.2.1でのtScriptRuleコンポーネントの使用。jexl式を使用して日付パターンの結果を評価すると、すべての条件でfalseになります。テスト用のジョブから派生したスニペットは次のとおりです。

public class Script {

static class Row {

    public String EFFECTIVEDATE;

    public String getEFFECTIVEDATE() {
        return this.EFFECTIVEDATE;
    }
}

public static void main(String[] args) {
    Row row1 = new Row();
    row1.EFFECTIVEDATE = "10-01-2012"; 
    com.bekwam.tscriptrules.JexlRowEvaluator e_tScriptRules_2 = new com.bekwam.tscriptrules.JexlRowEvaluator();
    boolean ruleTest_tScriptRules_2_1 = e_tScriptRules_2
    .evalTrue("'${TalendDate.isDate(row1.EFFECTIVEDATE, \"dd-mm-yyyy\")}' == true", "row1", row1);
    System.out.println(ruleTest_tScriptRules_2_1);
}
}

ライブラリ/コンポーネントはtScriptRulesからのものです

4

1 に答える 1

0

Talend関数は、jexl式プロセッサーによって評価されません。jexl式で使用できるのは(入力行の)フィールドのみです。生成されたJavaコードでわかるように、メソッドに渡されるパラメーターは行とそのすべてのフィールドのみです。

com.bekwam.talend.component.scriptrules.Result result_tScriptRules_1 = rulesBean_tScriptRules_1.process(row1, row2, row3, counter_tScriptRules_1);

  • row1:入力行
  • row2:フィルタリングされた行
  • row3:拒否された行

jexl式プロセッサにTalendメソッド評価を追加する場合は、tscriptrules-2.0.1.jarライブラリを変更できます。

代わりに、tmapを使用してこの種のデータ品質チェックを行うことをお勧めします

tMapデザイン:http: //imageshack.us/a/img842/879/talendtmap.jpg tMap結果: http: //imageshack.us/a/img541/5950/talendtmapresult.jpg

于 2013-01-17T21:44:39.577 に答える