この章では、Forms ServicesがOracle Fusion Middlewareで実行される仕組み、およびFormsアプリケーションを配布する際の手順について説明します。 また、基本的な構成ファイルについても説明します。インストールの完了後、この章に記載されている情報を使用して、初期構成の変更や必要な変更を行うことができます。
この章には、次の項が含まれています。
この項では、Formsサーブレットを使用して初期のHTMLページを生成することを前提に、Forms ServicesがOracle Fusion Middlewareで実行される仕組みと、構成ファイルが使用される仕組みについて説明します。顧客が即時利用可能なForms URLを引数なしで実行する場合、Formsのバージョン番号情報が表示されたデフォルトのテスト・フォームが表示されます。この情報が表示されない方が望ましい場合、管理者は、使用環境内の(デフォルトの)構成セクションを変更するだけで、別のフォームが指定されるようにできます(または、フォームが一切指定されないようにします。この場合、ユーザーがバージョン番号が含まれるフォームを表示すかわりにそのURLを試みたときに、エラー・メッセージが表示されます)。ここでは、Weblogic Managed Serverがexample.comと呼ばれるコンピュータのポート9001で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。
ユーザーがOracle Forms Servicesアプリケーションを実行すると、次の一連のイベントが発生します。
ユーザーはWebブラウザを起動し、次のようなURLを指定します。
http://example.com:9001/forms/frmservlet?config=myapp&form=hrapp
この例では、実行されるトップ・レベルのフォーム・モジュールはhrappで、使用する構成セクションはmyappです。
Oracle HTTP Serverリスナーはリクエストを受信します。これは、URL内のパス/formsを検索し、WebLogicハンドラ・マッピングに基づいて正しいOracle WebLogic管理対象サーバーにリクエストを転送します。このマッピングは、forms.confで定義されます。
|
注意: WebLogic Serverの前面におけるOracle HTTP Server (OHS)の使用はオプションです。この実行を選択するには、インストール後にforms.confを構成する必要があります。ファイルに含まれる例を適切な設定の例として使用できます。設定を保存したら、ファイルを、他の.confファイルが含まれるOHS構成ファイル・ディレクトリに移動する必要があります。詳細は、第3.2.3.1項「Oracle Forms Servicesを使用したOracle HTTP Serverの有効化」を参照してください |
Oracle WebLogic管理対象サーバーは、/formsをコンテキスト・ルートとするOracle Forms Servicesアプリケーションにこのリクエストをマップします。次に、application.xmlファイルで指定したfrmservletのマッピングを使用して、そのリクエストをFormsサーブレットにマップします。
Oracle WebLogic管理対象サーバーで実行しているFormsサーブレットが、このリクエストを処理します。このサーブレットが実行する処理は次のとおりです。
$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configにあるこのサーブレットの構成ファイル(デフォルトではformsweb.cfg)を開きます。
formsweb.cfgファイルで使用する構成セクションを決定します。この例では、URLには問合せパラメータconfig=myappが含まれているため、[myapp]セクションが使用されます。
使用するベースHTMLまたはbasejnlpファイルを決定します。このときの判断基準は、(a)リクエストを発行しているブラウザ(User-Agent)、(b)ブラウザを実行しているプラットフォーム、(c) formsweb.cfgファイルの各種パラメータの設定です。
ベースHTMLファイルを読み取り、次のように変数を置換した後、コンテンツをHTML (またはJNLP)ページとしてユーザーのWebブラウザに送り返します。
Formsサーブレットは変数(%myParam%など)を検出すると、一致するURL問合せパラメータ(&myParam=xxxなど)を検索し、そのパラメータが見つからないときはformsweb.cfgファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%)はそのパラメータの値で置換されます。
この例では、ベースHTMLファイルにはテキスト%form%が記述されています。このテキストが値hrappに置き換わります。
FormsサーブレットがどのベースHTMLファイルを選択したかに応じて、Webブラウザに送り返されるHTMLページには、Formsアプレット(シン・クライアント)を起動するapplet、object、embedまたはjnlpタグが含まれます。Formsクライアントは、リクエスト・タイプに応じて、Oracle Javaプラグイン、Web StartまたはスタンドアロンJava実行可能ファイルによって提供されるJVM環境内で動作します。
Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。
/forms/javaのweblogic.xmlファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。
注意: Formsアプレット・コードがネットワークを介してロードされるのは、ユーザーがOracle Forms Servicesアプリケーションを最初に実行したとき、または、新しいバージョンのOracle Forms ServicesがWebサーバーにインストールされたときのみです。それ以外の場合は、ローカル・ディスクにあるJavaキャッシュからロードされます。
Oracle Forms Servicesアプレットが実行されると、URL http://example.com:9001/forms/lservletにあるFormsリスナー・サーブレットに接続してFormsセッションを起動します。
Oracle HTTP Serverリスナーはリクエストを受信します。このFormsリスナー・サーブレット用のweb.xmlファイルにあるサーブレット・マッピングにパス/forms/lservletが一致することから、このリクエストをOracle WebLogic管理対象サーバーに転送します。
Formsリスナー・サーブレット(lservlet)は、FormsセッションのFormsランタイム・プロセス(frmweb.exeまたはfrmweb)を起動します。
FormsアプレットとFormsランタイム・プロセス間の通信は、Formsセッションが終了するまでリスナー・サーブレットを介して継続します。
URLの属性値(実行するフォーム名など)がFormsランタイム・プロセスに渡されます。ベースHTMLファイルのserverArgs値にある%form%はhrappに置き換わります。そのため、このランタイム・プロセスはファイルhrapp.fmxのフォームを実行します。
このファイルは、環境ファイル(デフォルトではdefault.env)で定義されたFORMS_PATH環境設定に指定されているディレクトリのいずれかに格納されている必要があります。このディレクトリをformsweb.cfgで指定することもできます(例: form=c:\<path>\myform)。
Formsセッションは、次のいずれかが起きた場合に終了します。
トップ・レベルのフォームが終了した場合(exit_form組込み関数をコールするPL/SQLトリガー・コードなどにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。exit_form(no_validate)を指定している場合は、この指示が表示されずにフォームが終了します。
ユーザーがWebブラウザを終了した場合。この場合、保存されていない更新は失われます。
この項では、Formsアプリケーションの構成に使用する基本ファイルについて説明します。構成の詳細は、第4章「Forms Servicesの構成と管理」を参照してください。
この項は、次の小項目に分かれています。
第3.2.6項「WebUtilの構成ファイルおよびテンプレートHTMLファイル」
|
注意: ファイルの場所は、DOMAIN_HOMEディレクトリに関連して指定されます。Windowsでは、フォワードスラッシュをバックスラッシュに置き換える必要があります。Middlewareホーム、Oracleホーム、Oracleインスタンスなど、使用される用語の詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。 |
Oracle Forms構成ファイルを使用すると、Formsのパラメータを指定できます。これらのファイルは、Oracle Fusion Middleware Controlで管理できます。これらの構成ファイルには次のものが含まれます。
場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config
通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configです。
このファイルにはFormsランタイムの環境設定が含まれています。UNIXおよびLinuxの場合、default.envにはPATHとLD_LIBRARY_PATHが記述されています。
default.envの詳細は、第4章「環境変数の管理」を参照してください。
場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config
通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configです。
このForms構成ファイルには、次の内容が含まれています。
Formsランタイムのコマンドライン・パラメータの値、使用する環境ファイルの名前(envFile設定)。
インストール時に設定するサーブレット構成パラメータのほとんどの設定。変更が必要な場合は、これらのパラメータをカスタマイズできます。
base.htmファイル内の変数(%variablename%)は、formsweb.cfgファイルに指定された適切なパラメータ値によって置換されます。URLリクエストがある場合は、その問合せパラメータの値によって置換されます。
formsweb.cfgファイルのサンプルは、付録C「Forms Web構成ファイル」を参照してください。
formsweb.cfgの詳細は、第4章「Fusion Middleware Controlによるパラメータの構成」を参照してください。
場所: $DOMAIN_HOME//config/fmwconfig/components/FORMS/instances/<FORMS Instance Name>/server/ftrace.cfg
このファイルを使用して、Forms Traceを構成します。Forms Traceは、以前のリリースのFormsで使用されていたForms Runtime Diagnostics (FRD)によって提供されていた機能に代わるものです。Forms Traceは、フォームでの実行パス(たとえば、ユーザーがフォームの使用時に行った手順など)をトレースします。
ftrace.cfgの詳細は、第12章「トレースと診断」を参照してください。
Forms Services Java EEアプリケーションEAR (Enterprise Archive)ファイルformsapp.earは、Oracle Formsの構成時にWLS_FORMS (Oracle WebLogic管理対象サーバー)に配布されます。
これにより、$DOMAIN_HOME /servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<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_12.2.1/<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_12.2.1のサブディレクトリは、Oracle WebLogic Serverのnostageデプロイメント・プロセスで作成されます。これらのディレクトリにはランダムな文字列の名前が割り当てられます。たとえば、e18uoiやwb1h9eなどのディレクトリ名になります。 |
デプロイメント・ディスクリプタ:
application.xmlとweblogic-application.xmlでは、EARファイルの構造が定義されます。
web.xmlでは、FormsサーブレットとFormsリスナー・サーブレット用に、別名frmservletとlservletが定義されます。
weblogic.xmlでは、コンテキスト・パラメータとユーザー定義の仮想ディレクトリ・マッピングを定義します。
この項では、Oracle Forms Services用のOracle HTTP Listenerの構成に使用するファイルについて説明します。
場所: $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconf
forms.confは、Oracle Forms Services用のOracle HTTPリスナーの構成ファイルです。これには、Forms Services関連のディレクティブ(Forms WebLogic管理対象サーバーのハンドラ・マッピングなど)が含まれます。
Oracle Fusion Middleware 12cでは、Oracle HTTP ServerでリクエストをForms管理対象サーバーにルーティングできるようにうするには、インストール後の手順を実行する必要があります。この構成を有効にするために2つのオプションがユーザーに用意されています。
付録E「Oracle Formsのユーティリティおよびスクリプト」で提供されているForms構成ヘルパー・スクリプトを使用し、これにenable_ohsオプションを渡します。
次の第3.2.3.2項「forms.confの編集について」で説明されているように、forms.confを手動で編集します。
forms.confは、Oracle HTTP Serverディレクティブ・ファイルです。Oracle Fusion Middlewareでは、$DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconfのOracle HTTP Server構成ディレクトリにforms.confファイルが含まれる必要があります。
カスタムOracle HTTP Serverディレクティブをforms.confに追加した場合、これが存在するOracle HTTP Serverノードを再起動する必要があります。
Oracle HTTP Serverを構成するには、次のタスクを実行します。
Forms OHSディレクティブ・ファイルforms.confをForms構成ファイル・テンプレート・ディレクトリからOHSインスタンスmoduleconfディレクトリにコピーします
コピー元の場所(Forms層):
$FMW_HOME/forms/templates/config/forms.conf
コピー先の場所(OHS層):
$DOMAIN_HOME/config/fmwconfig/components/OHS/instances/<OHS INSTANCE NAME>/moduleconf/forms.conf
適切な管理対象サーバー・クラスタを指定するか、デフォルト・フォームの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>
ユーザーが追加したディレクティブで参照されるディレクトリが、OHS層からアクセス可能であることを確認します。
管理サーバーを再起動します。
OHS層のOHSインスタンスを再起動します。
|
注意: forms.confを一度設定した後にさらに変更を行うには、Oracle Fusion Middleware Controlを使用します。これにアクセスするには、OHSインスタンスのページ・メニューを使用して「Oracle HTTP Server」→「管理」→「拡張構成」を選択します。「サーバーの詳細構成」ページで、ファイルの選択プルダウン・メニュー内のforms.confを選択します。
|
Registry.datは、Forms Servicesで使用されるデフォルトのフォント、フォント・マッピング、アイコンおよびカスタム色スキーム情報を含んでいるファイルです。
場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config/oracle/forms/registry/Registry.dat
Registry.datの詳細は、第4章「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」を参照してください。
場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server
Oracle Formsアプリケーションを起動するために使用されるHTMLページを生成する場合、次のいずれかがFormsサーブレットによってテンプレートとして使用されます。
base.htm
basejpi.htm
basesaa.txt
base.jnlp
basejpi_jnlp.htm
構成の変更は、これらのファイルを編集するのではなく、Oracle Fusion Middleware Controlを使用してformsweb.cfgファイルで行うことをお薦めします。ベースHTMLファイルを変更するには、ユーザー自身のバージョンを作成し、設定を適切に変更してformsweb.cfgファイルからそのユーザー・バージョンのファイルを参照します。
この項では、実行時にWebUtilを構成するために使用するファイルについて説明します。設計時に使用するWebUtilの詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。WebUtil構成ファイルには次のものが含まれます。
場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server
このファイルには、次のようなWebUtilの構成設定がすべて示されます。
ロギング・オプション
インストール・オプション
ファイルのアップロードおよびダウンロードのオプション
ロギング・エラーやログ・メッセージに対するサーバー・サイドのロギング・オプション
場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server
これは、汎用APPLETタグを使用してWebUtil対応フォームを実行するためのデフォルトのベースHTMLファイルです。
場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server
これは、Javaプラグインを使用してWebUtil対応フォームを実行するためのデフォルトのベースHTMLファイルです。このファイルは、たとえば、UNIX上でFirefoxを使用してWebUtil対応フォームを実行する場合に使用できます。
これは、Java Web Startまたは埋込みJNLPを使用してWebUtil対応フォームを実行するためのデフォルトのbasejnlpファイルです。
場所: $DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/server
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のアクション」を参照してください。
Oracle Fusion Middleware構成ウィザードによって設定されるデフォルトのパラメータを使用して基本フォームをデプロイする手順:
Oracle Forms Developerでアプリケーションを作成し、関連するソース・ファイル(.fmb、.mmb、.pll、.olb)がホストされるアプリケーション・サーバー上の目的の場所にこれらのファイルを保存またはコピーします。
ソース・ファイルは、Forms Developer以外ではオープンできない設計時ファイルです。実行可能ファイル(.fmx、mmx、plx)は、(Forms Compilerを使用して)ソース・ファイルをコンパイルしたときに作成されるランタイム・ファイルで、Webデプロイメントに使用します。
Forms Developerの詳細は、Forms Developerの「ヘルプ」メニューを参照してください。
Forms Compiler (Forms Developerのコンポーネント)を使用して、ソース・ファイルから実行可能ファイルを生成します。コンパイラおよびその場所は、次を参照してください。
UNIXプラットフォームの場合: FORMS_INSTANCE/bin/frmcmp.sh
Microsoft Windowsの場合: ORALCE_HOME\bin\frmcmp.exe
起動時にコンパイラに引数が渡されない場合、グラフィカル・ユーザー・インタフェースの起動が試みられます。Forms Compilerの使用の詳細は、Forms Developer (Forms Builder)ヘルプを参照してください。または、–helpオプションを使用してオプションの引数を表示します。例: frmcmp -help
使用例: frmcmp.sh module=myForm.fmb module_type=form compile_all=yes userid=scott/tiger@orcl
目的のアプリケーション・モジュールにOracle Forms Servicesからアクセスできるようにformsweb.cfgを変更します。このファイルは、Fusion Middleware Controlの「Web構成」ページで編集します。詳細は、第4.2項「Forms Servicesの構成」を参照してください。
表3-1は、form=hrapp.fmxというフォーム・モジュールを持つアプリケーションmy_applicationの構成を示しています。
構成が完了すると、ブラウザのURLに「...?config=my_application」(formsweb.cfgの「Web構成」セクションの名前)と入力することにより、Web上でOracle Forms Servicesモジュールhrapp.fmxへアクセス可能になります。
|
注意: この構成セクションの名前に使用できる文字は、空白以外の英数字のみです。 |
.fmxファイルの場所は、必ずFORMS_PATH環境変数で指定します。
たとえばWindowsでは、.fmxファイルがd:\my_files\applicationsにある場合は、FORMS_PATHにd:\my_files\applicationsと記述します。Windowsの場合、複数の場所を指定するには各ディレクトリ名をセミコロンで区切ります。UNIXとLinuxの場合はコロン(:)で区切ります。その環境ファイルの「環境構成」ページで、この情報を指定します。
環境ファイルを変更するには、Fusion Middleware Controlの「環境構成」ページで環境ファイルを選択し、アプリケーションの必要に応じて環境変数を追加または編集します。たとえば、表3-2に示す環境変数を追加できます。
環境ファイルでこれらの環境変数を指定した場合は、「Web構成」ページを使用して、formsweb.cfgの該当する構成セクションでこの環境ファイルを指定します。
次のように、URLで記述したアプリケーションの名前を入力します。
http://example.com:9001/forms/frmservlet?
exampleはコンピュータのホスト名で、9001はWebLogic Manager Serverによって使用されるポートです
構成セクションを作成した後、config=に続いてその構成セクション名を記述します。この例では、hrapp.fmxにアクセスするためのURLは次のようになります。
http://example.com:9001/forms/frmservlet?config=my_application
Oracle Forms Servicesアプリケーションにパラメータ値を事前定義するには、2つの方法があります。次の方法でパラメータを定義できます。
Fusion Middleware Controlの「Web構成」ページのデフォルト・セクションで、アプリケーション設定を編集します。デフォルトの構成セクションには、Oracle Forms Servicesで使用するデフォルト値が表示されます。
名前を付けたアプリケーションの構成セクションで、他のシステム・パラメータとユーザー・パラメータの値を管理(追加、編集、コピー、削除)します(第3.3.3項「Fusion Middleware Controlでの構成セクションの作成」を参照)。たとえば、myApp用に作成した構成セクションで、表3-3に示すパラメータの追加やその値の変更ができます。
|
注意: 「Web構成」の名前付き構成セクションで指定したパラメータは、デフォルト・セクションの設定をオーバーライドします。 |
|
注意: システム・パラメータは、ユーザー・パラメータとは異なりURLにおいてオーバーライドできません。 |
第3.3.1項「アプリケーションの配布」のステップ2で作成した構成セクションで、Oracle Forms Servicesアプリケーションのパラメータを指定できます。「Web構成」ページのデフォルト・セクションで使用可能なアプリケーションおよびシステム・パラメータを任意で指定できます。
たとえば、lookAndFeelパラメータをoracleの値に設定し、「適用」をクリックすると、アプリケーションのルック・アンド・フィールをOracleのルック・アンド・フィールに設定できます。
また、名前付き構成セクションのデフォルトのパラメータ値をオーバーライドすることもできます。たとえば、アプリケーションへの接続情報をscott/tiger@orclとして事前定義するには、useridのパラメータ値を設定する必要があります。これには、名前を付けた構成セクションでuseridのパラメータ値をscott/tiger@orclに変更します。
編集可能な他のパラメータは、第4章「Forms構成パラメータ」を参照してください。
Oracle Forms ServicesアプリケーションにアクセスするURLにパラメータを直接入力できます。前述の例の場合、構成ファイルにformパラメータを指定するかわりに、URLに次のように入力することもできます。
http://example.com:9001/forms/frmservlet?config=my_application&form=hrapp
アンパサンド(&)を使用すれば、フォームと名前を付けた構成パラメータの組合せをコールすることができます。前述の例では、my_applicationで指定したパラメータ設定を使用して、フォームhrappをコールしています。
ランフォーム・パラメータに渡される値に特殊文字が含まれている場合は、特定の考慮事項が適用されます。この項では、こうした考慮事項について説明し、今回のリリースのデフォルト動作と前リリースのデフォルト動作を比較します。
ランフォーム・パラメータは、テンプレートHTMLファイルのserverArgsアプレット・パラメータで指定されるパラメータです。テンプレートHTMLファイルのserverArgsパラメータで指定された値は、変数の置換後に、コマンドライン・パラメータ文字列と呼ばれることもあります。これは、空白で区切られた一連のname=valueのペアで構成されます。この名前には、英数字またはアンダースコアのみが使用可能です。name=valueペアの値の部分には、任意の文字列を使用できます。
ランフォーム・パラメータの値は、次に示す3つの場所のいずれかで指定できます。
テンプレートHTMLファイル(base.htmなど)のserverArgsパラメータの値。
(1)の変数参照を(直接または再帰的に)置換する、構成ファイル(formsweb.cfgなど)で指定された変数の値。通常、これらの値は、Fusion Middleware Controlを使用して管理します。第4章「Forms Servicesの構成」を参照してください。
(1)または(2)の変数参照を直接置換する、URLの属性値。
(3)では、URL構文規則(ブラウザおよびアプリケーション・サーバーで実行される)により、URLエスケープ・シーケンスとして特定の文字を入力する必要があります(計3文字のうち、%に続く2桁の16進数字は文字のASCII値を表します)。
この要件には、%文字自体が含まれます(%25として入力する必要があります)。さらに、現在Oracle Forms Servicesでは、ブラウザおよびアプリケーション・サーバーでエスケープなしに引用符を入力できる場合でも、引用符('"')は%22として入力する必要があります。
URL構文規則では、(URLエスケープ・シーケンス%20の代替として)空白を+として入力することも許可されています。ただし、otherparams構成パラメータの値では、+は特別に扱われ、ランフォーム・パラメータの値に埋め込まれた空白を示すのとは対象的に、name=valueペアを分割します。
たとえば、ランフォーム・アプリケーションにユーザー・パラメータparam1とparam2が指定されており、これらのパラメータに「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デリミタが使用され、ランフォーム・パラメータの値に%が含まれている場合は、この推奨事項を無視することもできます)。
リリース9.0.4以降の動作は、テンプレートHTMLファイルと構成ファイルのランフォーム・パラメータの値では引用符をエスケープ(%22)する必要がある点を除いて、現行リリースと同じです。
9.0.4より前のリリースでは、テンプレートHTMLファイルや構成ファイルで指定したランフォーム・パラメータの値にはURLエスケープ・シーケンスを使用できませんでした(前述の(1)と(2)の場合)。3つのすべての場合において、特定の特殊文字、特に空白、引用符、アポストロフィを指定することは困難または不可能でした。さらに、パラメータ値には、値をランフォームに渡す前に特定の変換が適用されました。特に顕著なのは値がアポストロフィで開始および終了する場合で、通常これらのアポストロフィは削除されました。ただし、こうした変換は明確に定義されたものではなく、Web環境とクライアント/サーバー環境の間には差異がありました。
使用しているアプリケーションが前リリースの動作に依存している場合は、構成ファイルでescapeparams変数の値をFalseに設定するだけで、現行リリースで前リリースの動作を取得できます(この作業はFusion Middleware Controlで実行します)。
以前の動作の取得を選択したアプリケーションに限定する場合は、異なる構成セクションのescapeparams変数に異なる値を指定できます。以前の動作を必要とするアプリケーションでは、escapeparams変数をFalseに設定した構成セクションを指定します。新しい動作を必要とする(または許容する)アプリケーションでは、escapeparams変数をTrueに設定した構成セクションを指定します。
独自のテンプレートHTMLファイルを作成する場合は、次の点に留意してください。
escapeparams変数(%がHTMLデリミタ文字の場合は文字列%escapeparams%)への参照がserverArgsアプレット・パラメータ値の最初の部分に表示され、空白が続くように設定することをお薦めします。(例については、付属のbase.htmファイルを参照)。
escapeparams変数への参照が、テンプレートHTMLファイルの他の部分に表示されないよう注意してください。serverArgsアプレット・パラメータの値を引用符ではなくアポストロフィで囲む場合は、テンプレートHTMLファイル内のランフォーム・パラメータの値の内部でアポストロフィをエスケープする(%27)必要があります。引用符にはエスケープ・シーケンスは不要です。
serverArgsアプレット・パラメータ値の先頭からescapeparams変数への参照を省略することが可能です。これにより、構成ファイルでescapeparams変数に指定した値に関係なく、以前のリリースの動作が得られます。
静的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">
次のURLにアクセスすると、リスナー・サーブレットのテスト・ページを表示できます。
http://<hostname>:<port>/forms/frmservlet/admin
表示される情報は、初期化パラメータTestModeの値に依存します。このパラメータは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_12.2.1/<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>
次のクライアントの構成が使用可能です。これらの構成を要件に応じて使用できます。
HTMLに埋め込まれたアプレット
デフォルトの構成
SSO、SSOログアウトおよびJavaスクリプト統合に対する完全なサポート
Javaプラグインおよびブラウザが必要
HTMLに埋め込まれたJNLP
SSO、SSOログアウトおよびJavaスクリプト統合に対する完全なサポート
Javaプラグインおよびブラウザが必要
Base64によってクライアント側のhtmlソースでJNLPコードをエンコード
Java Web Start
SSOをサポート(ブラウザを使用して使用する場合)
SSOログアウトまたはJavaスクリプト統合に対するサポートなし
JDKまたはJavaプラグイン(JRE)のインストールが必要
ネイティブの外観でアプリケーションを表示
スタンドアロン(Formsスタンドアロン・ランチャ)
SSO、SSOログアウトまたはJavaスクリプト統合に対するサポートなし
JDKまたはJavaプラグイン(JRE)のインストールが必要
ブラウザは不要
ネイティブの外観でアプリケーションを表示
ページ例の参照可能な場所: http://server:9001/forms/html/fsal.htm
|
注意: これらの各構成の使用方法の例は、Forms Web構成formsweb.cfgを参照してください。 |
クライアント・ブラウザ、Javaバージョン、およびサポートされている最新のプラットフォームの詳細は、次を参照してください。
ユーザーOracle Java Plug-inを使用してOracle Formsアプリケーションを表示できる内容について。
ブラウザからOracle Formsアプリケーションをリクエスト(たとえば、アプリケーションのURLへのリンクをクリック)すると、Formsサーブレットにより、次の処理が行われます。
使用しているブラウザを検出します。
表3-5に示すように、適切なベースHTMLファイルを選択します。
ベースHTMLファイル内の変数(%variablename%)が、Formsのservlet.initArgsファイルやformsweb.cfgファイルに指定された適切なパラメータ値や、URLリクエストがある場合はその問合せパラメータの値で置換されます。
HTMLファイルをユーザーのブラウザに送信します。