ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Forms and Reportsリリース・ノート
11gリリース2(11.1.2.1)
B66167-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

3 Oracle Forms

この章では、Oracle Formsに関連する問題について説明します。内容は次のとおりです。

3.1 一般的な問題と対処方法

この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。

3.1.1 以前のリリースとの下位互換性

Forms 6iからのアップグレードの詳細は、『Oracle Fusion Middleware Forms Servicesデプロイメント・ガイド』の「Oracle Forms Services 11gへのアップグレード」を参照してください。変更された機能と不要になった機能の詳細は、『Oracle Forms Upgrading Oracle Forms 6i to Oracle Forms 11g』を参照してください。

Oracle Forms 10gまたはOracle Forms Services 11gリリース1(11.1.1)からのアップグレードの詳細は、『Oracle Fusion Middlewareアップグレード・プランニング・ガイド』および『Oracle Fusion Middleware Oracle Forms and Reportsアップグレード・ガイド』を参照してください。

Forms 11gR1アプリケーションでコンパイル済の場合は、Forms 11gR2アプリケーションを再コンパイルする必要はありません。11gR1より前のバージョンからアップグレードしたFormsアプリケーションは再コンパイルする必要があります。

3.1.2 Microsoft Windowsの問題および回避方法

この項では、Oracle FormsおよびMicrosoft Windowsに関連する問題について説明します。内容は次のとおりです。

3.1.2.1 JAWSで動作しないショートカット・キー

Forms BuilderをJAWSと組み合せて使用すると、アイテムを作成するために[Ctrl]を押しながら[Insert]を押すショートカット・キーは、機能しません。

この問題を回避するには、メニューのニーモニック・キーを使用します。[Alt]を押しながら[E]を押すと、「編集」メニューが開き、次に[R]を押すと「作成」を選択してアイテムを作成できます。

3.1.2.2 FormsとReportsが異なるインスタンスに存在する場合のReportsの起動

FormsとReportsを異なるインスタンスで構成している場合、シェルでORACLE_HOMEおよびORACLE_INSTANCEの正しい値を設定し、Windowsのショートカット・メニューではなく、シェルからForms Builderを起動します(この操作を行わないと、Forms Builder内からのReports Builderの起動に失敗します)。

3.1.2.3 Oracle FormsでのJAWSおよびJava Access Bridgeの使用

JAWSとJava Access Bridgeは、Oracle Forms 11gにデフォルトでインストールされません。Java Access Bridge 2.0.1をインストールするには、http://java.sun.com/products/accessbridge/のダウンロード手順に従ってください。Oracle Forms Builder用のJAWSスクリプトは、ORACLE_HOME\forms\ScreenReader\にインストールされます。

3.1.2.4 WLS_FORMSを停止して再起動する前に停止する必要のあるdejvm

Oracle WebLogic管理対象サーバーを再起動する前に、そのサーバーにより起動されたすべてのJVMコントローラ・プロセス(dejvm)を停止する必要があります。この操作を行わないと、停止後にWLS_FORMSが再起動しません。

3.1.2.5 レジストリでの2番目のORACLE_INSTANCEの優先使用

Forms Servicesで2つのOracleインスタンスを構成しており、Windowsマシンで単一のOracleホームを使用している場合、2番目のORACLE_INSTANCEFORMS_ORACLE_INSTANCEレジストリ・エントリが優先的に使用されます。Forms Builderコンポーネントは、2番目のORACLE_INSTANCEで構成することをお薦めします。

3.1.2.6 最初にインストールしたFormsをデフォルトで実行できない

Formsの複数のバージョンがインストールされているWindowsマシン上では、最初にインストールしたOracle Formsがデフォルトで実行されません。これは、Fusion MiddlewareをWindowsにインストールすると、新規のORACLE_HOME/binがシステム変数PATHの先頭に追加されるためです。後続のインストールによって、システム変数PATHの先頭にORACLE_HOME/binが追加されます。前にインストールしたバージョンを実行するための回避方法として、システム変数PATHを編集します。使用するORACLE_HOME/binを変数PATHの前に移動します。

3.1.3 Linux/UNIXの問題および回避方法

この項では、Oracle FormsおよびLinux/UNIXに関連する問題について説明します。内容は次のとおりです。

3.1.3.1 シグナル・チェーン機能に必要なLD_PRELOAD設定

