コンポーネントマトリクスプロパティにアクセスするためのコード - 7.0

ルールを記述するSQLテンプレート

EnrichVersion
7.0
EnrichProdName
Talend Data Fabric
EnrichPlatform
Talend Administration Center
Talend DQ Portal
Talend Installer
Talend Runtime
Talend Studio
task
インストールとアップグレード
ジョブデザインと開発
データクオリティとプレパレーション > データクレンジング
データクオリティとプレパレーション > データプロファイリング

コンポーネントマトリクスプロパティは、さまざまなデータ変換目的に応じて、ユーザーによって作成および変更されます。これらのプロパティは、たとえば、ユーザーがtSQLTemplateAggregateコンポーネントを介して定義できるoperationパラメーターやgroupbyパラメーターなどのテーブルパラメーターによって定義されます。

本来柔軟性が高く複雑なこれらのテーブルパラメーターにアクセスするために、2通りのアプローチを使用できます。

  • </.../> アプローチ:

</.../>は、SQLテンプレートによって使用される構文の1つです。このアプローチでは、通常、抽出するパラメーターごとにハードコーディングする必要があります。

たとえば、ユーザーによって新しいパラメーターが作成され、NEW_PROPERTYという名前が付けられます。次の名前を使用してアクセスする場合: </NEW_PROPERTY/>以下のコードが必要です。

else if (paramName.equals("NEW_PROPERTY")) {

List<Map<String, String>> newPropertyTableValue = (List<Map<String, String>>)

ElementParameterParser.getObjectValue(node, "__NEW_PROPERTY__");

for (int ii = 0; ii <newPropertyTableValue.size(); ii++) {

Map<String, String> newPropertyMap =newPropertyTableValue.get(ii);

realValue += ...;//append generated codes

......

}

}

  • EXTRACT(__GROUPBY__); アプローチ:

次のコードは、テーブルパラメーター(GROUPBY)にアクセスするための2番目の方法を示しています。

<%

String query = "insert into " + __TABLE_NAME__ + "(id, name, date_birth) select sum(id), name, date_birth from cust_teradata group by";

EXTRACT(__GROUPBY__);

for (int i=0; i < __GROUPBY_LENGTH__ ; i++) {

query += (__GROUPBY_INPUT_COLUMN__[i] + " ");

}

%>

<%=query %>;

ステートメントをコーディングする際には、次のルールに準拠します。

  • 抽出ステートメントは、次を使用する必要があります。 EXTRACT(__GROUPBY__)。 大文字を使用する必要があり、スペース文字は使用できません。このステートメントは、 <%%>の間に使用します。

  • __GROUPBY_LENGTH__ (パラメーター名に_LENGTHが続く)を使用して、[Component] (コンポーネント)ビューの[Groupby]エリアで定義するGROUPBYテーブルパラメーターの行番号を取得します。これは、<%%>の間または<%=%>の間で使用できます。

  • __GROUPBY_INPUT_COLUMN__[i] のようなコードを使用して、パラメーター値を抽出します。これは、<%%>の間または<%=%>の間で使用できます。

  • パラメーターに正しくアクセスするために、複数のパラメーターで同じ名前のプレフィックスを使用しないで下さい。たとえば、コンポーネント内では、 PARAMETER_NAMEおよびPARAMETER_NAME_2という名前で2つのパラメーター定義することは避けて下さい。名前に同じプレフィックスを使用すると、コードの生成でエラーが生じるためです。