ヘッダーをスキップ
Oracle® Fusion Middleware Forms Servicesデプロイメント・ガイド
11gリリース2 (11.1.2)
B66165-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 Oracle Formsアプリケーションの配布の基本

この章では、Forms ServicesがOracle Fusion Middlewareで実行される仕組み、およびFormsアプリケーションを配布する際の手順について説明します。 また、基本的な構成ファイルについても説明します。インストールの完了後、この章に記載されている情報を使用して、初期構成の変更や必要な変更を行うことができます。

この章には、次の項が含まれています。

3.1 Oracle Forms Servicesのアクション

この項では、Formsサーブレットを使用して初期のHTMLページを生成することを前提に、Forms ServicesがOracle Fusion Middlewareで実行される仕組みと、構成ファイルが使用される仕組みについて説明します。ここでは、Webサーバーがexample.comと呼ばれるコンピュータのポート8888で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。

ユーザーがOracle Forms Servicesアプリケーションを実行すると、次の一連のイベントが発生します。

  1. ユーザーはWebブラウザを起動し、次のようなURLを指定します。

    http://example.com:8888/forms/frmservlet?config=myapp&form=hrapp

    この例では、実行されるトップ・レベルのフォーム・モジュールはhrappで、使用する構成セクションはmyappです。

  2. Oracle HTTP Serverリスナーはリクエストを受信します。これは、URL内のパス/formsを検索し、WebLogicハンドラ・マッピングに基づいて正しいOracle WebLogic管理対象サーバーにリクエストを転送します。このマッピングは、forms.confで定義されます。

  3. Oracle WebLogic管理対象サーバーは、/formsをコンテキスト・ルートとするOracle Forms Servicesアプリケーションにこのリクエストをマップします。次に、web.xmlファイルで指定したfrmservletのマッピングを使用して、そのリクエストをFormsサーブレットにマップします。

  4. Oracle WebLogic管理対象サーバーで実行しているFormsサーブレットが、このリクエストを処理します。このサーブレットが実行する処理は次のとおりです。

    • $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/configにあるこのサーブレットの構成ファイル(デフォルトではformsweb.cfg)を開きます。

    • formsweb.cfgファイルで使用する構成セクションを決定します。この例では、URLには問合せパラメータconfig=myappが含まれているため、[myapp]セクションが使用されます。

    • 使用するベースHTMLファイルを決定します。このときの判断基準は、(a)リクエストを発行しているブラウザ(User-Agent)、(b)ブラウザを実行しているプラットフォーム、(c)formsweb.cfgファイルの各種パラメータの設定(特にbasejpi.htmbase.htm)です。

    • ベースHTMLファイルを読み取り、次のように変数を置換した後、コンテンツをHTMLページとしてユーザーのWebブラウザに送り返します。

      Formsサーブレットは変数(%myParam%など)を検出すると、一致するURL問合せパラメータ(&myParam=xxxなど)を検索し、そのパラメータが見つからないときはformsweb.cfgファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%)はそのパラメータの値で置換されます。

      この例では、ベースHTMLファイルにはテキスト%form%が記述されています。このテキストが値hrappに置き換わります。

  5. FormsサーブレットがどのベースHTMLファイルを選択したかに応じて、Webブラウザに送り返されるHTMLページには、Formsアプレット(シン・クライアント)を起動するapplet、objectまたはembedタグが含まれます。Formsクライアントは、Oracle Java Plug-inが提供するJVM環境で実行されます。

  6. Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。

    /forms/javaweblogic.xmlファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。

    注意: Formsアプレット・コードがネットワークを介してロードされるのは、ユーザーがOracle Forms Servicesアプリケーションを最初に実行したとき、または、新しいバージョンのOracle Forms ServicesがWebサーバーにインストールされたときのみです。それ以外の場合は、ローカル・ディスクにあるJava Plug-inのキャッシュからロードされます。

  7. Oracle Forms Servicesアプレットが実行されると、URL http://example.com:8888/forms/lservletにあるFormsリスナー・サーブレットに接続してFormsセッションを起動します。

  8. Oracle HTTP Serverリスナーはリクエストを受信します。このFormsリスナー・サーブレット用のweb.xmlファイルにあるサーブレット・マッピングにパス/forms/lservletが一致することから、Oracle HTTP Serverリスナーは、このリクエストをOracle WebLogic管理対象サーバーに転送します。

  9. Formsリスナー・サーブレット(lservlet)は、FormsセッションのFormsランタイム・プロセス(frmweb.exeまたはfrmweb)を起動します。

  10. FormsアプレットとFormsランタイム・プロセス間の通信は、Formsセッションが終了するまでリスナー・サーブレットを介して継続します。

  11. URLの属性値(実行するフォーム名など)がFormsランタイム・プロセスに渡されます。ベースHTMLファイルのserverArgs値にある%form%はhrappに置き換わります。そのため、このランタイム・プロセスはファイルhrapp.fmxのフォームを実行します。

    このファイルは、環境ファイル(デフォルトではdefault.env)で定義されたFORMS_PATH環境設定に指定されているディレクトリのいずれかに格納されている必要があります。このディレクトリをformsweb.cfgで指定することもできます(例: form=c:\<path>\myform)。

  12. Formsセッションは、次のいずれかが起きた場合に終了します。

    • トップ・レベルのフォームが終了した場合(exit_form組込み関数をコールするPL/SQLトリガー・コードなどにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。exit_form(no_validate)を指定している場合は、この指示が表示されずにフォームが終了します。

    • ユーザーがWebブラウザを終了した場合。この場合、保存されていない更新は失われます。

3.2 構成ファイル

この項では、Formsアプリケーションの構成に使用する基本ファイルについて説明します。構成の詳細は、第4章「Forms Servicesの構成と管理」を参照してください。

この項は、次の小項目に分かれています。

3.2.1 Oracle Forms構成ファイル

Oracle Forms構成ファイルを使用すると、Formsのパラメータを指定できます。これらのファイルは、Oracle Enterprise Manager Fusion Middleware Controlで管理できます。これらの構成ファイルには次のものが含まれます。


注意:

Forms構成ファイルとその格納場所のリストは、表C-1を参照してください。


3.2.1.1 default.env

場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config

通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/configです。

このファイルにはFormsランタイムの環境設定が含まれています。UNIXおよびLinuxの場合、default.envにはPATHLD_LIBRARY_PATHが記述されています。

default.envファイルのサンプルは、付録C「プラットフォーム固有のdefault.envファイル」を参照してください。

default.envの詳細は、第4章「環境変数の管理」を参照してください。

3.2.1.2 formsweb.cfg

場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config

通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/configです。

このForms構成ファイルには、次の内容が含まれています。

  • Formsランタイムのコマンドライン・パラメータの値、使用する環境ファイルの名前(envFile設定)。

  • インストール時に設定するサーブレット構成パラメータのほとんどの設定。変更が必要な場合は、これらのパラメータをカスタマイズできます。

base.htmファイル内の変数(%variablename%)は、formsweb.cfgファイルに指定された適切なパラメータ値によって置換されます。URLリクエストがある場合は、その問合せパラメータの値によって置換されます。

formsweb.cfgファイルのサンプルは、付録C「デフォルトのformsweb.cfg」を参照してください。

formsweb.cfgの詳細は、第4章「Fusion Middleware Controlによるパラメータの構成」を参照してください。

3.2.1.3 ftrace.cfg

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server

このファイルを使用して、Forms Traceを構成します。Forms Traceは、Oracle Formsの以前のリリースで利用できたForms Runtime Diagnostics(FRD)とPerformance Event Collection Services(PECS)の機能にかわるものです。Forms Traceは、フォームでの実行パス(たとえば、ユーザーがフォームの使用時に行った手順など)をトレースします。

ftrace.cfgの詳細は、第12章「トレースと診断」を参照してください。

3.2.2 Forms Java EEアプリケーションのデプロイメント・ディスクリプタ

Forms Services Java EEアプリケーションEAR(Enterprise Archive)ファイルformsapp.earは、Oracle Formsの構成時にWLS_FORMS(Oracle WebLogic管理対象サーバー)に配布されます。

これにより、$DOMAIN_HOME /servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.2/<random_string1>/APP-INFディレクトリの下に次のようなディレクトリ構造が作成されます。

./APP-INF
./APP-INF/lib
./APP-INF/lib/frmconfig.jar
./APP-INF/lib/frmconfigmbeans.jar
./META-INF
./META-INF/application.xml
./META-INF/jazn-data.xml
./META-INF/jps-config.xml
./META-INF/mbeans.xml
./META-INF/weblogic-application.xml

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.2/<random_string2>/war/WEB-INFディレクトリの下には、次のようなディレクトリ構造が作成されます。

./WEB-INF
./WEB-INF/lib
./WEB-INF/lib/frmsrv.jar
./WEB-INF/web.xml
./WEB-INF/weblogic.xml


注意:

$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.2のサブディレクトリは、Oracle WebLogic Serverのnostageデプロイメント・プロセスで作成されます。これらのディレクトリにはランダムな文字列の名前が割り当てられます。たとえば、e18uoiやwb1h9eなどのディレクトリ名になります。


デプロイメント・ディスクリプタ:

  • application.xmlweblogic-application.xmlでは、EARファイルの構造が定義されます。

  • web.xmlでは、FormsサーブレットとFormsリスナー・サーブレット用に、別名frmservletlservletが定義されます。

  • weblogic.xmlでは、コンテキスト・パラメータとユーザー定義の仮想ディレクトリ・マッピングを定義します。

web.xmlファイルのサンプルは、付録C「web.xml」を参照してください。

3.2.3 Oracle HTTP Listenerの構成ファイル

この項では、Oracle Forms Services用のOracle HTTP Listenerの構成に使用するファイルについて説明します。

場所: $ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf

forms.confは、Oracle Forms Services用のOracle HTTPリスナーの構成ファイルです。これには、Forms Services関連のディレクティブ(Forms WebLogic管理対象サーバーのハンドラ・マッピング、AliasMatchなど)が含まれます。

3.2.3.1 forms.confの編集について

forms.confは、Oracle HTTP Serverディレクティブ・ファイルです。Oracle Fusion Middlewareでは、$ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconfのOracle HTTP Server構成ディレクトリにforms.confファイルがあります。

カスタムOracle HTTP Serverディレクティブをforms.confに追加した場合、これが存在するOracle HTTP Serverノードを再起動する必要があります。

forms.confの詳細は、付録C「forms.conf」を参照してください。

3.2.3.2 別のホストでのOHSの構成

別のホストでOracle HTTP Serverを構成するには、次のタスクを実行します。

  1. Formsをホストする層からOHSをホストする層にForms OHSディレクティブ・ファイルforms.conf.backupをコピーし、その名前をforms.confに変更します。

    コピー元の場所(Forms層):

    $ORACLE_INSTANCE/config/FormsComponent/forms/server/forms.conf.backup

    コピー先の場所(OHS層):

    $ORACLE_INSTANCE/config/OHS/<OHS Component Instance>/moduleconf/forms.conf

  2. 適切な管理対象サーバー・クラスタを指定するか、デフォルト・フォームのJava EEアプリケーションのコンテキスト・ルート(/forms)に対する管理対象サーバーを指定します。

    クラスタ・エントリを指定する例:

    <Location /forms>
            SetHandler weblogic-handler
            WebLogicCluster    <HOSTNAME>:<WLS_PORT>
            DynamicServerList OFF
    </Location>
    
    

    非クラスタ・エントリを指定する例:

    <Location /forms>
            SetHandler weblogic-handler
            WebLogicHost = <HOSTNAME>
            WebLogicPort = <PORT>
    </Location>
    
    
  3. ユーザーが追加したディレクティブで参照されるディレクトリが、OHS層からアクセス可能であることを確認します。

  4. OHS層のOHSインスタンスを再起動します。

3.2.4 標準フォントとアイコン・ファイル

Registry.datは、Forms Servicesで使用されるデフォルトのフォント、フォント・マッピングおよびアイコン情報を含んでいるファイルです。

場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/config/forms/registry/oracle/forms/registry

デフォルトのRegistry.datファイルのサンプルは、付録C「Registry.dat」を参照してください。

Registry.datの詳細は、第4章「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」を参照してください。

3.2.5 ベースHTMLファイル

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/

base.htmbasejpi.htmは、Oracle Formsアプリケーションの起動に使用するHTMLページを生成するときに、Formsサーブレットによりテンプレートとして使用されます。

構成の変更は、これらのファイルを編集するのではなく、Enterprise Managerを使用してformsweb.cfgファイルで行うことをお薦めします。ベースHTMLファイルを変更するには、ユーザー自身のバージョンを作成し、設定を適切に変更してformsweb.cfgファイルからそのユーザー・バージョンのファイルを参照します。

ベースHTMLファイルのサンプルは、付録C「base.htmファイルとbasejpi.htmファイル」を参照してください。

3.2.6 WebUtil構成ファイル

この項では、実行時にWebUtilを構成するために使用するファイルについて説明します。設計時に使用するWebUtilの詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。WebUtil構成ファイルには次のものが含まれます。

3.2.6.1 デフォルトのwebutil.cfg

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server

このファイルには、次のようなWebUtilの構成設定がすべて示されます。

  • ロギング・オプション

  • インストール・オプション

  • ファイルのアップロードおよびダウンロードのオプション

  • ロギング・エラーやログ・メッセージに対するサーバー・サイドのロギング・オプション

webutil.cfgファイルのサンプルは、付録C「デフォルトのwebutil.cfg」を参照してください。


注意:


3.2.6.2 デフォルトのwebutilbase.htm

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/

これは、Webでフォームを実行するデフォルトのベースHTMLファイルです。汎用のAPPLETタグを使用して、WebUtilに証明書を登録するFormsアプレットを含めます。

webutilbase.htmファイルのサンプルは、付録C「デフォルトのwebutilbase.htm」を参照してください。

3.2.6.3 デフォルトのwebutiljpi.htm

場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/

これはJDK Java Plug-inを使用して、Webのフォームを実行するデフォルトのベースHTMLファイルです。このファイルは、たとえば、UNIX上でFirefoxを使用してWebのフォームを実行する場合やWebUtilの証明書を登録する場合に使用します。

webutiljpi.htmファイルのサンプルは、付録C「デフォルトのwebutiljpi.htm」を参照してください。

3.3 アプリケーションの配布

Forms Developerでアプリケーションを作成したら、そのアプリケーションをWeb上に配布できます。Oracle Forms Servicesは、指定されたURLによってOracle Fusion Middlewareのアプリケーションにアクセスします。次に、そのURLでHTTP Listenerにアクセスし、そこでListener Servletと通信します。リスナー・サーブレットは、Forms ServicesのセッションごとにFormsランタイム・プロセス(Windowsではfrmweb.exe、UNIXとLinuxではfrmweb)を起動します。

Forms Servicesが実行される仕組みの詳細は、第3.1項「Oracle Forms Servicesのアクション」を参照してください。

3.3.1 アプリケーションの配布

インストーラで設定されたデフォルトのパラメータを使用して基本フォームを配布する手順は次のとおりです。

  1. Forms Developerでアプリケーションを作成し、保存します。

    .fmbファイルは、Forms Developer以外ではオープンできない設計時ファイルです。.fmxファイルは.fmbをコンパイルしたときに作成されるランタイム・ファイルで、Webへの配布に使用します。

    Forms Developerの詳細は、Forms Developerの「ヘルプ」メニューを参照してください。

  2. 目的のアプリケーション・モジュールにOracle Forms Servicesからアクセスできるようにformsweb.cfgを変更します。このファイルは、Fusion Middleware Controlの「Web構成」ページで編集します。詳細は、第4.2項「Forms Servicesの構成」を参照してください。

    表3-1は、form=hrapp.fmxというFormsモジュールを持つアプリケーションmy_applicationの構成を示しています。

    表3-1 構成セクションのパラメータ値の例

    構成セクション名 Formsモジュール名の値

    my_application

    hrapp.fmx


    構成が完了すると、ブラウザのURLに「...?config=my_application」(formsweb.cfgの「Web構成」セクションの名前)と入力することにより、Web上でOracle Forms Servicesモジュールhrapp.fmxへアクセス可能になります。


    注意:

    この構成セクションの名前に使用できる文字は、空白以外の英数字のみです。


  3. .fmxファイルの場所は、必ずFORMS_PATH環境変数で指定します。

    たとえばWindowsでは、.fmxファイルがd:\my_files\applicationsにある場合は、FORMS_PATHd:\my_files\applicationsと記述します。Windowsの場合、複数の場所を指定するには各ディレクトリ名をセミコロンで区切ります。UNIXとLinuxの場合はコロン(:)で区切ります。その環境ファイルの「環境構成」ページで、この情報を指定します。

  4. 環境ファイルを変更するには、Fusion Middleware Controlの「環境構成」ページで環境ファイルを選択し、アプリケーションの必要に応じて環境変数を追加または編集します。たとえば、表3-2に示す環境変数を追加できます。

    表3-2 環境変数の値の例

    環境変数の名前 環境変数の値

    NLS_LANG

    NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1


    環境ファイルでこれらの環境変数を指定した場合は、「Web構成」ページを使用して、formsweb.cfgの該当する構成セクションでこの環境ファイルを指定します。

  5. 次のように、URLで記述したアプリケーションの名前を入力します。

    http://example.com:8888/forms/frmservlet?

    exampleはコンピュータのホスト名、8888はHTTPリスナーで使用するポートです。

    構成セクションを作成した後、config=に続いてその構成セクション名を記述します。この例では、hrapp.fmxにアクセスするためのURLは次のようになります。

    http://example.com:8888/forms/frmservlet?config=my_application

3.3.2 パラメータの指定

Oracle Forms Servicesアプリケーションにパラメータ値を事前定義するには、2つの方法があります。次の方法でパラメータを定義できます。

  • Fusion Middleware Controlの「Web構成」ページのデフォルト・セクションで、アプリケーション設定を編集します。デフォルトの構成セクションには、Oracle Forms Servicesで使用するデフォルト値が表示されます。

  • 名前を付けたアプリケーションの構成セクションで、他のシステム・パラメータとユーザー・パラメータの値を管理(追加、編集、コピー、削除)します(第3.3.3項「Fusion Middleware Controlでの構成セクションの作成」を参照)。たとえば、myApp用に作成した構成セクションで、表3-3に示すパラメータの追加やその値の変更ができます。

    表3-3 構成セクションの例: myAppのパラメータ値

    パラメータ名 パラメータ値

    baseHTML

    mybase.htm

    baseHTMLjpi

    mybasejpi.htm

    form

    hrapp.fmx

    userid

    scott/tiger@orcl



注意:

Web構成」にある名前を付けた構成セクションで指定したパラメータは、システム・パラメータ設定よりも優先して適用されます。



注意:

システム・パラメータは、ユーザー・パラメータとは異なりURLで上書きできません。


3.3.3 Fusion Middleware Controlでの構成セクションの作成

第3.3.1項「アプリケーションの配布」のステップ2で作成した構成セクションで、Oracle Forms Servicesアプリケーションのパラメータを指定できます。「Web構成」ページのデフォルト・セクションで使用可能なアプリケーションおよびシステム・パラメータを任意で指定できます。

たとえば、lookAndFeelパラメータをoracleの値に設定し、「適用」をクリックすると、アプリケーションのルック・アンド・フィールをOracleのルック・アンド・フィールに設定できます。

また、名前を付けた構成セクションのデフォルトのパラメータ値にも上書きできます。たとえば、アプリケーションへの接続情報をscott/tiger@orclとして事前定義するには、useridのパラメータ値を設定する必要があります。これには、名前を付けた構成セクションでuseridのパラメータ値をscott/tiger@orclに変更します。

編集可能な他のパラメータは、第4章「Forms構成パラメータ」を参照してください。

3.3.3.1 Oracle Forms Servicesアプリケーションへのアクセスに使用するURLの編集

Oracle Forms ServicesアプリケーションにアクセスするURLにパラメータを直接入力できます。前述の例の場合、構成ファイルにformパラメータを指定するかわりに、URLに次のように入力することもできます。

http://example.com:8888/forms/frmservlet?config=my_application&form=hrapp

アンパサンド(&)を使用すれば、フォームと名前を付けた構成パラメータの組合せをコールすることができます。前述の例では、my_applicationで指定したパラメータ設定を使用して、フォームhrappをコールしています。


注意:

URLで指定したパラメータは、構成セクションで設定したパラメータよりも優先して適用されます。詳細は、第4章「アプリケーションのURLセキュリティの管理」を参照してください。


3.3.4 ランフォーム・パラメータにおける特殊文字の指定

ランフォーム・パラメータに渡される値に特殊文字が含まれている場合は、特定の考慮事項が適用されます。この項では、こうした考慮事項について説明し、今回のリリースのデフォルト動作と前リリースのデフォルト動作を比較します。

ランフォーム・パラメータは、テンプレートHTMLファイルのserverArgsアプレット・パラメータで指定されるパラメータです。テンプレートHTMLファイルのserverArgsパラメータで指定された値は、変数の置換後に、コマンドライン・パラメータ文字列と呼ばれることもあります。これは、空白で区切られた一連のname=valueのペアで構成されます。この名前には、英数字またはアンダースコアのみが使用可能です。name=valueペアの値の部分には、任意の文字列を使用できます。

3.3.4.1 現行リリースのデフォルト動作

ランフォーム・パラメータの値は、次に示す3つの場所のいずれかで指定できます。

  1. テンプレートHTMLファイル(base.htmなど)のserverArgsパラメータの値。

  2. (1)の変数参照を(直接または再帰的に)置換する、構成ファイル(formsweb.cfgなど)で指定された変数の値。通常、これらの値は、Fusion Middleware Controlを使用して管理します。第4章「Forms Servicesの構成」を参照してください。

  3. (1)または(2)の変数参照を直接置換する、URLの属性値。

(3)では、URL構文規則(ブラウザおよびアプリケーション・サーバーで実行される)により、URLエスケープ・シーケンスとして特定の文字を入力する必要があります(計3文字のうち、%に続く2桁の16進数字は文字のASCII値を表します)。

この要件には、%文字自体が含まれます(%25として入力する必要があります)。さらに、現在Oracle Forms Servicesでは、ブラウザおよびアプリケーション・サーバーでエスケープなしに引用符を入力できる場合でも、引用符('"')は%22として入力する必要があります。

URL構文規則では、(URLエスケープ・シーケンス%20の代替として)空白を+として入力することも許可されています。ただし、otherparams構成パラメータの値では、+は特別に扱われ、ランフォーム・パラメータの値に埋め込まれた空白を示すのとは対象的に、name=valueペアを分割します。

たとえば、ランフォーム・アプリケーションにユーザー・パラメータparam1param2が指定されており、これらのパラメータに「a b」および「c d」を割り当てる場合は、次の文字列をURLに取り込みます。

&otherparams=param1=a%20b+param2=c%20d

(1)および(2)のように、テンプレートHTMLファイルまたは構成ファイルでランフォーム・パラメータを指定する場合、Formsでは状況によってURLエスケープ・シーケンスが必要とされる場合やURLエスケープ・シーケンスの使用が許可される場合、また許可されない場合があります。

ランフォーム・パラメータの値の外部では、URLエスケープ・シーケンスは使用できません。たとえば、name=valueペアの=は、常にそのまま=として指定する必要があります。隣接する2つのname=valueペアを区切る空白は、常にそのまま" "(シングル・スペース文字)として指定する必要があります。

ランフォーム・パラメータの値の内部では、空白(' ')をURLエスケープ・シーケンス(%20)として指定する必要があります。HTMLデリミタ文字(構成ファイルで指定)もURLエスケープ・シーケンスとして指定する必要があります。また、(1)のようにランフォーム・パラメータがテンプレートHTMLファイルで指定されている場合は、引用符('"')をURLエスケープ・シーケンス(%22)として指定する必要があります。

その他の7ビットASCII文字も、URLエスケープ・シーケンスとして指定する場合があります。ただし、この指定は必須ではありません(次に示すとおり、%では必要な場合があります)。%文字には、特定の追加制限が適用されます。次のものがあります。

  • HTMLデリミタが%(デフォルト)である場合、ランフォーム・パラメータの値内の%の出現をエスケープする(%25として指定する)必要があります(HTMLデリミタ文字のエスケープの必要性については、前述のとおりです)。さらに、7ビットのASCII値を表す2桁の16進数字(最初の文字が0から7の2桁の16進数字)で変数名を開始することはできません。

  • HTMLデリミタが%でなければ、その直後に8進数字と16進数字が続く場合、%の出現はエスケープする必要があります。%の他の出現もエスケープすることをお薦めしますが、これは必須ではありません。

(前リリースで作成した既存のテンプレートHTMLファイルまたは構成ファイルを所有し、そのファイルで%以外のHTMLデリミタが使用され、ランフォーム・パラメータの値に%が含まれている場合は、この推奨事項を無視することもできます)。

3.3.4.2 前リリースの動作

リリース9.0.4以降の動作は、テンプレートHTMLファイルと構成ファイルのランフォーム・パラメータの値では引用符をエスケープ(%22)する必要がある点を除いて、現行リリースと同じです。

9.0.4より前のリリースでは、テンプレートHTMLファイルや構成ファイルで指定したランフォーム・パラメータの値にはURLエスケープ・シーケンスを使用できませんでした(前述の(1)と(2)の場合)。3つのすべての場合において、特定の特殊文字、特に空白、引用符、アポストロフィを指定することは困難または不可能でした。さらに、パラメータ値には、値をランフォームに渡す前に特定の変換が適用されました。特に顕著なのは値がアポストロフィで開始および終了する場合で、通常これらのアポストロフィは削除されました。ただし、こうした変換は明確に定義されたものではなく、Web環境とクライアント/サーバー環境の間には差異がありました。

3.3.4.3 現行リリースでの前リリースの動作取得

使用しているアプリケーションが前リリースの動作に依存している場合は、構成ファイルでescapeparams変数の値をFalseに設定するだけで、現行リリースで前リリースの動作を取得できます(この作業はFusion Middleware Controlで実行します)。

以前の動作の取得を選択したアプリケーションに限定する場合は、異なる構成セクションのescapeparams変数に異なる値を指定できます。以前の動作を必要とするアプリケーションでは、escapeparams変数をFalseに設定した構成セクションを指定します。新しい動作を必要とする(または許容する)アプリケーションでは、escapeparams変数をTrueに設定した構成セクションを指定します。

3.3.4.4 テンプレートHTMLファイルの考慮事項

独自のテンプレートHTMLファイルを作成する場合は、次の点に留意してください。

escapeparams変数(%がHTMLデリミタ文字の場合は文字列%escapeparams%)への参照がserverArgsアプレット・パラメータ値の最初の部分に表示され、空白が続くように設定することをお薦めします 例については、付属のbase.htmファイルを参照)。

