高度なカスタマイズ > Info*Engine ユーザーガイド > Info*Engine カスタムタグリファレンス > Info*Engine タグ > Core ライブラリのタグ
  
Core ライブラリのタグ
Info*Engine タグを使用するには、taglib ディレクティブを指定する必要があります。このディレクティブは、タグライブラリを指定し、ページ上のタグを一意に識別するためのプリフィックスを提供します。たとえば、core タグライブラリの Info*Engine タグを使用し、ie プリフィックスでそれらを識別するには、以下のディレクティブを指定します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
タグの構文は、taglib ディレクティブに ie プリフィックスが指定されていることを前提としています。別のプリフィックスを指定する場合は、タグ構文内で ie の代わりにユーザー指定のプリフィックスを使用してください。
displayResource
displayResource タグは、Get-Resource Webject を使用して作成されたグループから、または直接リソースバンドルから文字列を抽出します。置換テキストを入力した場合、タグは抽出された文字列内の 1 つの変数プレースホルダーを置換し、生成された文字列を表示します。
このタグは、Display-Resource Webject の代わりに使用するタグとして提供されています。
* 
タグは複数の値をとる属性をサポートしていません。したがって、抽出された文字列に複数の変数プレースホルダーが含まれている場合は、displayResource タグを使用しても、生成された文字列を正しく表示できません。代わりに、Display-Resource Webject を使用してください。
構文
<ie:displayResource bundle="bundle_name"
groupIn="group_name"
key="bundle_key"
param="text"/>
属性の説明
必須属性: bundle または groupIn、および key
bundle
ローカライズ済み文字列の抽出元となる Java クラスリソースバンドルを示します。groupIn 属性を指定しない場合、この属性は必須です。
groupIn
メッセージの抽出元となるバンドルグループを示します。bundle 属性を指定しない場合、この属性は必須です。
key
リソースバンドルへのキーを示します。この属性には、数値または実際の Java 変数の参照名を指定できます。これは必須の属性です。
param
変数プレースホルダーが含まれているローカライズされたメッセージに挿入するテキストを指定します。たとえば、抽出した文字列に以下のようなテキストの変数プレースホルダーが含まれているとします。
The validation of user "{0}" has failed.
{0} を置換するテキストを param 属性に指定できます。たとえば、以下の属性を指定するとします。
param="abc123"
以下のような文字列が生成されます。
The validation of user "abc123" has failed.
これはオプションの属性です。この属性を省略すると、代入は行われません。
抽出された文字列に複数のプレースホルダーが含まれている場合は、このタグではなく Display-Resource Webject を使用する必要があります。
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この例の displayResource タグは、Get-Resource Webject を使用して読み込まれたリソースバンドルの 19 行目に関連付けられているメッセージが表示されるように指定します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:webject name="Get-Resource" type="MGT">
<ie:param name="BUNDLE"
data="com.infoengine.util.IEResource"/>
<ie:param name="GROUP_OUT" data="IEResource"/>
</ie:webject>
<b>
<ie:displayResource groupIn="IEResource" key="19"/>
</b>
failure
failure タグを使用すると、ユニット (unit) 内での失敗処理のためのコードを指定できます。ユニット (unit) のボディが正常に完了しなかった場合にのみ、failure 開始タグと終了タグの間のコードが実行されます。ユニット (unit) には複数の failure タグブロックを指定できます。
一般的な失敗処理を指定するには、属性なしで failure タグを指定します。
特定の例外を処理するコードを指定するには、exception 属性に例外の名前を入力して failure タグを指定します。
ユニット (unit) のボディ内で発生したエラーを処理するための failure タグブロックを指定しないと、失敗処理が行われず、unit 終了タグに続いてページの処理が続行されます。
このタグは unit タグブロックにネストします。特定のエラーに対して失敗コードを指定するには、複数の failure タグブロックを指定します。各 failure タグで exception 属性に特定のエラーを指定できます。このタグブロックには複数の webjecttaskunit、および parallel タグをネストできます。
failure タグブロック内の例外を管理するには、Throw-Exception Webject を指定します。詳細については、Management Webjectを参照してください。この Webject を指定するのは、failure タグによって検出された例外を伝える (再び発生させる) ためです。ブロック内に以下のコードを追加できます。
<ie:webject name="Throw-Exception" type="MGT"/>
この Webject を指定すると、検出された例外が再び発生します。unit ブロックがネストされている場合や、unit ブロック内で検出された例外をページ上に渡す場合は、例外を再び発生させると役立ちます。
例外が failure タグブロック内で発生すると、その例外は unit ブロックの外に伝えられます。
unitinitsuccess、および failure タグブロックにネストされているスクリプトレットが JSP ページ上で処理される方法は、Info*Engine タスクプロセッサ内で処理される方法と異なります。以下のガイドラインに従って、これらのタグにスクリプトレットをネストできるかどうか判断してください。
スタンドアロンタスクでは、スクリプトレットをタグブロックにネストできます。
JSP ページでは、スクリプトレットをタグブロックにネストしないでください。代わりに、スクリプトレットが含まれているスタンドアロンタスクを作成してください。Info*Engine の task タグを使用して、JSP ページからこれらのタスクを実行できます。
スクリプトレットの詳細については、スクリプトレットを参照してください。
* 
埋め込み HTML は、JSP の failure タグ内では使用できません。
構文
<ie:failure exception="exception_name"> . . (webjecttaskunit、または parallel タグブロック) .</ie:failure>
属性の説明
exception
例外処理コードへのアクセスを制限するための Java 例外名を指定します。この属性を指定すると、指定した例外が発生した場合にのみ failure ブロックが実行されます。
この属性を省略すると、例外名として java.lang.Exception が使用されます。
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。以下の failure タグは、ユニット (unit) に対しては一般的なエラー処理を、IENotFoundException 例外に対しては特定のエラー処理を実行します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:unit>
<ie:failure
exception="com.infoengine.exception.fatal.IENotFoundException">
<!-- specific failure processing for IENotFoundException-->
</ie:failure>
<ie:failure>
<!--Add general failure processing here. -->
</ie:failure>
</ie:unit>
forEach
forEach タグブロックを使用すると、既存の Info*Engine グループに一度に 1 エレメントずつ作業版数を適用できます。各反復処理の結果、指定された出力グループ内に 1 つのエレメント (エレメントのすべての属性を含む) が生成されます。この生成されたエレメントは、それが生成された forEach タグブロック内でのみ使用できます。この出力グループは、ブロックにネストされている Info*Engine タグ内の入力グループとして使用できます。
入力グループ内のエレメントがなくなるまで、forEach 終了タグに達すると forEach 開始タグに戻って処理が繰り返されます。すべてのエレメントが処理されると、forEach 入力グループの最後のエレメントが出力グループ (groupOut 属性で指定されている) に移動します。処理は、forEach 終了タグの後の次の行まで続行されます。
* 
このタグをほかの Info*Engine タグにネストすることはできませんが、ほかの Info*Engine タグをこのタグにネストすることはできます。
構文
<ie:forEach groupIn="group_name" groupOut="group_name"> . . (ほかの Info*Engine タグブロック) .</ie:forEach>
属性の説明
必須属性: groupIngroupOut
groupIn
入力として使用する Info*Engine グループの名前を指定します。ループの反復処理のたびに、次のエレメント (エレメント内のすべての属性を含む) が入力グループから出力グループに移動されます。
この属性は必須です。
groupOut
反復処理のたびに生成される Info*Engine グループの名前を指定します。
この属性は必須です。
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この例では、employees グループが CreateEmployeeGroup タスクの結果として存在すると想定されています。forEach タグブロックは、employees グループに一度に 1 エレメントずつ作業版数を適用します。Display-Object Webject がブロックにネストされており、"One Employee" というタイトルを使用して各エレメントの属性を表示します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<!-- create input group -->
<ie:task uri="CreateEmployeesGroup"/>
<!-- iterate group, displaying the attributes for one employee -->
<!-- in each iteration -->
<ie:forEach groupIn="employees" groupOut="employee">
<ie:webject name="Display-Object" type="DSP">
<ie:param name="GROUP_IN" data="employee"/>
<ie:param name="CAPTION" data="One Employee"/>
</ie:webject>
</ie:forEach>
getService
getService タグは、JSP ページ上で Info*Engine カスタムタグによって使用されている Info*Engine オブジェクト (com.infoengine.jsp.InfoEngine) への変数参照を設定します。
変数を定義すると、Info*Engine の Server Access Kit (SAK) のメソッドを使用するコード内でその変数を使用できます。たとえば、VDB 情報へのアクセス、グループの読み込み、行および列の書式設定などが可能です。
このタグは、ページ (com.infoengine.object.factory.Group) 内でタグによって使用されるコンテキストグループへの暗黙の変数参照も設定します。インスタンス化される変数は以下のとおりです。
formGroup
CGI 照会仕様データから取得される属性を保持します。このデータは、テンプレートへのアクセスに使用される URL で受け取ります。また、Web ブラウザの POST リクエストの結果として受け取った HTML 形式データも保持します。この情報は、FORM コンテキストグループに保存されている情報と同じです。
serverGroup
Web ブラウザから Web サーバーへの通信に使用されるプロトコルから派生した属性を保持します。accept-languageauth-user などの属性を保持できます。このグループ内にある個々の属性の詳細については、現在の Web ブラウザと Web サーバー間のプロトコル仕様書を参照してください。この情報は、SERVER コンテキストグループに保存されている情報と同じです。
cookieGroup
JSP ページへの接続時に処理される各クッキーの属性を持つ 1 つのエレメントを保持します。この情報は、COOKIE コンテキストグループに保存されている情報と同じです。
authGroup
Webject が実行するタスクの資格証明マップを提供する属性を保持します。このマップには、バックエンドの情報システムとの接続を確立する際にアダプタによって使用される認証情報が含まれています。資格証明マップの各エレメントは、特定のバックエンドシステムへの接続に使用するユーザー名および関連付けられている資格証明を提供します。この情報は、Auth-Map コンテキストグループに保存されている情報と同じです。
* 
このタグは JSP ページでのみ使用してください。スタンドアロン Info*Engine タスクでは使用しないでください。
各ページには getService タグを 1 つしか指定できません。
このタグはほかの Info*Engine タグに組み込むことができません。
構文
<ie:getService varName="variable_name"/>
属性の説明
必須属性: varName
varName
Info*Engine オブジェクトの Java 変数名を指定します。このタグは変数を定義します。この属性に名前を指定する前に変数を定義する必要はありません。
この属性は必須です。
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この例では照会によって EMPLOYEEdata グループを作成し、グループ内の行数を表示します。この例では、行数を取得するために、getService タグを使用してサービスを ieObj として識別し、com.infoengine.object.factory.Group クラスの getElementCount メソッドを使用して行数を取得します。
<%@page language="java" session="true" errorPage="../IEError.jsp"%>
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<html>
<body>
<!-- perform a query -->
<ie:webject name="Query-Objects" type="OBJ">
<ie:param name="INSTANCE" data="com.myCompany.jdbcAdapter"/>
<ie:param name="CLASS" data="EMP"/>
<ie:param name="WHERE" data="()"/>
<ie:param name="GROUP_OUT" data="EMPLOYEEdata"/>
</ie:webject>
<!-- display how many elements were returned -->
<ie:getService varName="ieObj"/>
<P>Search returned
<b><%=ieObj.getElementCount()%> employees. employees.>
</body>
</html>
getValue
getValue タグは、指定された属性の文字列値を、入力グループ内の最初のエレメントから読み込みます。
このタグはほかの Info*Engine タグにネストできません。
このタグをスクリプトレットに組み込まないでください。タグはテキストとして読み取られるため、スクリプトレットに組み込むと、コンパイラでエラーが発生します。たとえば、以下のスクリプトレットはコンパイルされません。
<%
float total = 0;
%>
<ie:forEach ...>
<% total += <ie:getValue name="SAL"/>;%>
</ie:forEach>
代わりに、スクリプトレット内では getAttributeValue メソッドを使用できます。このメソッドの使用例については、下記の「例」のセクションを参照してください。
構文
<ie:getValue name="attr_name" groupIn="group_name"/>
属性の説明
必須属性: name
groupIn
入力グループとして使用する Info*Engine グループの名前を指定します。
この属性はオプションです。この属性を省略すると、VDB に最後に追加されたグループが使用されます。
name
Info*Engine 入力グループ内の最初のエレメントから読み込む値を持つ属性の名前を指定します。
この属性は必須です。
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この例は、employees グループが CreateEmployeeGroup タスクの結果として存在することを前提としています。getValue タグは table HTML タグにネストされ、表示されたテーブル行のエレメントの値を生成します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<!-- create input group -->
<ie:task uri="CreateEmployeesGroup"/>
<!-- iterate group, displaying the salary for one employee -->
<!-- in each iteration -->
<table>
<tr><td>Employee Name</td><td>Salary</td></tr>
<ie:forEach groupIn="employees" groupOut="employee">
<tr>
<td><ie:getValue name="ENAME"/></td>
<td>$<ie:getValue name="SAL"/></td>
</tr>
</ie:forEach>
</table>
以下のページ例では、getValue タグを使用して各エレメント内の選択された属性を表示し、スクリプトレットを使用して現在の給料の合計を計算します。給料の合計の計算には Info*Engine の getAttributeValue メソッドを使用します。
<%@page language="java" session="false" errorPage="../IEError.jsp"
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<!-- create a group that contains employee name, number, and salary -->
<ie:task uri="CreateEmployeesGroup"/>
<html>
<body>
<ie:getService varName="pie"/>
<% float tot_sal = 0; %>
<!-- iterate group, displaying the salary for one employee -->
<!-- in each iteration and calculating the total salary -->
<ie:forEach groupIn="employees" groupOut="one-element">
<b>Employee Number</b>:<ie:getValue name="EMPNO"/><br>
<b>employee name:</b><ie:getValue name="ENAME"/><br>
<b>salary:</b>$<ie:getValue name="SAL"/><br>
<hr><br>
<%
String ssal = pie.getAttributeValue ( "one-element", 0, "SAL" );
tot_sal += Float.parseFloat ( ( (ssal != null && !ssal.equals(""))
? ssal :
"0" ) );
%>
</ie:forEach>
<!-- Display the salary total for all employee in the group -->
<b>Salary Total:</b>$<%=tot_sal%><br>
</html>
</body>
init
init タグはユニット (unit) の初期化を指定します。ユニット (unit) が実行されるたびに、init 開始タグと終了タグの間にあるコードが最初に実行されます。init コードブロックを使用すると、コードブロックがユニット (unit) の先頭にない場合でも、ユニット (unit) の実行時に常に最初に実行される特定のコードを指定できます。たとえば、初期化コードには、ユニット (unit) 内で操作されるオブジェクトの初期状態を保存できます。したがって、ユニット (unit) のボディでエラーが発生した場合は、failure ブロックがオブジェクトをこの初期状態に復元します。
init タグブロックでエラーが発生した場合は、ユニット (unit) が実行されたコードブロックにエラーが返されます。たとえば、JSP ページ上に以下のようなほかのユニット (unit) にネストされた 1 つのユニット (unit) があるとします。
<!-- Top of page -->
:
:
<!-- First Unit -->
<ie:unit>
<ie:init>
<!-- Initialization of First Unit -->
<!-- Errors occurring here are passed back to the page -->
</ie:init>
<!-- Body of First Unit -->
<ie:webject > … </ie:webject>
<ie:webject > … </ie:webject>
<!-- Nested Unit -->
<ie:unit>
<ie:init>
<!-- Initialization of Nested Unit -->
<!-- Errors occurring here are passed back to first unit -->
</ie:init>
<!-- Body of Nested Unit -->
<ie:webject > … </ie:webject>
<ie:webject > … </ie:webject>
<ie:failure>
<!-- Nested Unit failure processing accessed when -->
<!-- there is an error in the body of the nested unit -->
</ie:failure>
<!-- End of Nested Unit -->
</ie:unit>
<ie:failure>
<!-- First Unit failure processing accessed when -->
<!-- there is an error in the body of the first unit-->
</ie:failure>
<!-- End of First Unit -->
</ie:unit>
<!-- Page Error Processing-->
:
:
<!-- End of Page-->
ネストされたユニット (unit) の初期化に失敗すると、この失敗は最初のユニット (unit) のボディにエラーとして記録されます。最初のユニット (unit) の初期化に失敗すると、このエラーはページによって処理され、自動的にそのエラーページに送信される場合があります。
unitinitsuccess、および failure タグブロックにネストされているスクリプトレットが JSP ページ上で処理される方法は、Info*Engine タスクプロセッサ内で処理される方法と異なります。以下のガイドラインに従って、これらのタグにスクリプトレットをネストできるかどうか判断してください。
スタンドアロンタスクでは、スクリプトレットをタグブロックにネストできます。
JSP ページでは、スクリプトレットをタグブロックにネストしないでください。代わりに、スクリプトレットが含まれているスタンドアロンタスクを作成してください。Info*Engine の task タグを使用して、JSP ページからこれらのタスクを実行できます。
詳細については、スクリプトレットを参照してください。
* 
埋め込み HTML は、JSP の init タグ内では使用できません。
このタグは unit タグブロックにネストします。
このタグブロックには複数の webjecttaskunit、および parallel タグをネストできます。
構文
<ie:init> . . (webjecttaskunit、または parallel タグブロック) .</ie:init>
parallel
parallel タグを使用すると、同時に実行される一連の Webject またはタスクを定義できます。
parallel タグブロックにネストされた各 Webject およびタスクは、ブロック内のほかの Webject およびタスクと同時にその独自の環境で実行されます。すべての Webject およびタスクが正常に完了すると、個々のプロセスの VDB はページまたはタスクによって使用されている VDB とマージされます。処理は parallel 終了タグの後の行から続行されます。
parallel ブロック内で例外が発生すると、デフォルトで、親の VDB が更新された後に例外が parallel ブロックの外に伝えられます。parallel タグブロック内の Webject またはタグが失敗した場合、生成される VDB のコンテンツは予測不能になると考えてください。
このタグは unitinitsuccess、または failure タグブロックにネストできます。このタグブロックに複数の webject および task タグをネストすることもできます。
* 
Display Webject は parallel タグブロックにネストできません。
構文
<ie:parallel> . . (webject または task タグブロック) .</ie:parallel>
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。以下の parallel タグブロックは 2 つの Query-Object Webject と 1 つのタスクを同時に実行します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:parallel>
<ie:webject name="Query-Objects" type="OBJ">
<ie:param name="INSTANCE" data="jndiAdapter"/>
<ie:param name="FILTER" data="(objectClass=*)"/>
<ie:param name="GROUP_OUT" data="dirOut"/>
</ie:webject>
<ie:webject name="Query-Objects" type="OBJ">
<ie:param name="INSTANCE" data="jdbcAdapter"/>
<ie:param name="CLASS" data="EMP"/>
<ie:param name="WHERE" data="()"/>
<ie:param name="GROUP_OUT" data="dbOut"/>
</ie:webject>
<ie:task URI="stask.xml">
<ie:param name="P1" data="v1"/>
<ie:param name="P2" data="v2"/>
<ie:param name="GROUP_OUT" data="people"/>
<ie:param name="GROUP_OUT" data="employees"/>
</ie:task>
</ie:parallel>
この parallel タグブロックが JSP ページの一部である場合、ブロック内で作成された 4 つのグループはすべて、このブロックに続くすべての Display Webject で利用できます。ブロックがタスク内にある場合は、ブロックの後に Return-Groups Webject を使用して、Display Webject でグループを利用できるようにします。
param
param タグは、webject タグ、task タグ、および directory service タグ内で使用するパラメータを定義します。
Webject パラメータは、指定される Webject の入力基準を指定します。
タスクパラメータを使用して以下の項目を設定できます。
タスクで利用できる @FORM コンテキストグループ変数。
タスクで利用できる VDB グループ。
タスクの終了時に利用できる VDB グループ。
ディレクトリサービスパラメータは、作成、更新、照会、およびリスト表示するディレクトリサービスエントリへの入力および出力として使用されるグループの名前を指定します。
どの場合も、パラメータの要件は、それが指定される個々の Webject、タスク、およびディレクトリサービスの操作によって異なります。詳細については、実行する特定の Webject、タスク、またはディレクトリサービスの操作の説明を参照してください。
param タグに属性値として定義式を指定できます。詳細については、定義式を参照してください。
このタグは webjecttaskcreateObjectslistObjectsqueryObjects、および updateObjects タグにネストできます。
構文
<ie:param name="PARAMETER_NAME"
data="value_list"
delim="delimiter"
default="default_value"
elementSeparator="character"
valueSeparator="character"/>
属性の説明
必須属性: namedata
データ
name 属性に指定されたパラメータに割り当てる 1 つまたは複数のデータ値を指定します。データ値は引用符で囲みます。指定できるデータ値の数およびタイプは個々のパラメータによって異なります。
複数のデータ値を割り当てることができるパラメータの場合、複数のデータ値を入力する最も一般的な方法は、すべてのタグが同じ name 属性とさまざまな data 属性を持つ、複数の param タグを指定することです。
区切り記号で値を区切り、delim 属性にセパレータを指定することによって、data 属性に複数の値を指定することもできます。値のセパレータとしてコンマを使用するには、以下の構文を使用します。
data="value1,value2,…,valueN" delim=","
たとえば、Return-Groups Webject で複数のグループを返すには、以下の 2 つの param タグを指定します。
<ie:param name="GROUP_IN" data="employees"/>
<ie:param name="GROUP_IN" data="consultants"/>
あるいは、delim 属性を含んでいる 1 つの param タグを指定します。
<ie:param name="GROUP_IN" data="employees,consultants" delim=","/>
data 属性は必須属性です。
default
代入定義式が値を返さない場合に使用されるデフォルト値のテキスト文字列を指定します。この属性を指定するときは、デフォルト値を引用符で囲む必要があります。
data 属性に代入定義式を指定する場合は、定義式のデフォルトを指定する必要があります。たとえば、以下の param タグでは、ATTRIBUTE パラメータのデフォルトをアスタリスク (*) に設定します。
<ie:param name="ATTRIBUTE" data="$(@FORM[]attr[])" default="*"/>
この属性はオプションです。
delim
data 属性内で複数の値を区切るときに Info*Engine が使用する区切り記号を定義します。この属性を指定するときは、記号を引用符で囲む必要があります。たとえば、区切り記号としてコンマを使用する場合、data および delim 属性の構文は以下のとおりです。
data="value1,value2,…,valueN" delim=","
以下の param タグの例では、data 属性に 3 つの値を定義し、区切り字としてコンマを使用しています。
<ie:param name="ATTRIBUTE" data="ename,phone,title" delim=",">
data 属性の値を 1 つだけ持つ複数の param タグを使用して、この同じパラメータを以下のように指定することもできます。
<ie:param name="ATTRIBUTE" data="ename">
<ie:param name="ATTRIBUTE" data="phone">
<ie:param name="ATTRIBUTE" data="title">
実際の Webject では、両方のケースで生成されるパラメータは、Webject がデータリポジトリから返されるデータグループ内の従業員名 (ename)、従業員の電話番号 (phone)、従業員の役職 (title) の情報を受け取ると予想するプロセッサを指定します。
この属性はオプションです。
elementSeparator
data 属性内の代入定義式を処理するときに Info*Engine が使用するエレメントセパレータを指定します。指定された文字は、複数のエレメント (行) からなる属性値を連結するために使用されます。定義式にエレメントセパレータとしてアスタリスク (*) を指定すると、複数のエレメントを選択できます。
デフォルトでは、Info*Engine はエレメントセパレータとしてセミコロンを使用します。代入定義式の定義については、ダイナミックパラメータ値の置換を参照してください。
以下の param タグには、エレメントセレクタとしてアスタリスクを使用し、エレメントセパレータを # に設定する代入定義式が data 属性内に含まれています。
<ie:param name="ATTRIBUTE" data="$(grp1[*]attr[0]}" elementSeparator="#"/>
この属性はオプションです。
name
データ値が割り当てられるパラメータ名を指定します。パラメータ名は引用符で囲みます。パラメータ名には大文字と小文字の区別がありませんが、大文字で表記しています。
この属性は必須です。
valueSeparator
data 属性内の代入定義式を処理するときに Info*Engine が使用する値セパレータを指定します。指定された文字は、1 つの属性場所に含まれている複数の値を連結するときに使用されます。この場所は、代入定義式の処理によって生成される属性 (列) とエレメント (行) のペアによって定義されます。定義式に値セパレータとしてアスタリスク (*) が含まれている場合は、複数の値を選択できます。
デフォルトでは、Info*Engine は値セパレータとしてコンマを使用します。代入定義式の定義については、ダイナミックパラメータ値の置換を参照してください。
以下の param タグには、値セレクタとしてアスタリスクを使用し、値セパレータを | に設定する代入定義式が data 属性内に含まれています。
<ie:param name="ATTRIBUTE" data="$(grp1[0]attr[*])" valueSeparator="|"/>
この属性はオプションです。
以下の例は、ページまたはタスクが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。param タグは Copy-Group Webject の 2 つのパラメータを定義します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:webject name="Copy-Group" type="GRP">
<ie:param name="GROUP_IN" data="grp1"/>
<ie:param name="GROUP_OUT" data="grp2"/>
</ie:webject>
resetService
resetService タグは、JSP ページ上またはセッション内の Info*Engine カスタムタグによって使用される Info*Engine オブジェクト (com.infoengine.jsp.InfoEngine) をリセットします。page 範囲を指定すると、リセットオブジェクトはページの実行中にのみ存在します。session 範囲を指定すると、リセットオブジェクトはセッション内のすべてのページで使用できます。
page 範囲を使用して Info*Engine オブジェクトをリセットすると、以下の状況が発生します。
ページで利用可能であったすべての VDB グループが、新しいオブジェクト内で使用できなくなります。
オブジェクトのリセット後に作成された VDB グループはすべて、ページの page ディレクティブに session=TRUE が含まれていても、そのページでのみ使用できます。
com.infoengine.object.factory.Group クラスの addGroup メソッドを使用してグループをセッション VDB からページ VDB に、またはページ VDB からセッション VDB にコピーできます。
セッション範囲を使用して Info*Engine オブジェクトをリセットすると、セッションで使用できた VDB グループは新しいオブジェクト内で使用できなくなります。
既存の Info*Engine オブジェクトを明示的に保存しないかぎり、resetService タグを使用してオブジェクトをリセットすると、既存のオブジェクトは使用できなくなります。
リセットオブジェクトに新しい変数名を指定すると、Info*Engine Server Access Kit (SAK) のメソッドを使用するコード内で新しいサービスオブジェクトを名前で参照できます。たとえば、VDB 情報へのアクセス、グループの読み込み、行および列の書式設定などが可能です。
resetService タグは以下の状況で非常に役立ちます。
VDB 内のグループにアクセスするときに競合を避ける。複数の JSP ページから構成されているアプリケーションにセッション範囲が設定されており、VDB グループへの複数のリクエストが同時に発生する可能性がある場合、このタグによるリセットが必要な場合があります。ページごとに Info*Engine オブジェクトをリセットしない限り、各リクエストが所定のグループに戻されるかどうかが確実でない場合があります。このタグを使用すると、ほかの情報には session 範囲を設定する一方で、VDB 内で使用可能なグループを、ページ上で作成されたグループに制限できます。
VDB のクリーンアップアプリケーションで作成された多くの VDB グループが不要になる場合は、VDB をリセットしてリソースを解放できます。
* 
このタグは JSP ページでのみ使用してください。スタンドアロン Info*Engine タスクでは使用しないでください。
変数名を省略するか、一意のオブジェクト名を指定すれば、同じページに複数の resetService タグを指定できます。複数の resetService タグ、または getService タグと resetService タグに同じ変数名を指定することはできません。
このタグはほかの Info*Engine タグに組み込むことができません。
構文
<ie:resetService varName="variable_name"
scope="[PAGE | SESSION]"/>
属性の説明
varName
Info*Engine オブジェクトの Java 変数名を指定します。このタグは変数を定義します。この属性に名前を指定する前に変数を定義しないでください。getService タグまたは関連付けられているほかの resetService タグで指定されている名前を変数名として使用することはできません。
この属性はオプションです。この属性を省略すると、SAK メソッドによってオブジェクトを参照できません。
scope
Info*Engine オブジェクトが保存される場所を指定します。範囲の有効な値は以下のとおりです。
PAGE - オブジェクトの範囲を、タグが使用されるページに設定します。
SESSION - オブジェクトの範囲を、タグが使用されるセッションに設定します。
この属性はオプションです。この属性を省略すると、この値はデフォルトで、使用されている Info*Engine オブジェクトの場所になります。page ディレクティブに session=true が含まれている場合は、セッション Info*Engine オブジェクトがリセットされます。含まれていない場合は、ページ Info*Engine オブジェクトがリセットされます。
以下の例は、ページに session 範囲があり、Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この例では、EMPLOYEEdata 内の行数を取得する getService タグの例を展開します。この例は、resetService タグを使用してページのサービスオブジェクトをリセットし、ほかの照会を続行します。
<%@page language="java" session="true" errorPage="../IEError.jsp"%>
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<html>
<body>
<!-- perform a query -->
<ie:webject name="Query-Objects" type="OBJ">
<ie:param name="INSTANCE" data="jdbcAdapter"/>
<ie:param name="CLASS" data="EMP"/>
<ie:param name="WHERE" data="()"/>
<ie:param name="GROUP_OUT" data="EMPLOYEEdata"/>
</ie:webject>
<!-- display how many elements were returned -->
<ie:getService varName="ieObj"/>
<P>Search returned
<b><%=ieObj.getElementCount()%></b> employees.</P>
<!-- reset the VDB for the page -->
<ie:resetService varName="ieObjII" scope="PAGE"/>
<!-- perform additional queries -->
.
.
.
</body>
</html>
* 
resetService タグはページの残りのサービスだけをリセットするため、ページ処理の最後にセッション VDB に EMPLOYEEdata グループが含められます。
success
success タグを使用すると、ユニット (unit) 内での成功処理のためのコードを指定できます。ユニット (unit) のボディが正常に完了した場合にのみ、success 開始タグと終了タグの間のコードが実行されます。
このブロック内でエラーが発生すると、それを囲む unit ブロックの外に例外が伝えられます。
このタグは unit ブロックにネストします。このタグブロックに複数の webjecttaskunit、および parallel タグをネストすることもできます。
unitinitsuccess、および failure タグブロックにネストされているスクリプトレットが JSP ページ上で処理される方法は、Info*Engine タスクプロセッサ内で処理される方法と異なります。以下のガイドラインに従って、これらのタグにスクリプトレットをネストできるかどうか判断してください。
スタンドアロンタスクでは、スクリプトレットをタグブロックにネストできます。
JSP ページでは、スクリプトレットをタグブロックにネストしないでください。代わりに、スクリプトレットが含まれているスタンドアロンタスクを作成してください。Info*Engine の task タグを使用して、JSP ページからこれらのタスクを実行できます。
詳細については、スクリプトレットを参照してください。
* 
埋め込み HTML は、JSP の success タグ内では使用できません。
構文
<ie:success> . . (webjecttaskunit、または parallel タグブロック) .</ie:success>
次の unit タグの例を参照してください。
Task
task タグは、実行する XML タスクを識別します。
このタグは unitinitparallelsuccess、および failure タグブロックにネストできます。
このタグブロックに param タグをネストすることによって、タスクのパラメータを指定できます。タスクパラメータを使用して以下の項目を設定できます。
タスクで利用できる VDB グループ。GROUP_IN タスクパラメータを指定すると、タスクで最初に利用できるグループを定義できます。
タスクの終了時に利用できる VDB グループ。GROUP_OUT タスクパラメータを指定すると、ネストされたタスクが実行されるタスクの VDB に返されるグループをフィルタできます。
デフォルトでは、最後に実行された Webject の GROUP_OUT パラメータが、返されるグループを識別します。GROUP_OUT Webject パラメータがない場合は、最後に VDB に追加されたグループが返されます。
最後の Webject によって複数のグループが返される場合 (Return-Groups Webject の場合にあり得る)、GROUP_OUT タスクパラメータ内のこれらのグループのサブセットを指定すると、返されるグループは呼び出し側タスクの VDB に制限されます。
タスクで利用できる @FORM コンテキストグループ変数。@FORM コンテキストグループ変数は、task タグブロックにネストされた param タグに指定するパラメータ名とデータのペアごとに設定します。この変数には、タスクに指定された GROUP_IN および GROUP_OUT パラメータが含まれます。
@FORM グループの GROUP_IN 変数には、タスクで最初に利用できる VDB グループの名前が保持されるので、@FORM グループの GROUP_IN 変数から値を読み取ることによって、VDB グループの名前を取得できます。
* 
Info*Engine の .secret.text タスクプロセッサまたは .secret.text2 および .secret.algorithm プロパティとともにこのタグを使用すると、リモートプロセッサがタスクを実行する前に検証を行うことができます。これらのプロパティの設定については、Info*Engine 機能の設定にある「リクエスト検証の設定」セクションを参照してください。
構文
パラメータがある場合は、以下の構文を使用できます。
<ie:task uri="uri_task_source"
processor="processor1"
processor="processor2"
. . . processor="processorn"
resumable="[true|false]">
. . (param タグを使用してタスクのパラメータをネスト) .</ie:task>
パラメータがない場合は、以下の構文を使用できます。
<ie:task uri="uri_task_source"
processor="processor1"
processor="processor2"
. . . processor="processorn"
resumable="[true|false]"/>
属性の説明
必須属性: uri
processor
タスクが送信されて実行されるリモートの Info*Engine タスクプロセッサの名前を 1 つまたは複数指定します。指定した名前はそれぞれ、現在の環境から使用可能なタスクプロセッサにマッピングする必要があります。この属性に指定できる名前は、Info*Engine プロパティ管理ユーティリティからタスクプロセッサに定義されたサービス名です。
この属性はオプションです。この属性を指定しないと、task タグで指定されているタスクが、task タグを含んでいる JSP ページまたはタスクを現在実行しているタスクプロセッサによって実行されます。JSP ページの場合、デフォルトで使用されるタスクプロセッサは JSP エンジン内で実行されます。ネストされたタスクが JSP エンジンではなく Info*Engine Server タスクプロセッサ内で実行されるように指定するには、サーバータスクプロセッサを識別する processor 属性を指定する必要があります。たとえば、タスクプロセッサのデフォルト名が com.myCompany.server.taskProcessor である場合、以下の processor 属性を指定できます。
processor="com.myCompany.server.taskProcessor"
現在の環境でほかのタスクプロセッサを使用するように設定する場合は、選択する順に processor 属性にプロセッサ名を指定することによって、これらのいずれかのタスクプロセッサを選択するようにタスクに指定できます。たとえば、サイトで xxx.taskProcessor および yyy.taskProcesor を使用するように設定してあり、yyy.taskProcessor でタスクを実行するとします。このタスクを実行するには、task タグ内に以下の processor 属性を指定します。
<ie:task uri="task1.xml" processor="yyy.taskProcessor" processor=
"xxx.taskProcessor" processor="zzz.taskProcessor" />
3 番目に指定したプロセッサは zzz.taskProcessor です。ほかのプロセッサが両方とも使用できない場合にのみ使用されます。
resumable
この task タグで指定されているサブタスクを実行する前に VDB の状態を保存する必要があるかどうかを指定します。この属性は、保証されたタスク実行機能が使用可能になっており、task タグがタスクから実行される場合にのみ使用されます。
この属性を省略し (つまり、false に設定し)、保証されたタスク実行機能が使用可能になっている場合、Info*Engine はタスクを実行する前に VDB の状態を保存します。VDB の状態が保存されると、タスクを再実行する必要がある場合に VDB を復元できます。
この属性を true に設定し、保証されたタスク実行機能が使用可能になっている場合、Info*Engine はタスクを実行する前に VDB の状態を保存しません。タスクを再実行したときにタスクが同じ結果を生成しないようにする副作用を起こさずに実行できる場合は、resumabletrue に設定してください。
uri
実行する XML タスクファイルの場所である URI を指定します。URI は以下の相対 URI または絶対 URI のどちらかです。
相対 URI の参照ファイル。ローカル Info*Engine のタスクプロセッサに定義されたルートファイルシステムディレクトリに常駐します。
絶対 URI の参照ファイル。ローカルファイルシステム、またはリモート HTTP サーバーに常駐するか、またはアクセス可能な LDAP ディレクトリを介して参照されます。
この属性は必須です。
以下の例は、ページまたはタスクが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この task タグの例は、ローカルタスクプロセッサに定義されているルートファイルディレクトリにある task1.xml ファイルを実行します。ネストされたパラメータは FORM 変数 attr を ENAME に設定します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:task uri="task1.xml">
<ie:param name="attr" data="ENAME"/>
</ie:task>
unit
unit タグを使用すると、グループがユニット (unit) として実行されるように一連の Webject、タスク、または Java コードをグループ化できます。ユニット (unit) 内にメインボディを指定します。以下のネストされたタグを定義して、ユニット (unit) の特別な部分のコードを明示的に記述することもできます。
init タグブロックはユニット (unit) の初期化を指定します。init 開始タグと終了タグの間にあるコードがユニット (unit) 内で最初に実行されます。
success タグブロックを使用すると、ユニット (unit) のボディ内のコードが正常に完了した場合にのみ実行されるコードを指定できます。
failure タグブロックを使用すると、ユニット (unit) のボディ内のコードが失敗した場合にのみ実行されるコードを指定できます。複数の failure タグブロックを指定して、特定のエラーに対するエラー処理を指定できます。
ユニット (unit) のメインボディは、unit 開始タグと終了タグの間にあり、ネストされた initsuccess、および failure タグブロックの外側にあるすべての Webject、タスク、および Java コードで構成されます。
ユニット (unit) 内の initsuccess、および failure タグブロックの位置は重要ではありません。ユニット (unit) が実行されると、ユニット (unit) 内の場所に関係なく、init タグブロック内のコードが最初に実行されます。このコードが正常に完了すると、ユニット (unit) のボディ内のコードがユニット (unit) の先頭から、コードに記述されている順に実行されます。ボディが正常に完了すると、success タグブロック内のコードが実行されます。ボディ内のいずれかのコードが失敗すると、そのエラーに対する処理が指定されているかどうかを調べるためにユニット (unit) 内の failure タグが確認されます。発生したエラーに対するエラー処理が指定されている場合は、そのコードが実行されます。
success ブロックで例外が発生した場合は、例外が発生し、そのユニット (unit) は処理されません。ユニット (unit) のボディで例外が発生した場合は、failure タグによって処理されるか (その例外に対して failure タグが定義されている場合)、または一般的な failure タグによって処理されます。ユニット (unit) のボディ内のエラーが failure タグによって検出されない場合、そのエラーは処理されません。
このタグは、ほかの unit タグブロックと、initsuccess、および failure タグブロックにネストできます。
このタグブロックには、1 つの init タグブロック、1 つの success タグブロック、および 1 つまたは複数の failure タグブロックをネストできます。このタグブロックに複数の webjecttaskunit、および parallel タグをネストすることもできます。
initsuccess、および failure タグの詳細については、それぞれのタグに対応するセクションを参照してください。
unitinitsuccess、および failure タグブロックにネストされているスクリプトレットが JSP ページ上で処理される方法は、Info*Engine タスクプロセッサ内で処理される方法と異なります。以下のガイドラインに従って、これらのタグにスクリプトレットをネストできるかどうか判断してください。
スタンドアロンタスクでは、スクリプトレットをタグブロックにネストできます。
JSP ページでは、スクリプトレットをタグブロックにネストしないでください。代わりに、スクリプトレットが含まれているスタンドアロンタスクを作成してください。Info*Engine の task タグを使用して、JSP ページからこれらのタスクを実行できます。
スクリプトレットの詳細については、スクリプトレットを参照してください。
* 
埋め込み HTML は、JSP の unit タグ内では使用できません。
構文
<ie:unit> . . (webjecttaskinitunitparallelsuccess、および failure タグブロック) .</ie:unit>
以下の例は、ページが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この unit タグの例は、success および failure ブロックとともに Query-Objects Webject が含まれているメインボディをグループ化します。Query-Objects Webject が実行されて正常に完了すると、success ブロックが実行されます。正常に完了しなかった場合は、failure ブロックが実行されます。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:unit>
<ie:webject name="Query-Objects" type="OBJ">
<ie:param name="INSTANCE" data="adapter"/>
<ie:param name="CLASS" data="salesemp"/>
<ie:param name="WHERE" data="()"/>
<ie:param name="GROUP_OUT" data="sales">
</ie:webject>
<ie:success>
<ie:webject name="Display-Table" type="DSP">
<ie:param name="GROUP_IN" data="sales"/>
<ie:param name="ATTRIBUTE" data="ename,phone,title" DELIM=","/>
<ie:param name="HEADER" data="Name,Telephone,Title" DELIM=","/>
</ie:webject>
</ie:success>
<ie:failure>
<ie:webject name="Create-Group" type="GRP">
<ie:param name="ELEMENT" data="FAILURE=query failed"/>
<ie:param name="GROUP_OUT" data="failure"/>
</ie:webject>
<ie:webject name="Display-Table" type="DSP">
<ie:param name="GROUP_IN" data="failure"/>
<ie:param name="ATTRIBUTE" data="FAILURE"/>
</ie:webject>
</ie:failure>
</ie:unit>
Webject
webject タグは、実行する Webject を識別します。
JSP ページでは、webject タグに任意の定義済み Webject を指定できます。
このタグは unitinitsuccessfailure、および parallel タグブロックにネストできます。
パラメータが必要な Webject の場合は、このタグブロックに param タグをネストすることによってパラメータを指定します。
* 
スタンドアロンタスクでは Display Webject を使用できません。
Display Webject は parallel タグブロック内に埋め込むことができません。
構文
パラメータがある場合は、以下の構文を使用できます。
<ie:webject name="Webject-Name"
type="TYPE_CONSTANT"
resumable="[true|false]"
use="webject_class_path
"> . . (param タグを使用して Webject のパラメータをネスト) .</ie:webject>
パラメータがない場合は、以下の構文を使用できます。
<ie:webject name="Webject-Name"
type="TYPE_CONSTANT"
resumable="[true|false]"
use="webject_class_path"/>
属性の説明
必須属性: nametype
name
Info*Engine の Webject の名前を指定します。この属性は必須です。
resumable
この webject タグで指定されている Webject を実行する前に VDB の状態を保存する必要があるかどうかを指定します。この属性は、保証されたタスク実行機能が使用可能になっており、タスク内にある Webject が Action Webject (TYPE=ACT) である場合のみ使用されます。
この属性を省略し (つまり、false に設定し)、保証されたタスク実行機能が使用可能になっている場合、Info*Engine は Action Webject を実行する前に VDB の状態を保存します。VDB の状態が保存されると、Webject を返す場合に VDB を復元できます。
この属性を true に設定し、保証されたタスク実行機能が使用可能になっている場合、Info*Engine はタスク内の Webject を実行する前に VDB の状態を保存しません。同じ Webject を再実行したときに Webject が同じ結果を生成しないようにする副作用を起こさずに Webject を実行できる場合は、resumabletrue に設定してください。
type
使用する Webject のタイプを指定します。type は、Webject クラスファイルが検索されるパッケージを決定します。Info*Engine タイプ定数は以下のタイプの Webject について定義されます。
タイプ定数
Webject タイプ
DSP
Display
IMG
イメージ
ACT
操作
OBJ
調査
GRP
グループ
EXT
外部
MGT
管理
MSG
Messaging
WES
Web Event Service
この属性は必須です。
* 
Display Webject (type=DSP) は Info*Engine タスク内で使用できません。
Messaging (type=MSG) Webject と Web Event Service (type=WES) Webject は Info*Engine タスク内で使用する目的で開発されました。例外は発生しませんが、JSP ページ内ではこれらのタイプの Webject を直接使用しないでください。processor 属性を持つ task タグを使用して、JSP ページから Webject を呼び出してください。
使用
指定された Webject がクラス内にない場合に、External Webject が含まれているクラスへのパスを指定します。
type 属性が EXT に設定されている場合、この属性は必須です。
以下の例は、ページまたはタスクが Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この webject タグの例は、2 つのパラメータを持つ Group Webject である Copy-Group Webject を指定します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<ie:webject name="Copy-Group" type="GRP">
<ie:param name="GROUP_IN" data="grp1"/>
<ie:param name="GROUP_OUT" data="grp2"/>
</ie:webject>