|
Script |
「Script」プロセッサを使用すると、JavaScriptを使用して単純なプロセッサに対する独自のプロセッサ論理を指定できます。スクリプトは、「Script」プロセッサのオプションとして入力されます。
EDQで作成されるプロセッサ内でスクリプトを使用できるため、そのスクリプトには、プロセッサのエンド・ユーザーは簡単にアクセスできないことに注意してください。また、プロセッサ・ライブラリに追加する新規プロセッサの作成時にスクリプトを使用できるため、スクリプトの大幅な複雑化が可能であり、たとえば、複数の入出力、参照データを使用するオプション、および結果ビューを使用可能にできます。
「Script」プロセッサは、提供されているいずれのプロセッサを使用しても簡単に実行できない、いくつかの単純な処理ロジックを定義するために使用します。
任意の数のあらゆるタイプの属性を「Script」プロセッサの入力にできます。選択した入力属性はinput1というJavaScript配列にマップされます。
オプション |
タイプ |
目的 |
デフォルト値 |
|
Result type |
選択(String/Number/Date/String Array/Number Array/Date Array) |
スクリプトの出力結果のタイプを決定します。
|
String |
|
Script |
スクリプト |
プロセッサ論理を定義するスクリプト。 |
なし |
「Script」プロセッサでは、単一の出力データ属性のみサポートされます。この属性のタイプは、「Result type」オプションの設定によって決まります。
単一の出力をJavaScript名output1に割り当てる必要があります。
注意: 結果タイプに配列タイプを選択しても、配列は自動的にはインスタンス化されません。単純なデータ・タイプと配列タイプには違いがあるため、配列はスクリプトによってインスタンス化する必要があります。これを行わないと、プロセッサの実行時にスクリプト実行エラーが発生します。詳細は、「例3」を参照してください。 |
データ属性 |
タイプ |
目的 |
値 |
ScriptResult |
追加 |
スクリプトの結果を含む属性。 |
値はスクリプトによって設定されます。 |
なし
実行モード |
サポート |
バッチ |
Yes |
リアルタイム・モニタリング |
Yes |
リアルタイム応答 |
Yes |
新規プロセッサ(スクリプトの使用を含む可能性がある)の作成時に、プロセッサをリアルタイム応答の実行と非互換にするには、プロセッサに、完了まで実行する必要があるプロセッサというフラグを設定します(たとえば、処理されたすべてのレコード全体で計算されるパーセントに基づいてレコードをフィルタ処理するプロセッサ)。
「Script」プロセッサでは、処理に関するサマリー統計は表示されません。
データ・ビューには、各入力属性とともに、右側に出力属性が表示されます。
なし
例1 - 一意の識別子を出力するスクリプト
次の例のスクリプトでは、基礎となるJava関数を使用して一意IDを生成します。このスクリプトが正しく機能する(一意のIDを生成する)のは、シングルスレッドで実行されているプロセス内のみであることに注意してください。新規プロセッサの作成時にこのスクリプトの部分を使用した場合は、プロセッサをシングルスレッドとしてのみ定義でき、これは、EDQサーバーが複数スレッド可能な場合でもシングルスレッドで実行されることを意味します。
output1 = java.util.UUID.randomUUID().toString()
この場合、入力属性はスクリプトで実際には使用されませんが、「Script」プロセッサを実行できるようにするには、「Script」プロセッサにダミー属性を入力する必要があります。
結果
例2 - 連結
次の例のスクリプトでは、すべての入力属性が、各属性値が||で区切られて単一の出力値に連結されます。
var res = '';
for (var i = 0; i < input1.length; i++)
{ if (i > 0) res += '||';
res += input1[i];
}
output1 = res;
結果
単純なデータ・タイプとは異なり、配列変数は、値を書き込む前に必ずインスタンス化する必要があります。これを行わないと、次のようなエラー・メッセージが表示されます。
Script execution failed: TypeError: Cannot set property '0.0' of null to '<value>' ([script]#2)
出力配列をインスタンス化するには、次のように、スクリプトでnew
コマンドを使用して配列にメモリーを割り当てる必要があります。
var output1 = new Array();
この文の後、配列はインスタンス化され、書込みに使用できるようになります。
Oracle (R) Enterprise Data Qualityオンライン・ヘルプ バージョン8.1
Copyright (C) 2006,2011 Oracle and/or its affiliates.All rights reserved.