escapeparams変数への参照が、テンプレートHTMLファイルの他の部分に表示されないよう注意してください。serverArgsアプレット・パラメータの値を引用符ではなくアポストロフィで囲む場合は、テンプレートHTMLファイル内のランフォーム・パラメータの値の内部でアポストロフィをエスケープする(%27)必要があります。引用符にはエスケープ・シーケンスは不要です。

serverArgsアプレット・パラメータ値の先頭からescapeparams変数への参照を省略することが可能です。これにより、構成ファイルでescapeparams変数に指定した値に関係なく、以前のリリースの動作が得られます。

3.3.4.5 静的HTMLページの考慮事項

静的HTMLを使用してランフォーム・エンジンを呼び出し、最新リリースの動作を取得する場合は、特定の手順に従う必要があります。

基本的な規則として、静的HTMLがForms Servletで生成されたHTMLのように見える必要があります。具体的には、serverArgsアプレット・パラメータの値を文字列escapeparams=trueで開始する必要があります(大/小文字の区別なし)。

さらに、serverArgsアプレット・パラメータ値の各name=valueペアの値部分で、表3-4に示すURLエスケープ・シーケンスによって特定の文字を指定する必要があります。

表3-4 静的HTMLページのURLエスケープ・シーケンス

エスケープが必要な文字 URLエスケープ・シーケンス