JVMバージョン1.5以上でシグナル・チェーン機能が動作するには、default.envLD_PRELOAD設定が必要です。他の環境ファイルを作成または使用する場合、その環境ファイルでのLD_LIBRARY_PATHおよびLD_PRELOADの設定は、default.envでの設定と同じである必要があります。

3.1.3.2 FRM-41214の詳細を確認できるReportsエンジン・ログ

FormsセッションでReportsを実行しようとして、レポートを実行できないというFormsエラー(FRM-41214)が発生した場合、そのエラーの詳細はReportsエンジン・ログを確認してください。

3.2 構成の問題および回避方法

この項では、構成に関する問題およびその回避方法について説明します。内容は次のとおりです。

3.2.1 One-Button-Runの使用時におけるInternet Explorer以外のブラウザのプロキシ設定

Internet Explorer以外のサポートされる任意のブラウザでOne-Button-Runを使用している際にFORBIDDENエラーが発生した場合、127.0.0.1(localhost)がブラウザのプロキシ・設定に存在するかどうかを確認してください。127.0.0.1が例外リストに存在しない場合は、追加します。これにより、ブラウザはプロキシ・サーバーを迂回できます。

3.2.2 WebUtilクライアント・ファイルで可能な宛先ディレクトリの構成

WebUtilによるinstall.syslibライブラリのダウンロードは、Windowsオペレーティング・システムの場合はJREまたはJVMのbinディレクトリを対象に、UNIXオペレーティング・システムの場合はJREのlibディレクトリを対象に行われます。この場所は、webutil.cfgのパラメータinstall.syslib.location.client.<OS> = <Path on client machine>で指定できます(<Path on client machine>は、WebUtilによりクライアントで使用されるライブラリが格納される場所へのパスを表し、絶対パスまたはクライアント・ユーザー・ホームに対する相対パスです)。

3.2.3 異なるライブラリで名前が変更されるwebutil.propertiesファイル

install.syslibライブラリのダウンロード時に、WebUtilでは、webutil.propertiesファイルをクライアント・ユーザー・ホームに作成します。異なるサーバーでクライアントにライブラリをダウンロードして管理できるように、異なるwebutil.propertiesファイルがクライアント側で保持されます。クライアント上のファイルの名前は、webutil.<HOST>.<CONFIG>.propertiesです(HOSTはサーバー・コンピュータの名前で、CONFIGformsweb.cfgの構成セクションの名前です)。

3.2.4 JDK 1.6.0_12の存在するクライアントにWinRunnerもあるとFormsが動作しない問題

WinRunnerがインストールされているクライアント上でJDKバージョン1.6.0_12以上を使用すると、Formsを実行できません。

この問題を回避するには、2つの環境変数_JAVA_OPTIONSおよびJAVA_TOOLS_OPTIONSの名前を変更します。たとえば、これらの名前をtest_JAVA_OPTIONSおよびtest_JAVA_TOOLS_OPTIONSに変更します。これにより、WinRunnerは無効化されますが、Formsは実行できます。

3.2.5 IEのフレーム付きHTMLファイルでJavaScript通信が機能しない問題

file://プロトコルを使用してInternet Explorer 7またはInternet Explorer 8で開かれたフレーム付きHTMLファイルでは、JavaScript通信は機能しません。

この問題を回避するには、フレームのURLでマシン名のかわりにIPアドレスを使用します。たとえば、testform.htmで、次の部分を変更します。

<frame noresize="noresize" 
 src="http://example.domain.com:8888/forms/java/js2frm1.html" name="fr2" 
 frameborder="0"> 
   <frame noresize="noresize" 
 src="http://example.domain.com:8888/forms/frmservlet?play=&record=forms& 
 form=js2frm1&userid=scott/tiger@adt10220" name="fr1" frameborder="0">

次のように変更します。

<frame noresize="noresize" 
 src="http://IP_Address:8888/forms/java/js2frm1.html" name="fr2" 
 frameborder="0"> 
   <frame noresize="noresize" 
 src="http://IP_Address:8888/forms/frmservlet?play=&record=forms&form=js2fr 
 m1&userid=scott/tiger@adt10220" name="fr1" frameborder="0">

3.2.6 Safari 5ブラウザでFormsアプリケーションをコールするJavaScriptイベントが機能しない問題

WindowsのSafari 5ブラウザでJavaScriptをFormsアプリケーションと統合して使用する場合、Formsからブラウザ上で稼働するJavaScriptへの通信は機能しますが、JavaScriptからのアプレットのコールは機能しません。

