i ntra-mart The Power for Enterprise Web Solution
動作概要
【 Presentatin Page 篇 】

前提

ここでは、ブラウザを使い intra-mart に対してアクセスした場合の、ランタイム・エンジンの動作仕様を説明します。

intra-mart に対して Web アクセスするためには、intra-mart Application Server, intra-mart File Server, intra-mart Information Server および intra-mart Web-Server Connector をインストールして正しく動作していることが必要になります。



動作に必要なプログラム(初期起動)

intra-mart Application Server の初期起動時には、指定のファンクションコンテナを実行します。

初期起動時に実行したいプログラムを記述したファンクションコンテナを適切なディレクトリに保存して、適切に呼び出されるようにしてください。
初期起動時にアプリケーション(共通関数など)の初期化や初期設定などを実行すると有効です。

注意)初期化プログラム内では、データベースアクセスができません。初期起動時にデータベースアクセスをする必要のあるプログラムは、データベースアクセス前に、必ずデータベース接続APIを実行し、データベースアクセスAPIに対して、接続参照名を明示的に指定するようにして下さい。


動作に必要なプログラム(Web ページ)

ブラウザから HTTP リクエストにより ページベース開発モデルのプログラムが実行される場合、ページを作成するために必要なプレゼンテーションページおよびファンクションコンテナを実行します。

ページプログラムは、プレゼンテーションページ(HTML)とファンクションコンテナ(JS)の2ファイルで1対となります。

2つのファイルは、ファイルラベル名で関連付けられます。それぞれのファイル(HTML および JS)は、必ず同じファイルラベル名で作成してください。
拡張子は、プレゼンテーションページの場合は .html で、ファンクションコンテナの場合は .js となります。(どちらの拡張子も小文字のみとなります。大文字で記述した場合、正しく動作しなくなります。)

ファンクションコンテナが必要ない場合には、ファンクションコンテナファイルの省略(プレゼンテーションページファイルのみ)は可能ですが、プレゼンテーションページファイルの省略はできません。

ブラウザから直接リンクをする場合は、該当のファイルを Web-Server Connector をインストールしたディレクトリ内に保存して下さい。
(画像ファイルなども、これに該当します。)



実行シーケンス

ブラウザからリクエストがあった場合、以下のように処理が流れます。

  1. ブラウザからのリクエスト受付
  2. session.js 内 init() 関数実行
  3. action 属性関数の実行
  4. page 属性ファンクションコンテナ内 init() 関数の実行
  5. page 属性プレゼンテーションページの実行
  6. session.js 内 close() 関数実行
  7. ページ返却

ブラウザからリクエストを受け付けた場合、必ず session.js 内の init() および close() 関数が実行されます。
この session.js の実行は、ページ処理においてエラーが発生した場合においても、必ず実行されます。

action 属性関数とは、intra-mart 連携用のリンク(<IMART type="link">)またはフォーム(<IMART type="form">)またはサブミット(<IMART type="submit">)からのリクエストであり、action 属性関数の実行指定がされていた場合にのみ処理されます(action 属性関数の実行指定がなかった場合には、この処理フェーズはスキップされます)。
action 属性関数には引数として、URL引数情報を持つオブジェクト(request)が渡されます。引数 request の詳細に関しては、Function Container API list を参照して下さい。
action 属性関数指定が複数同時に行われていた場合、以下の順位付けにしたがって実行対象となる関数を決定します。

<IMART> タグの種類と優先順位
link < form < submit

page 属性とは、intra-mart 連携用のリンク(<IMART type="link">)またはフォーム(<IMART type="form">)またはサブミット(<IMART type="submit">)からのリクエストであり、page 属性関数の実行指定がされていた場合にのみ処理されます。
page 属性指定がない場合は、リクエストをしてきたページを再実行します。
また、page 属性指定がない場合でブラウザからの初アクセスの場合は、intra-mart Information Server のインストールディレクトリ/pages/ 直下のページ main (main.html および main.js)が実行されます。

page 属性ファンクションコンテナ内 init() 関数には引数として、URL引数情報を持つオブジェクト(request)が渡されます。引数 request の詳細に関しては、Function Container API Specification を参照して下さい。

プレゼンテーションページでは、<IMART> タグ部分が実行されます。
プレゼンテーションページ内のAPIについては、Presentation Page API Specification を参照して下さい。

各スクリプトの実行フェーズにおいて、何らかの要因でエラーが発生した場合、即座にスクリプト実行を中止して、ブラウザに対してはエラー画面を送信します。
エラーが発生した場合は、エラーの発生した実行フェーズおよび『session.js 内 close() 関数実行』および『ページ返却』を除く残りの実行フェーズはスキップされます。

session.js 内 close() 関数実行フェーズは、ページ処理に関する終了処理を行うことを目的とします。
session.js 内 close() 関数実行フェーズにおいて、Debug.browse()forward() などのスクリプト実行を強制的に中断して処理を遷移させるAPIを実行した場合、正しく処理されない場合があります。



注意事項

ページ処理時間が、設定されているセッションタイムアウト時間を超える場合、スクリプト実行中であってもセッションタイムアウトが発生することがあります。
この場合、セッションタイムアウトを長く設定するか、プログラムの実行時間が短くなるようにスクリプトをチューニングするようにしてください。



戻る

Copyright(C) NTT DATA INTRAMART CO.,LTD. 2000,2001 All Rights Reserved.