「URL に転送」アクション(Web のみ)
「URL に転送」アクションにより、変換指向 ZIETrans Web アプリケーションから 1 つ以上のチェーン統合オブジェクトを起動する JSP に制御を渡すことができます。これにより、作成済みの統合オブジェクトを使用できます。統合オブジェクトは既存の接続またはバックグラウンド接続を使用できます。
このアクションは ZIETrans Web プロジェクトでサポートされています。
- コントロールを渡す JSP。統合オブジェクトの呼び出しに加え、情報が必要な場合は、この JSP はユーザーと対話できます。
- 実行する最初の統合オブジェクトの startStateLabel。デフォルト接続を格納して、その接続が統合オブジェクトに対して確実に使用可能になるように、この値は ZIETrans アプリケーションによって使用されます。 注: このパラメーターは、デフォルト接続を JSP/統合オブジェクト・ロジックに渡す必要がある場合にのみ必要です。
- ZIETrans アプリケーションはすでにデフォルト接続を確立しており、JSP/統合オブジェクト・ロジックでこの接続を使用するとします。この場合、制御を受け取る JSP は、チェーンの先頭ではない統合オブジェクトを駆動する必要があります。駆動される統合オブジェクトは、作成時に統合オブジェクトに関連付けられた開始状態ラベルを使用して HTTP セッション・オブジェクトで接続を検索することによって、使用する接続を探します。このラベルは、「URL に転送」の定義の一部として指定されたラベルに一致する必要があります。この場合、制御が変換指向のプロジェクトに戻されると、ホスト画面が更新されたかどうかがチェックされます。変更された場合は、現在のイベントに関連付けられたアクション・リストにある残りのアクションはすべて無視されます。ホスト画面が変更されなかった場合は、残りのアクションは無視されません。
- ZIETrans アプリケーションはすでにデフォルト接続を確立しているが、JSP/統合オブジェクト・ロジックで新規バックグラウンド接続を使用するとします。この場合、制御を受け取る JSP は、チェーンの先頭であるかまったくチェーニングされていない統合オブジェクトを駆動する必要があります。この統合オブジェクトにより、新規バックグラウンド接続が確立され、その接続に対して 指定のタスクが実行されます。この場合は「URL に転送」の定義で startStateLabel を指定する必要はありません。
- デフォルト接続が開始されていない場合。これは、開始イベントまたは接続イベント (取得アクションを実行する前) に「URL に転送」アクションを追加する場合のケースです。このシナリオでは、多くの可能性があります。例えば、制御を受け取る JSP が、専用のバックグラウンド接続を取得し、指定のタスクを実行し、ZIETrans アプリケーションに制御を戻すようにプログラミングされた統合オブジェクトを駆動できます。この時点で、ZIETrans アプリケーションがイベント処理を続行し、デフォルト接続を確立できます。別の可能性として、JSP が チェーンの先頭である統合オブジェクトを駆動する場合も考えられます。統合オブジェクトが接続を確立し、タスクを実行し、デフォルト接続として使用する接続を ZIETrans アプリケーションに渡します。
-
接続がチェーンの最初の統合オブジェクトによって確立されると、チェーンの最初の統合オブジェクトによって作成されたリンクを使用して保存されます。
このシナリオでは、後続の統合オブジェクトは同じリンクを再使用する必要があります。そのリンクは getHPubLinkKey() メソッドを呼び出す最初の統合オブジェクトから取り出すことができます。必要に応じて、リンクを要求オブジェクトのパラメーターとして、後続の JSP に受け渡すことができます。これは非表示入力パラメーターを、以下に示す形式に追加することによって実行できます。
後続の JSP は、processRequest() メソッドを呼び出す前にキーを取り出しそれを IO に設定するために、以下のステートメントを使用します。<INPUT NAME="<%= CommonConstants.HPUB_LINK_KEY %>" VALUE="<%= ExampleIO.getHPubLinkKey() %> "TYPE="hidden">ExampleIO_2.setHPubLinkKey ((String)request.getParameter(CommonConstants.HPUB_LINK_KEY));
転送アクションを使用する場合は、統合オブジェクトの実行後に制御が自動的に ZIETrans アプリケーションに戻されることはありません。JSP は、ZIETrans アプリケーションに明示的に制御を戻す必要があります。転送アクションより前にデフォルト接続が確立されていない場合に統合オブジェクトがデフォルト接続を使用する場合は、デフォルト接続として使用する接続を ZIETrans アプリケーションに渡す必要があります。この場合、必ず HttpServletRequest で要求パラメーターを設定してから、その要求を ZIETrans アプリケーションに転送してください。パラメーターは CommonConstants.ZIETrans_EXISTING_CONN です。このパラメーターに必要な値を取得するには、チェーンの最後の統合オブジェクトで getHPubEndChainName メソッドを呼び出します。
<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><INPUT TYPE="HIDDEN" NAME="<%= CommonConstants.ZIETrans_EXISTING_CONN %>"
VALUE="<%= IntegrationObjectName.getHPubEndChainName() %>" />ZIETrans アプリケーションに接続を渡す場合は、JSP を編集して、「FORM NAME=」コード行の直後にコード行を追加する必要があります。その他の場合 (デフォルト接続をオープンしてから転送アクションを起動する場合や、統合オブジェクトが転送アクションを使用しない場合) は、接続を戻す必要はありません。これらの場合、記載の例から最初の INPUT ステートメントを省略できます。