回避方法として、次の手順を実行します。

  1. base.htmを使用していることを確認します。

  2. base.htmで、<APPLET>タグをラップする<NOSCRIPT></NOSCRIPT>タグを削除します。

3.2.7 Forms 11gR2アプリケーションでのJACOBバージョン1.14.3のサポート

実行時にWebutilを使用して構成された場合、Oracle Forms 11gR2はクライアント側のOLE統合を実行するためにJACOBバージョン1.14.3をサポートします。このバージョンのJACOBは、Oracle Formsの以前のリリースでサポートされたバージョンとは異なることに注意してください。

JACOBは、JavaからのCOMオートメーション・コンポーネントの呼出しを可能にするJAVA-COMブリッジです。これは、JNIを使用してCOMライブラリにネイティブ・コールを行います。JACOBは、32ビットおよび64ビットのJVMをサポートするx86およびx64環境で動作します。

3.2.8 EM内で「スケジュール事前開始」ページに移動する際の問題

Oracle Enterprise Manager (EM)で「スケジュール事前開始」ページに移動しようとすると次の問題が発生します。

  • 個別にデプロイされたアプリケーションの「スケジュール事前開始」リンクは予期しない方法で動作します。FormsホームページのFormsデプロイメント・テーブルには、個別にデプロイされたアプリケーションがすべてリストされます。個別にデプロイされたいずれのアプリケーションの「スケジュール事前開始」リンクから「スケジュール事前開始」ページに移動しても、そのページでは、個別にデプロイされたアプリケーションの事前開始スケジュールの表示に失敗します。そのかわり、「スケジュール事前開始」ページには、デフォルト・アプリケーションの事前開始スケジュールが常に表示されます。

3.3 ドキュメントの訂正箇所

この項では、ドキュメントの訂正箇所を示します。内容は次のとおりです。

3.3.1 セキュア・モードでのユーザーIDの引渡し

セキュア・モードでのユーザーIDの引渡しに関する次の情報は、Oracle Forms Builderオンライン・ヘルプに追加する必要があります。

Formsコンパイラ(frmcmpまたはfrmcmp_batch)を使用する際に引数としてユーザーIDを渡すと、セキュリティ上のリスクを伴う可能性があります。コンパイラでは、すでに使用可能な対話式ダイアログ・モードに加えて、標準入力による接続文字列も受け入れられます。ユーザーIDをセキュア・モードで渡すには、次の手順を実行します。

  1. 環境変数FORMS_STDIN_PASSWORDを1に設定します。

  2. 接続文字列を入力せずにコンパイラを実行します。コンパイラの開始後に接続文字列を入力します。

  3. リダイレクトを使用してコンパイラを実行し、パスワードをコンパイラに渡します。(これは特に、1スクリプトで複数のFormsをコンパイルする際に役立ちます。)次に例を示します。

        #!/bin/sh
         echo "Enter userid"
         read -s myuserid
         for i in 'ls *.fmb'
         do
         echo Compiling Form $i ....
         frmcmp_batch.sh batch=yes module=$i module_type=form compile_all=yes <<<
              "$myuserid"
         done
    

このスクリプトはパスワード保護のためのサンプルであり、一部のプラットフォームや構成では、セキュリティの脆弱性は解決しないことがあります。

3.3.2 Oracle Real User Insight(RUEI)の拡張機能

Oracle Forms Builderオンライン・ヘルプに、次の情報を追加する必要があります。

Oracle Real User Experience Insight(RUEI)はOracle Fusion Middlewareの機能であり、非侵入的に監視を行います。これにより、ユーザーによるアプリケーションの操作内容を理解することができます。Oracle Forms 11gリリース2には、RUEIのサポートを拡張する機能が追加されています。MESSAGEビルトインのuser_responseパラメータに、有効な値として2つの定数が新しく追加されました。これらは、RUEI_BEGINおよびRUEI_ENDです。

新しく定義された定数のいずれかを使用してFormsサーバーがMESSAGEビルトインを処理すると、Formsサーバーからクライアントにメッセージが送信されるため、メッセージに含まれる情報をRUEIに記録できます。ただし、Formsクライアントは、エンド・ユーザーに対してこのメッセージを表示しません。このため、新しい定数を使用した場合は、エンド・ユーザーの操作性を変更することなく、RUEIによって論理演算の詳細が提供されます。次に例を示します。

MESSAGE('my message1', RUEI_BEGIN);

...PL/SQLコード...

MESSAGE('my message1' RUEI_END);

