1.6 WAMサンプル - 始めから終わりまで
WAMの実行に際し、キー・ポイントで何が起こかを反復するために、2ページのウェブ例を一緒に見て行きましょう。
最初のページは、ブラウザで表示されると、次のようになります。
ご覧のように、これは送り状の状況照会です。送り状番号を入力するようになっています。次に送り状の確認ボタンをクリックして、データベースから情報を取得して、送り状の状況が表示されます。そこで、3つのステップが発生します。これを簡単にする為に、ステップごとにWebroutineを持つことにします。
- 1つは、上記のような初期画面を表示するもの。(ConsignmentEnquiry)
- 1つは送り状番号を取得し、妥当性をチェックするもの。(CheckConsignment)
- そしてもう1つは、データベースを検索しデータを表示するもの。(ShowConsignment)
まず初めに、初期画面の表示方法です。次のようにURLを入力することもできます。
パラメータのwebapp=WDWAM01及びwebrtn=ConsignmentEnquiryを見てください。これらは実行されるWAM名(WDWAM01)とWebroutine名(ConsignmentEnquiry)を示しています。
またはより大きなWAMアプリケーションの別の部分から、アンカー(もしくはハイパーリンク)をクリック、ボタンを押す、メニュー・アイテムを選択するなどして実行することも可能です。いずれの方法にせよ、そのメカニズムは同じです。つまり、WAM内にあるWebroutineが実行されるのです。
最初のConsignmentEnquiryWebroutineの基礎となるコードは次のようになります。
ここでキーになるのは、WDCONSIGNフィールドのWebマップです。これは*bothとして定義されており、この値がWebroutineの最初で読み込まれ、Webroutineが終わる時に書き出されるということを意味しています。思い出してください、WAMをコンパイルするときに、LANSAはWebページにWDCONSIGNを表示するために、XSLをいくつか作成します。
ただし、プッシュ・ボタンは作れません。ですので、LANSAエディターでWebroutineを右クリックして、ページを開きます。プッシュ・ボタンのウェブレットをデザイン上にドラッグ・アンド・ドロップし、そのプロパティを設定します。
caption、on_click_wamname及びon_click_wrnameのプロパティ設定に注意してください。on_click プロパティは、ボタンがクリックされたら、WDWAM01のWAMの中でCheckConsignmentWebroutineを実行します。
ここまでで、この小さなアプリケーションは以下のような感じになります。
ここでLANSAエディターに戻り、CheckConsignmentWebroutineに以下のRDMLXコードを入力して下さい。
再度Webマップを見てください。このFor(*input)設定は、呼び出された時に( この例では、ユーザーがプッシュ・ボタンをクリックしたときに)WDCONSIGNがWebroutineにマップされることを意味しています。
送り状の状況ファイルは入力された送り状番号が存在するかどうかを確認する為にチェックされます。存在する場合は、コントロールはShowConsignmentWebroutineに送られます。存在しない場合は、適切なエラーメッセージが発行され、コントロールが元のConsignmentEnquiryWebroutineに移ります。
CheckConsignment Webroutineは永久に最後に達しないので、ウェブ・ページを表示することはないということに注意してください。常に、ShowConsignmentまたはConsignmentEnquiryWebroutineのどちらかにコントロールを移します。
WAMのこの部分の流れは、次のようになります。
次に、ShowConsignmentWebroutineのコードを見てみましょう。
再度、Webマップを見てください。送り状番号(WDCONSIGN)は*bothWebマップを使用して入ってきます。
状態フィールドのWDCONSTSは、送り状番号をキーとしてデータベースから読み込まれます。
Webroutineが終了します。送り状番号と状態のフィールドはWebroutineの外にマップされます。
コントロールはプレゼンテーション層に送られ、送り状番号と状況が表示されます。フィールドの*output属性にも注意してください。これは出力専用として表示されるということを意味しています。
有効な送り状番号が入力されたと仮定して、最初からWAMを実行してみましょう。
[Check Another]のプッシュ・ボタンに注目してください。これにより、ComponentEnquiryWebroutineを再実行して、処理を最初のところにもどします。