改行' \n '

%0a

空白' '

%20

引用符' " '

%22

パーセント' % '

%25

アポストロフィ' ' '

%27

左カッコ' ( '

%28

右カッコ' ) '

%29


name=valueペアの値部分に使用されている他の7ビットASCII文字をエスケープすることもできます。

静的HTMLでのserverArgsアプレット・パラメータの書式の例を次に示します。この例は、my formという名前のフォームに関するものです。ここでは、値foo'barがユーザー定義パラメータmyparamに渡されます。

<PARAM NAME="serverArgs" VALUE="escapeparams=true module=my%20form userid=scott/tiger@mydb myparam=foo%27bar">

3.3.5 リスナー・サーブレット管理ページへのアクセス

次のURLにアクセスすると、リスナー・サーブレットのテスト・ページを表示できます。

http://<hostname>:<port>/forms/frmservlet/admin

表示される情報は、初期化パラメータTestModeの値に依存します。このパラメータは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.2/<random_string>/war/WEB-INF /web.xmlファイルで設定します。次に例を示します。

<init-param>
<!-- Display sensitive options on the /admin page ? -->
    <param-name>TestMode</param-name>
    <param-value>true</param-value>
</init-param>

3.4 クライアント・ブラウザのサポート

Oracle Formsアプリケーションは、Oracle Java Plug-inを使用するとWeb上で表示できます。今後のパッチのリリースによっては、他の仮想マシンもサポートできます。

