高度なカスタマイズ > Info*Engine ユーザーガイド > Info*Engine のタスク > Info*Engine タスクのオーサリング > スクリプトレット
  
スクリプトレット
スクリプトレットは、標準 JavaServer Pages (JSP) エレメントであり、Info*Engine スタンドアロンタスクおよび Info*Engine JSP ページでよく使用されます。これは有効な Java コードのフラグメントです。
スタンドアロンタスクの使用
タスクコンパイラは、Java コンパイラに渡される Java ソースコードにスクリプトレットを直接コピーします。これによって、Java プログラミングロジックを Info*Engine タスクに組み込んで、条件実行 (if/then/else)、作業版数 (for/while)、およびノントリビアルコンピューテーションを実装できます。
タスクには、Java スクリプトレット (<% … %>) を組み込むことができます。
* 
保証されたタスク実行機能を使用するようにタスクを設定した場合 (ENABLERECOVERYpage ディレクティブで TRUE に設定した場合)、スクリプトレットの使用にあたり以下の内容が該当します。
保証されたタスク実行機能が実装されている Info*Engine 環境で使用されるタスク内にスクリプトレットを配置する際には、注意が必要です。スクリプトレットを、Action Webject または task タグと併用すると、保証されたタスク実行をサポートするためのコード生成に支障を来す場合があります。この問題を解消するには、以下のいずれかの操作を実行してください。
最初の Webject または task タグの前、または最後の Webject または task タグの後にスクリプトレットを配置する。
Action Webject または task タグをスクリプトレットで囲まないようにする。たとえば、Webject または task タグを、for または while ループや、if/then/else 構造に含めないようにする。
すべての Action Webject および task タグ内で resumable=true 属性を指定して、Action Webject およびタスクの保証されたタスク実行機能を使用不可にする。
Info*Engine がコードを見つけた時点でただちにタスクが処理される場合は、実行キューに送る処理ではなく、最後のオプションをお勧めします。
JSP の使用
スクリプトレットは、JSP インタープリタが、スクリプトレットを含んでいるページを処理するときに実行されます。これは、ネストされたスクリプトレットは読み込まれた時点で実行されることを意味します。ただし、Info*Engine カスタムタグは、最も外側のブロックの終了タグに達するまで、ネストされたカスタムタグの実行が延期されるように定義されています。したがって、JSP ページのネストされたスクリプトレットは、タグがネストされているカスタムタグブロックのコンテキストの外で実行されます。
JSP ページの Info*Engine タグブロック内ではスクリプトレットをネストしないでください。ネストされたスクリプトレットによって使用可能な Java プログラミングロジックを使用して高度なソリューションを提供する場合は、ソリューションを JSP ページに組み込まないでください。代わりに、Info*Engine の task タグを使用してページ上で実行できるスタンドアロンタスクを作成してください。
タグ構文
<% scriptlet %>
以下のスクリプトレットは、リレーショナルデータベーステーブルを照会するための where 節を構築します。
<%
String column = request.getParameter ( “column” );
String query = request.getParameter ( “query” );
if ( column == null )
column = “AUTHOR”;
String query = request.getParameter ( “query” );
String whereClause = "SELECT * FROM BOOK WHERE upper(" + column +
") LIKE upper('%" + query + "%')";
%>
<ie:webject name="Do-SQL" type="OBJ">
<ie:param name="INSTANCE" data="jdbcAdapter"/>
<ie:param name="SQL" data="<%=whereClause%>"/>
<ie:param name="GROUP_OUT" data="books"/>
</ie:webject>