コンポーネントマトリクスプロパティにアクセスするためのコード
コンポーネントマトリクスプロパティは、さまざまなデータ変換目的に応じて、ユーザーによって作成および変更されます。これらのプロパティは、たとえば、ユーザーが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__);を使用する必要があります。大文字を使用する必要があり、スペース文字は使用できません。このステートメントは、<% and %>。
-
__GROUPBY_LENGTH__を使用して、パラメータ名の後に_LENGTHが続き、[Component] (コンポーネント)ビューの[Groupby]エリアで定義するGROUPBYテーブルパラメーターの行番号を取得します。<%と%>または<%=と%>の間で使用できます。
-
__GROUPBY_INPUT_COLUMN__[i] tのようなコードを使用して、パラメーター値を抽出します。これは<%と%>の間、または<%=と%>の間で使用できます。
-
パラメーターに正しくアクセスするために、複数のパラメーターで同じ名前のプレフィックスを使用しないでください。たとえばコンポーネントでは、名前の同じプレフィックスが誤ったコード生成を引き起こすため、PARAMETER_NAMEとPARAMETER_NAME_2の名前を持つ 2 つのパラメーターを定義することは避けてください。