サポートされている最新のプラットフォームなど、クライアント・ブラウザ・サポートの詳細は、Forms Developerのメニューから「ヘルプ」、「OTN上のForms」の順に選択し、クライアント・プラットフォームに関する指示書を参照してください。

OTNでの認定の詳細は、http://www.oracle.com/technetwork/developer-tools/forms/clientsod-forms10gr2-088253.htmlでも確認できます。

3.4.1 構成パラメータとベースHTMLファイルをクライアント・ブラウザに連結する方法

ユーザーがWeb対応のアプリケーションを起動すると(アプリケーションのURLへのリンクをクリックすることで)、Formsサーブレットは次の処理を実行します。

  1. 使用しているブラウザを検出します。

  2. 表3-5に示すように、適切なベースHTMLファイルを選択します。

    表3-5 ベースHTMLファイルの説明

    検出されたブラウザ 使用されるベースHTMLファイル

    Internet Explorer

    basejpi.htm

    Mozilla FireFox 3.0

    basejpi.htm

    その他すべてのブラウザとMacintoshクライアント

    base.htm


  3. ベースHTMLファイル内の変数(%variablename%)が、Formsのservlet.initArgsファイルやformsweb.cfgファイルに指定された適切なパラメータ値や、URLリクエストがある場合はその問合せパラメータの値で置換されます。

  4. HTMLファイルをユーザーのブラウザに送信します。

