簡素なフォームでは、WAMの各WEBROUTINEには1つのXSLスタイルシートが関連付けられています。このXSLスタイルシートがプレゼンテーション層、つまりWebデザインを定義します。WEBROUTINEが呼び出されると、そのWEBROUTINEページのみが返されます。ただし、実行処理をRDMLXから別のページに「リダイレクト」することが必要な場合もあります。例えば、WEBROUTINEを要求したものの、セッションの有効期限が切れている場合です。この場合、要求対象のページとは異なるエラー・ページや他のページを表示する必要があります。
またもう1つの例としては、ログオンWEBROUTINEを呼び出す1つのログオン・ボタンが付いているログオン・ページです。このWEBROUTINEは、ユーザーの認証を行い、それが登録済みのユーザーかゲスト・ユーザーかに応じて、該当するWEBROUTINEに処理を「リダイレクト」して対象のページを表示します。WEBROUTINE間の「リダイレクト」が必要になる例は、他にも多数あります。
この「リダイレクト」を行うには、TRANSFERステートメントを使用します。ターゲットWEBROUTINEへの各フィールドのマッピングは、そのターゲットWEBROUTINEのWEB_MAPステートメントに基づいて行われます。ターゲットWEBROUTINEに渡されるのは、そのWEB_MAPに受信用として指定されているフィールドやリストのみになります。
TRANSFERステートメントには、以下のプロパティがあります。
|
TRANSFERが実行されると、ターゲットWEBROUTINEが実行制御を取得し、ソースWEBROUTINEに制御が戻ることはありません。ターゲットWEBROUTINEが終了すると、このWEBROUTINEがブラウザーから直接呼び出された場合と同じように、このWEBROUTINEのページが返されます。
TRANSFERステートメントの例を以下に示します。
TRANSFER TOROUTINE(Browser)
TRANSFER TOROUTINE(#MYWAM.Browser)
TRANSFER TOROUTINE(*SERVICE EmployeeBrowse)
change #WEBRTN 'wam1.routine1'
TRANSFER TOROUTINE(*EVALUATE #WEBRTN)