ここで、my message1はクライアントに表示されませんが、アプリケーションのパフォーマンスを確認するためにRUEIを使用しているユーザーは、これらに囲まれたPL/SQLコードの実行にかかった時間を理解できます。

また、RUEIユーザーの操作性を拡張する目的で環境変数FORMS_RUEI_SEND_FORM_NAMEを設定すると、フォームに作成する各ウィンドウについて、フォームのモジュール名がFormsサーバーからクライアントに送信されるため、RUEIは特定のウィンドウとそのコンテンツを特定のフォームに容易に関連付けることができます。

3.3.3 項目内に入力できる文字数に影響を与える変更とその対処方法

Oracle Forms Builderオンライン・ヘルプに、次の情報を追加する必要があります。

  1. Form Builder (frmbld)を使用してフォームが作成されると、項目のプロパティ「問合せ長」のデフォルト値は0になります。その後フォームが11g以前のリリースでコンパイルされると、この値(0)によって、「問合せ長」のデフォルト値が「最大長」プロパティの値になります。Oracle Forms 11gでは、「問合せ長」のデフォルト値が、「最大長」プロパティの値に2を加算した値になります。以前のリリースの動作に戻す場合は、フォームのコンパイル時に環境変数FORMS_QUERY_LENGTH_DELTAを'0'に設定する必要があります。

  2. DATE書式マスクによって、テキスト項目またはコンボ・ボックスに入力できる文字数が決まります。通常、この数は出力書式マスクおよび許容されるすべての入力書式マスクに必要な最大文字数になります。コンボ・ボックスまたは書式マスクが設定されていないテキスト項目に対して、入力書式マスクと出力書式マスクがどのように選択されるかについては、日付用の書式要素に関する項を参照してください。FORMS_USER_DATE_FORMATまたはFORMS_USER_DATETIME_FORMAT環境変数では、複数の入力書式マスクが指定される場合があります。また、Oracle Forms Builderオンライン・ヘルプに含まれるSQLリファレンスの書式モデルに関する項で、文字列から日付への変換規則の説明に記載されているとおり、FXを含まないどの入力書式マスクに対しても、代替書式マスクを使用できます。

    前述の説明に含まれる規則には、例外が1つあります。文字列から日付への変換規則の説明に記載されている動作では、数字の月(MM形式のマスク要素)または省略形の月(MON形式のマスク要素)のかわりに、月のスペル全体を入力することも許可されます。ただしこの場合、テキスト項目またはコンボ・ボックスに入力できる文字数は、省略形の月のみを入力できる長さになります。

    11gR1以前のリリースでは、入力DATE書式マスクは考慮されません。10gR2 (10.1.2)では、エンド・ユーザーがDATE項目に入力できる文字数は、出力書式マスクによってのみ決まります。Forms 6i (6.0.8)では、DATE項目の「最大長」プロパティも考慮されます。

対処方法

前述の説明に含まれる動作の変更は、DATE項目のAuto-Skipプロパティを設定したユーザーに影響を与える場合があります。このリリースでは、エンド・ユーザーがより多くの文字を特定のDATE項目に入力できる場合があります。この場合、自動スキップは11gR1以前とは異なり発生しません。自動スキップを確実に発生させるには、項目に使用する書式マスクに、FX修飾子をFXYYYY/MM/DDのように追加します。項目固有の書式マスクがない場合(つまり、項目のプロパティ・パレットまたはプログラムに書式マスクが設定されていない場合)、項目の書式マスクは環境変数から取得されます。FORMS_USER_DATE_FORMATおよびFORMS_USER_DATETIME_FORMAT環境変数は、DATE書式マスクに影響を与える可能性があるどのNLS環境変数よりも優先されるため、これらの変数を使用することをお薦めします。

FX修飾子を指定すると、SQLリファレンスの書式モデルに関する項で、文字列から日付への変換規則の説明に記載されている、代替書式マスクが許可されなくなります。また、FORMS_USER_DATE_FORMATおよびFORMS_USER_DATETIME_FORMAT環境変数では、代替書式マスクを縦線で区切って明示的に指定できます。たとえば、FXDD-MON-YYYY|FXMON-DD-YYYYのように指定します。FORMS_OUTPUT_DATE_FORMATおよびFORMS_OUTPUT_DATETIME_FORMAT環境変数が設定されていない場合、出力書式マスクは、FORMS_USER_DATE_FORMATおよびFORMS_USER_DATETIME_FORMAT環境変数のそれぞれに指定された最初の書式マスクから取得されます。