3.4.2 Mozilla 3.xでのForms Single-Sign On

Mozilla 3.xでFormsとSingle Sign-Onを使用する場合は、OracleサイトでCookieを必ず有効にしておきます。Cookieを有効にするには、次の手順を実行します。

  1. Mozilla Firefoxを開いて「ツール」メニューを選択します。

  2. 「オプション」→「プライバシ」を選択します。

  3. 「サイトから送られてきたCookieを保存する」ボックスを選択します。

    他のブラウザではこの手順を実行する必要はありません。

    Mozillaでのデフォルト・ブラウザ設定の詳細は、http://www.mozilla.comを参照してください。

3.4.3 guiMode構成パラメータ

guiModeパラメータは、FormsアプリケーションのランタイムGUIを制御します。このパラメータをURL内に指定することも、値をformsweb.cfgファイル(Forms構成ファイル)で提供することもできます。guiModeパラメータは、次のGUIコンポーネントの可視性に影響します。

  • クライアントで提供されるデフォルトのWindowsメニューバーの可視性。Forms Builderのフォームにメニューバーが指定されていない場合、実行時にクライアントからデフォルトのメニューバーが提供されます。guiMode値は、クライアントで提供されるこのデフォルトのメニューバーのみに影響します。


    注意:

    guiMode値は、Formsメニュー・モジュール・パラメータがnullに設定されている場合にのみ有効です。フォームに、サーバー指定のメニューバー(Formsのデフォルト・メニューを含む)またはそれに関連付けられたツールバーがある場合は、このパラメータは適用されません。ウィンドウ・バーの場合は、Forms Builderでフォームに指定されたメニューがあっても、このパラメータが適用されます。


  • フォーム内のすべてのウィンドウのタイトル・バーの可視性。このパラメータは、アラート・ウィンドウ、ポップアップ・ウィンドウなどのウィンドウのタイトル・バーには影響しません。

表3-6に、デフォルトのWindowsメニューバーおよびWindowsタイトル・バーに対するguiMode値の影響を示します。デフォルトのguiMode値は0です。表に示した4つの値以外の値は無視されます。この場合、guiModeはデフォルト値に戻ります。

表3-6 guiMode値の影響

guiMode デフォルトのメニューバーが表示されるか ウィンドウのタイトル・バーが表示されるか

0

はい

はい

1

いいえ

はい

2

はい

いいえ

3

いいえ

いいえ



注意:

guiModeが2または3で、ウィンドウのタイトル・バーが見えない場合、ウィンドウを最大化または最小化することはできません。ビルトインを使用してウィンドウを最大化または最小化することは可能ですが、ウィンドウは最小化しないでください。ウィンドウを最小化すると、元に戻すことができなくなるためです。