i ntra-mart The Power for Enterprise Web Solution
Function Containerについて

種類

ファンクションコンテナは、サーバで実行される JavaScript で記述された intra-mart のビジネスロジック・プログラム・ファイルです(Client Side JavaScript は、これに含まれません)

ファンクションコンテナは、用途により4種に大別されます。

  • 初期起動用
  • Web ページ連携用
  • バッチプログラム用
  • 特殊プログラム
※) 共通関数登録用および独立型関数定義用などは、その性質の類似から『初期起動用』と同義と扱います。




初期起動用

初期起動用ファンクションコンテナは、サーバによりプログラムファイルがロードされると、ファイル内に記述された init() 関数が実行されます。
共通関数登録などの初期化処理は、init() 関数内に記述するようにしてください。

サーバの初期起動時には、ソースのルートディレクトリ(標準では、pages/src または pages/platform/src)にあるinit.js 内に定義された init() 関数が実行されます。

実行シーケンス
  1. init.js のロード
  2. init.js 内の init() 関数の実行




プレゼンテーションページ連携用

プレゼンテーションページと連動するファンクションコンテナは、サーバにより実行される時に、引数を伴って呼び出されます。

HTTP リクエストにより実行された場合、URL引数を持つ request オブジェクトを引数として init() 関数が実行されます。
また、リンクやフォームの action 属性により任意の関数実行が指定されている場合、URL引数を持つ request オブジェクトを引数として指定の関数が実行されます。

HTTP リクエスト以外の方法(API forward() 等)により実行された場合、ファンクションコンテナ内の init() 関数は、その方法によって定義された引数を伴って実行されます(詳細に関しては、各々のAPI仕様を参照してください)

プレゼンテーションページの実行が完了したあと、ファンクションコンテナ内に close() 関数が定義されていた場合、URL引数を持つ request オブジェクトを引数として close() 関数が実行されます。

実行シーケンス
  1. action 属性指定関数の実行
  2. init() 関数の実行
  3. プレゼンテーションページの実行
  4. close() 関数の実行

action 属性関数の実行指定がない場合は、action 属性関数の実行フェーズはスキップされます。
プレゼンテーションページ実行中は、プレゼンテーションページ側の要求に応じて、ファンクションコンテナ内の任意の関数が実行されることがあります。



バッチプログラム用

intra-mart Batch Server により、定められた時刻に実行されるファンクションコンテナが、これに該当します。

バッチ設定メンテナンスにより設定されている時刻になると、設定された任意のファンクションコンテナ内に定義された init() 関数が Application Runtime により実行されます。



特殊プログラム

session.js は、Application Runtime が HTTP リクエストを受け付けた時に実行されるプログラムです。

Application Runtime が HTTP リクエストを受け付けると、session.js 内に定義された init() 関数が実行されます。
また、Application Runtime がプレゼンテーションページの作成を完了した後、HTTP レスポンスを返す前に close() 関数が実行されます。

session.js ファイルを変更した場合は、Application Runtime を再起動するまでシステムには反映されません。



注意事項

ファンクションコンテナ内に定義された init() 関数および close() 関数は、特別な意味を持ちます。
これらの関数を正規の目的以外に定義をすると、思わぬ誤動作の原因となります。




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