「URL に転送」アクション(Web のみ)

「URL に転送」アクションにより、変換指向 ZIETrans Web アプリケーションから 1 つ以上のチェーン統合オブジェクトを起動する JSP に制御を渡すことができます。これにより、作成済みの統合オブジェクトを使用できます。統合オブジェクトは既存の接続またはバックグラウンド接続を使用できます。

このアクションは ZIETrans Web プロジェクトでサポートされています。

転送アクションをイベントに追加するには、以下のパラメーターを指定する必要があります。
  • コントロールを渡す JSP。統合オブジェクトの呼び出しに加え、情報が必要な場合は、この JSP はユーザーと対話できます。
  • 実行する最初の統合オブジェクトの startStateLabel。デフォルト接続を格納して、その接続が統合オブジェクトに対して確実に使用可能になるように、この値は ZIETrans アプリケーションによって使用されます。
    注: このパラメーターは、デフォルト接続を JSP/統合オブジェクト・ロジックに渡す必要がある場合にのみ必要です。
注: 大規模な JSP を実行する場合は、JVM システムのプロパティー com.sun.tools.javac.main.largebranch=true を設定し、サーバーを再始動します。JVM のプロパティーを設定するには、管理コンソールを使用するか、JVM の引数を設定するか、またはカスタム・プロパティーを作成します。
URL への転送により、JSP/統合オブジェクト・ロジックが使用する 接続を複数の方法で管理できます。例:
  • ZIETrans アプリケーションはすでにデフォルト接続を確立しており、JSP/統合オブジェクト・ロジックでこの接続を使用するとします。この場合、制御を受け取る JSP は、チェーンの先頭ではない統合オブジェクトを駆動する必要があります。駆動される統合オブジェクトは、作成時に統合オブジェクトに関連付けられた開始状態ラベルを使用して HTTP セッション・オブジェクトで接続を検索することによって、使用する接続を探します。このラベルは、「URL に転送」の定義の一部として指定されたラベルに一致する必要があります。この場合、制御が変換指向のプロジェクトに戻されると、ホスト画面が更新されたかどうかがチェックされます。変更された場合は、現在のイベントに関連付けられたアクション・リストにある残りのアクションはすべて無視されます。ホスト画面が変更されなかった場合は、残りのアクションは無視されません。
  • ZIETrans アプリケーションはすでにデフォルト接続を確立しているが、JSP/統合オブジェクト・ロジックで新規バックグラウンド接続を使用するとします。この場合、制御を受け取る JSP は、チェーンの先頭であるかまったくチェーニングされていない統合オブジェクトを駆動する必要があります。この統合オブジェクトにより、新規バックグラウンド接続が確立され、その接続に対して 指定のタスクが実行されます。この場合は「URL に転送」の定義で startStateLabel を指定する必要はありません。
  • デフォルト接続が開始されていない場合。これは、開始イベントまたは接続イベント (取得アクションを実行する前) に「URL に転送」アクションを追加する場合のケースです。このシナリオでは、多くの可能性があります。例えば、制御を受け取る JSP が、専用のバックグラウンド接続を取得し、指定のタスクを実行し、ZIETrans アプリケーションに制御を戻すようにプログラミングされた統合オブジェクトを駆動できます。この時点で、ZIETrans アプリケーションがイベント処理を続行し、デフォルト接続を確立できます。別の可能性として、JSP が チェーンの先頭である統合オブジェクトを駆動する場合も考えられます。統合オブジェクトが接続を確立し、タスクを実行し、デフォルト接続として使用する接続を ZIETrans アプリケーションに渡します。
  • 接続がチェーンの最初の統合オブジェクトによって確立されると、チェーンの最初の統合オブジェクトによって作成されたリンクを使用して保存されます。

    このシナリオでは、後続の統合オブジェクトは同じリンクを再使用する必要があります。そのリンクは getHPubLinkKey() メソッドを呼び出す最初の統合オブジェクトから取り出すことができます。必要に応じて、リンクを要求オブジェクトのパラメーターとして、後続の JSP に受け渡すことができます。これは非表示入力パラメーターを、以下に示す形式に追加することによって実行できます。
    <INPUT NAME="<%= CommonConstants.HPUB_LINK_KEY %>"
           VALUE="<%= ExampleIO.getHPubLinkKey() %> "TYPE="hidden">
    後続の JSP は、processRequest() メソッドを呼び出す前にキーを取り出しそれを IO に設定するために、以下のステートメントを使用します。
    ExampleIO_2.setHPubLinkKey
     ((String)request.getParameter(CommonConstants.HPUB_LINK_KEY));

転送アクションを使用する場合は、統合オブジェクトの実行後に制御が自動的に ZIETrans アプリケーションに戻されることはありません。JSP は、ZIETrans アプリケーションに明示的に制御を戻す必要があります。転送アクションより前にデフォルト接続が確立されていない場合に統合オブジェクトがデフォルト接続を使用する場合は、デフォルト接続として使用する接続を ZIETrans アプリケーションに渡す必要があります。この場合、必ず HttpServletRequest で要求パラメーターを設定してから、その要求を ZIETrans アプリケーションに転送してください。パラメーターは CommonConstants.ZIETrans_EXISTING_CONN です。このパラメーターに必要な値を取得するには、チェーンの最後の統合オブジェクトで getHPubEndChainName メソッドを呼び出します。

例えば Web プロジェクトでは FORM は以下のようになる可能性があります。
<FORM NAME="exampleLink" METHOD="GET" 
ACTION='<%= response.encodeURL(request.getContextPath()+"/entry")%>'>
<INPUT TYPE="HIDDEN" NAME="<%= CommonConstants.ZIETrans_EXISTING_CONN %>" 
VALUE="<%= ExampleIO.getHPubEndChainName()%>" />
<INPUT TYPE="submit" VALUE="Return to ZIETrans application" />
</FORM>
また、「ZIETrans ツール」メニューを使用して 「ZIETrans アプリケーションへの転送の挿入」を行うこともできます。このオプションは、1 つの例外を持つコードを 自動的に挿入します。以下の行は含まれません。
<INPUT TYPE="HIDDEN" NAME="<%= CommonConstants.ZIETrans_EXISTING_CONN %>"
       VALUE="<%= IntegrationObjectName.getHPubEndChainName() %>" />
ZIETrans アプリケーションに接続を渡す場合は、JSP を編集して、「FORM NAME=」コード行の直後にコード行を追加する必要があります。

その他の場合 (デフォルト接続をオープンしてから転送アクションを起動する場合や、統合オブジェクトが転送アクションを使用しない場合) は、接続を戻す必要はありません。これらの場合、記載の例から最初の INPUT ステートメントを省略できます。

注: JSP/統合オブジェクト・ロジックを ZIETrans アプリケーションへの最初の入り口にすることができます。この場合、ZIETrans アプリケーションを駆動し、JSP/統合オブジェクト・ロジックで確立した接続を ZIETrans アプリケーションに渡し、デフォルト接続として使用させるように指定したコードを使用します (接続をデフォルト接続定義から作成した場合)。