Oracle Applications開発者ガイド リリース12 E06048-01 | 目次 | 前へ | 次へ |
Oracle Reportsのレポートを作成してOracle Application Object Libraryと統合し、フォームから、または標準要求発行によって、コンカレント・プログラムとして実行できます。
この章では、Oracle Reports実行ファイルはappsrwrun.shとして引用されています。Oracle Reports実行ファイルの名前は、使用しているOracle Reportsのバージョンによって異なる場合があります。
オプションとして、動的通貨書式設定などのOracle Application Object Libraryユーザー・イグジットを、Oracle Reportsプログラムで使用することもできます。
Oracle Reportsはコンカレント・マネージャにより、キャラクタ・モードまたはビットマップ・モードのいずれかで指定されているモードで実行されます。また、レポート出力の方向やページ・サイズも指定できます。
この章の終わりに、Oracle Reportsプログラムのトラブルシューティング・ガイドが掲載されています。
Oracle Applicationsのほとんどのレポートは、コンカレント・マネージャからコンカレント処理として起動されます。UNIXシステムの多くでは、コンカレント・マネージャはそれが起動したシェルからの環境変数を継承します。その後、レポートはこの環境から実行されます。
Oracle Reportsプログラムに対し、コンカレント・マネージャはレポート説明ファイルで実行ファイルappsrwrun.shを実行します。この実行ファイルには、Oracle Applicationsユーザー・イグジットが含まれています。Oracle Reportsプログラムがレポート出力を生成する場合、適切な印刷ドライバが定義されていれば、プログラムの完了後にコンカレント・マネージャから自動でレポート出力ファイルを印刷できます。
レポートを実行する直前に、コンカレント・マネージャによっていくつかの値が環境変数$REPORTS_PATHの前に動的に付加されます。次のものはその例です。
REPORTS_PATH = $[PROD]_TOP/$APPLPLS:$[PROD]_TOP/$APPLREP
:$[PROD]_TOP/$APPLREP/LANGDIR
:$AU_TOP/$APPLPLS:$REPORTS_PATH
コンカレント・マネージャがレポートを実行する前に、PL/SQLライブラリが$[PROD]_TOP/$APPLPLSに、外部問合せのようなその他のレポート・オブジェクトや定型挿入文テキストなどが$[PROD]_TOP/$APPLREPに、共有ライブラリが$AU_TOP/$APPLPLS内のREPORTS_PATHに配置されます。$[PROD]_TOPはレポートを所有しているアプリケーションのベースパスで、LANGDIRはUSやFRなど特定の言語のためのディレクトリです。
インストール時に設定されるAPPLSYS.envでは、REPORTS_PATHが$AU_TOP/$APPLPLSに設定されています。これを変更して、カスタマイズしたライブラリを含めることもできます。
関連項目: 『Oracle Applications概要』
コンカレント・プログラムをOracle Reportsのビットマップ・バージョンで定義するには、「コンカレント・プログラムの定義」フォームの「出力タイプ」ポップリストでPostScript、HTMLまたはPDFのいずれか適切なものを選択します。
ORIENTATIONパラメータまたはトークンを渡して、ビットマップ化されたレポートの方向を制御できます。たとえば、横方向にレポートを生成するには、「実行オプション」で次のオプションを指定します。
ORIENTATION=LANDSCAPE
実行オプションの値の前後には複数の空白を入れないでください。パラメータは1つの空白のみで区切る必要があります。PORTRAITを使用すると、縦方向に指定できます。
生成する出力のディメンションをPAGESIZEパラメータで制御できます。「オプション」フィールドに<width>x<height>と指定すると、レポート定義で指定された値より優先されます。たとえば、次のように指定します。
ORIENTATION=LANDSCAPE PAGESIZE=8x11.5
幅および高さの単位は、Oracle Reportsの定義によって決定されます。単位は、Oracle Reportsのメニューの「レポート」=>「グローバル・プロパティ」=>「単位」で設定します。
PAGESIZEパラメータで指定したページ・サイズがレポートの設計より小さい場合は、「REP-1212」エラーが発生し、レポートは実行されません。
コンカレント・マネージャはトークンを使用してOracle Reportsプログラムにプログラム引数を渡すため、順序は問題ではありませんが、メンテナンスしやすくするために、プログラムをコールして引数を渡すときに指定するのと同じ順序で引数を受け取るようにプログラムを作成します。
Oracle Reportsプログラム・パラメータはNULL値を予期していません。したがって、コンカレント・マネージャからプログラムへNULL値を渡すことはできません。
Oracle Reportsプログラムの実装には、2つの方法かあります。
Oracle Reportsプログラムを標準要求発行によって使用するようにする場合、「コンカレント・プログラム」フォームの「SRSで使用」チェック・ボックスを選択し、コンカレント・プログラム・パラメータ・ブロックで引数を定義します。Oracle System Administrationを使用してプログラムを適切なレポート・セキュリティ・グループに追加すると、プログラムを「要求の発行」フォームで使用できるようになります。
さらに、「要求の発行」フォーム以外のフォームからもFND_REQUEST.SUBMIT_ REQUESTを使用してプログラムをコールする場合には、引数のための値を、それを登録した順序で入力します。「要求の発行」フォームまたはFND_REQUESTからプログラムが発行されると、コンカレント・マネージャによって、引数の登録時に定義したトークンが入力した値に自動的に追加されます。コンカレント・マネージャはトークン化された引数(token1=parameter1、token2=parameter2など)をOracle Reportsプログラムに渡します。この場合、各パラメータ値は、関連付けられているトークンの長さを除き、240文字の長さまで可能です。
標準要求発行からOracle Reportsプログラムを使用しないようにする場合は、フォームからのFND_REQUESTコールでOracle Reportsプログラムにトークンを渡します。この場合は、「コンカレント・プログラム」フォームの「SRSで使用」チェック・ボックスの選択を解除します。フォームの各引数TOKEN =parameterは、トークン名を含め最長で240文字に収まるように注意します。
プログラムに適切なコールを含めると、Oracle Application Object Libraryで、ユーザー・プロファイル情報にアクセスしたり、Oracle Reportsプログラムからユーザー・イグジットを実行できます。また、これらのOracle Application Object Libraryコールによって、レポートが自動的に正しい組織(複数の組織または「複数組織」インストールの場合)にアクセスできるようになります。
プロファイル値、複数組織またはOracle Applicationsユーザー・イグジットにアクセスするには、かつプログラムをコンカレント処理のみで使用するには、Oracle Reportsプログラムでコールする最初のユーザー・イグジットと最後のユーザー・イグジットを、それぞれFND SRWINITおよびFND SRWEXITとする必要があります。
FND SRWINITによりプロファイル・オプション値が設定され、それによってOracle Application Object Libraryユーザー・イグジットがOracle Reportsプログラムからのコールを受け取るようになります。FND SRWEXITが、Oracle Application Object Libraryユーザー・イグジットに割り当てられたすべてのメモリーを適切に解放します。プログラムで正しくFND SRWINITおよびFND SRWEXITをコールするには、次の手順に従います。
警告: Oracle Application Object LibraryおよびOracle Reportsの今後のリリースでは、FND SRWINITおよびFND SRWEXITへのアクセス手順がより簡略化される可能性があります。オラクル社は、これらの手順についてサポートを打ち切る権利を保持しています。Oracle ReportsプログラムとOracle Application Object Libraryとの統合に次の手順を使用する場合は、将来的に別の統合手順に変わることを念頭に置いてください。
字句パラメータP_CONC_REQUEST_IDを数値データ型で作成します。コンカレント・マネージャは、このパラメータを使用するレポートにコンカレント要求IDを渡します。
Before ReportトリガーでFND SRWINITをコールします。
After ReportトリガーでFND SRWEXITをコールします。
FND SRWINITとFND SRWEXITに加え、これらの統合手順でいくつかのOracle Application Object Libraryユーザー・イグジットをコールして、ユーザー・プロファイル値にアクセスしたり、Oracle Reportsプログラムで計算を実行したりできます。
関連項目: 『Oracle Applicationsフレックスフィールド・ガイド』
Oracle Reportsプログラムからは、これらのユーザー・イグジットと同様、ユーザー・プロファイル・ルーチンなどの多くのOracle Applications PL/SQLルーチンをコールできることに注意してください。通常は、可能なかぎりユーザー・イグジットではなくPL/SQLルーチンを使用します。
Oracle ReportsプログラムからのOracle Applicationsユーザー・イグジットのコールをテストするには、オペレーティング・システムからappsrwrun.shを実行します。
Oracle Reportsで使用可能なユーザー・イグジットは次のとおりです。
FND SRWINIT
FND SRWEXIT
FND FORMAT_CURRENCY
FND FLEXIDVAL
FND FLEXSQL
関連項目: 『Oracle Applicationsフレックスフィールド・ガイド』
FND SRWINITによりプロファイル・オプション値が設定され、Oracle ReportsプログラムからコールされたことをOracle Application Object Libraryユーザー・イグジットが検出できるようになります。さらに、FND SRWINITによって、レポートが常に正しい組織を使用するようになります。また、FND SRWEXITは、Oracle Application Object Libraryユーザー・イグジットに割り当てられたすべてのメモリーを適切に解放します。
これらのユーザー・イグジットによって、レポート内のフレックスフィールドが使用可能になります。フレックスフィールドは、『Oracle Applicationsフレックスフィールド・ガイド』で説明されています。
通貨書式設定サポートは、関連付けられている通貨に応じて数値をフォーマットするための、フレキシブルで一貫した手段を提供します。通貨の値は、ユーザーの国に対応した適切な3桁区切りと基数文字(小数点)で表示されます。値にプラスおよびマイナスの記号を表示するかどうかも選択できます。
表示される通貨の値は、明示的に指定しないかぎり、四捨五入や切り捨てが行われることはありません。フォーマット後の数値(3桁区切りを含む数値)が出力フィールドに収まらない場合は、3桁区切りなしで数値が表示されます。それでもまだフィールドに対し長すぎる場合は、フィールド内にアスタリスク記号(***)が表示され、数値が長すぎることを警告します。
単一通貨を使用するレポート・リージョン(たとえば、USドルでの金額)のサポート、および混合通貨を使用するレポート・リージョン(たとえば、USドルおよび日本円での金額)のサポートは、どちらも同じ方法で追加できます。ただし、混合通貨で金額をレポートする場合、特別な引数を含めて、異なる通貨型をすべて1つの標準点(通常は、最も精度の高い通貨の精度)に揃えることを指定します。この精度はプロファイル・オプションで定義するか、レポートの実行時に設定します。
単一の通貨タイプに基づくレポートでは、通貨金額は次の例のように基数文字を揃えて表示されます。
Currency Value Code
-------------- ----
120,300.00 USD
-4,201.23 USD
or
120,300.00 USD
(4,201.23) USD
or
120,300.00+ USD
-4,201.23 USD
括弧などのように通貨金額の右にマイナスまたはプラスの記号が表示されるようにユーザーが選択している場合は、その値は右揃えではなく、記号の分だけ左に寄るかたちで表示されます。
混合通貨レポートでは、通貨金額は基数文字(JPYのように小数桁のない通貨では暗黙的な基数)に揃えて表示されます。
Currency Value Code
-------------- ----
300.00 USD
105.250 DNR
1,000 JPY
-24,000.34 FRF
FND FORMAT_CURRENCYユーザー・イグジットをコールして、Currency Valueの列の書式をフォーマットします。この混合通貨レポートでは、最小精度(ユーザー・イグジットのMINIMUM_PRECISIONトークンで指定)は3に設定されています。
このユーザー・イグジットは、実際の通貨金額、標準精度、値が混合通貨リージョンのものかどうか、プラスおよびマイナスの書式のプロファイル・オプション、サイトの場所(国)に基づいて、通貨金額を動的に書式設定します。サイトの場所により、通貨金額の表示に使用される3桁区切りや基数文字が決まります。3桁区切りを表示するかどうかは、追加のプロファイルで指定します。
特定の通貨の標準精度、拡張精度、最小精度は、「通貨」ウィンドウで設定します。
通貨の値をデータベースからOracle Reportsの列に取り込みます。別のOracle Reports列を、FORMAT_CURRENCYユーザー・イグジットを実行して通貨の値をフォーマットするCHAR型の計算式列として定義します。表示フィールドにこの計算式列をソースとして割り当て、フォーマットされた数値がこのフィールドに自動的にコピーされ、表示されるようにします。
関連項目: 『Oracle General Ledgerユーザーズ・ガイド』
FND FORMAT_CURRENCY
CODE=":column containing currency code"
DISPLAY_WIDTH="field width for display"
AMOUNT=":source column name"
DISPLAY=":display column name"
[MINIMUM_PRECISION=":P_MIN_PRECISION"]
[PRECISION="{STANDARD|EXTENDED}"]
[DISPLAY_SCALING_FACTOR="":P_SCALING_FACTOR"]
変数 | 説明 |
---|---|
CODE | 金額の通貨コードがある列を指定します。この列のデータ型はCHARACTERです。 |
DISPLAY_ WIDTH | フォーマットされた金額を表示するフィールドの幅を指定します。 |
AMOUNT | データベースから取得した金額を格納する列の名前を指定します。この金額のデータ型はNUMBERです。 |
DISPLAY | フォーマットした値を表示する列の名前を指定します。この列のデータ型はCHARACTERです。 |
MINIMUM_ PRECISION | このレポート・リージョンで使用されるすべての通貨を揃える精度を指定します。混合通貨のレポート・リージョンでは、MINIMUM_PRECISIONトークンを指定して、判読しやすいようにすべての通貨の値を基数文字で揃えて表示します。レポートの発行時に入力パラメータを設定してレポートを調整し、個々のレポート出力を目的の最小精度にするか、プロファイル・オプションCURRENCY:MIXED_PRECISION(通貨: 混合通貨精度)で設定されたデフォルトを受け入れることができます。レポートの発行で値をレポート引数として渡す必要があります。この字句の名前にはP_MIN_PRECISIONを使用します。 |
PRECISION | STANDARDと指定すると、標準精度が使用されます。EXTENDEDと指定すると、数値をフォーマットするために通貨の拡張精度が使用されます。 |
DISPLAY_ SCALING_ FACTOR | オプションとして、その列内の金額に適用するスケーリング・ファクタを指定できます。このトークンを指定しないか、トークンがマイナスの場合には、位取りは実行されません。この字句パラメータの名前にはP_SCALING_FACTORを使用します。
重要: トークン値では、列名と字句パラメータの前にコロン「:」を入れます。これは、トークンの値が列または字句パラメータから取得されたことを示します。このコロンがない場合、二重引用符内にある値そのものが使用されます。たとえば、CODE=":C_CODE"は、通貨コードが列CODEから取得されることを意味し、CODE="C_CODE"は通貨コードがC_CODEであることを意味します。 |
レポートの発行時に、混合通貨リージョンの各レポートで、混合通貨精度プロファイル・オプションのデフォルト設定を上書きできます。この値を受け入れるレポート引数を定義します。
値を常に明示的に設定する必要がないように、この引数のデフォルト値はプロファイル・オプションCURRENCY:MIXED_PRECISION(通貨: 混合複数通貨精度)とします。
次の例は、レポートが米国で実行されたと仮定した場合の、ユーザー・イグジットを使用して表示される様々な入力値と通貨金額です(括弧で囲まれているのはマイナスの金額です)。
Item Code Input Number Output Field Notes
---- ---- ----------------- --------------- -----
01 USD 123456.76 123,456.76
02 USD 156.7 156.70
03 USD 12345 12,345.00
04 BHD 123456.764 123,456.764
05 JPY 12345676 12,345,676
06 BHD 12345.768 12,345.768
07 BHD -12345.768 (12,345.768)
08 BHD 123456.768 123,456.768
09 BHD -123456.768 (123,456.768)
10 BHD 1234567.768 1,234,567.768
11 BHD -1234567.768 (1,234,567.768)
12 BHD 12345678.768 12,345,678.768
13 BHD -12345678.768 (12345678.768) [1]
14 BHD 123456789.768 123,456,789.768 [2]
15 BHD -123456789.768 (123456789.768)
16 BHD 1234567890.768 1234567890.768
17 BHD -1234567890.768 *************** [3]
18 BHD 12345678901.768 12345678901.768 [1,2]
19 BHD -12345678901.768 *************** [3]
20 BHD 123456789012.768 *************** [3] 21 USD 123456.765 123,456.765
22 USD 123456.7654 123,456.7654 [2]
23 USD 123456.76543 123,456.76543 [2,4]
Code Name Precision
USD US dollars 2
BHD Bahraini dinars 3
JPY Japanese yen 0
[1] - Thousands indicators are stripped
[2] - Digit occupies space normally reserved for
positive or negative indicator
[3] - Value cannot fit in the field: overflow
condition
[4] - Radix is shifted to the left due to the precision
of the number exceeding MINIMUM_PRECISION
入力数値の精度が通貨の精度より低い場合は、通貨の精度と一致するように数字にゼロ(0)が付加されます。
入力数値の精度が通貨の精度より高い場合は、数字の基数が列の他の通貨金額とずれて表示されます。
右側にプラスまたはマイナスの書式文字を表示するための1桁のスペースが割当済の場合で(たとえば、マイナスの数字を表示するプロファイル・オプションとして「( )」または「<>」を設定)、現在の数字がそのスペースを使用していないと(数字がプラスの数の場合)、そのスペースが使用されます。それでも足りない場合は、すべての桁が表示されるように数字が左にシフトされます。
フォーマットされた数字がDISPLAY_WIDTHに入りきらないときは、DISPLAY_WIDTH内に収めるためにユーザー・イグジットによって3桁区切りが取り去られます。この場合も、金額の表示は整列しない可能性があります。それでも数字が範囲内に収まりきらないと、フィールドにアスタリスクが出力され、値が長すぎることが示されます。
デフォルトでは、通貨の値は表示の際に四捨五入も切捨てもされません。ただし、DISPLAY_SCALING_FACTORトークンで明示的に指定した場合は、その値を数値で位取りを実行できます。
トークンMINIMUM_PRECISION=":P_MIN_PRECISION"(ここでは字句引数は3として指定)およびDISPLAY_WIDTH="15"はすべての項目に適用されます。
項目1から5では、MINIMUM_PRECISIONが3の混合通貨リージョンで、様々な通貨金額がどのように表示されるかがわかります。すべての値が基数文字で整列しています。
項目6から20では、桁数が漸次増えるにつれ、プラスおよびマイナスの値がどのように表示されるかがわかります(DISPLAY_WIDTHは定数15)。フォーマットされた値がDISPLAY_WIDTHを超えると、項目13、15、16および18のように、3桁区切りが除去されます。未フォーマットの値がDISPLAY_WIDTHを超えると、項目17、19および20のように、アスタリスクが表示されて、長さが超過していることが示されます。また、プラスの値では、通常はマイナスの記号インディケータのために留保してある右のスペースまで位置がシフトしていることに注目してください。
項目21から23では、MINIMUM_PRECISIONを超えた値の表示例が示されています。マイナスのインディケータが右のスペースを使用するので、プラスの値はMINIMUM_ PRECISION+1を超えてから、左にシフトします。
次のレポートには、混合通貨の値が表示されるレポートで、FND FORMAT_CURRENCYユーザー・イグジットが異なる通貨の金額書式をそれぞれどのようにフォーマットするかが示されています。この項では、このようなレポートの作成方法を説明します。
基数文字および3桁区切りについての情報は、ユーザーの所在地によって決まります。通貨の値のマイナスおよびプラスの表示については、2つのプロファイル・オプションによって決定されます。つまり、レポートは、ユーザーの所在地およびプロファイル・オプションの値セットに基づいて、それぞれ異なる表示となります。
次のレポートのうち1つはアメリカ国内のユーザーが、もう1つはドイツ国内のユーザーが実行したもので、それぞれ異なる表示となっています。ドイツのレポートとアメリカのレポートでは、基数文字と3桁区切りが入れ替わっています。マイナスの表示については、例ではマナマとシアトルが赤字となってますが、アメリカのレポートではユーザーの作業環境に応じて括弧( )または角括弧<>で表されていたものが、ドイツのレポートではマイナスの数字で表示されています。
設定:
地域からの情報:
3桁区切り: 「,」(カンマ)
基数文字: 「.」(小数点)
プロファイル・オプション設定:
マイナスの書式: ( )
最小精度: 3
3桁区切りの表示: あり
Net Income for January 2008
---------------------------
Office Net Income Currency
------ --------------- --------
Boston 12,345.00 USD
Chicago 123,456.76 USD
Manama (23,456.764) BHD
Isa Town 12,345,678.766 BHD
Seattle (12,345.50) USD
Tokyo 12,345,676 JPY
設定:
地域からの情報:
3桁区切り: 「.」(小数点)
基数文字: 「,」(カンマ)
プロファイル・オプション設定:
マイナスの書式: -XXX
最小精度: 3
3桁区切りの表示: あり
Net Income for January 2008
---------------------------
Office Net Income Currency
------ --------------- --------
Boston 12.345,00 USD
Chicago 123.456,76 USD
Manama -23.456,764 BHD
Isa Town 12.345.678,766 BHD
Seattle -12.345,50 USD
Tokyo 12.345.676 JPY
最初に、Oracle Reportsパラメータ画面ですべてのパラメータを定義します。これらのパラメータをユーザー・イグジット・コールおよびSQL文で使用します。
Name: P_CONC_REQUEST_ID
Data Data Type: NUMBER
Width: 15
Initial Value: 0
この字句パラメータは常に作成します。「FND SRWINIT」は、このコンカレント要求についての情報を取得するためにこのパラメータを使用します。
Name: P_MIN_PRECISION
Data Type: NUMBER
Width: 2
Initial Value:
FND FORMAT_CURRENCYユーザー・イグジット・コールでこの字句パラメータを参照します。
FND SRWINITをコールします。
FND SRWINITは、次のように、常にレポート・トリガーの前にコールします。
SRW.USER_EXIT('FND SRWINIT');
このユーザー・イグジットはプロファイル・オプションおよびその他のAOL機能で使用する情報を設定します。
FND SRWEXITは、次のように、常にレポート・トリガーの後にコールします。
SRW.USER_EXIT('FND SRWEXIT');
このユーザー・イグジットによって、その他のAOLイグジットに割り当てられているメモリーがすべて解放されます。
通貨コード問合せを作成します。
表から通貨コードと通貨金額を選択する問合せを作成します。この例では次のようにします。
SELECT OFFICE,
SUM(AMOUNT) C_INCOME,
CURRENCY_CODE C_CURRENCY
FROM OFFICE_INCOME
WHERE TRANSACTION_DATE = '01/92'
ORDER BY BY OFFICE
通貨コールのための列を作成します。
ユーザー・イグジット(FND FORMAT_CURRENCY)コールを含む列(C_NET_INCOME)を作成します。これは、数字の書式をフォーマットして表示する計算式列です。ユーザー・イグジット・コールは次のようになります。
SRW.REFERENCE(:C_CURRENCY);
SRW.REFERENCE(:C_INCOME);
SRW.USER_EXIT('FND FORMAT_CURRENCY
CODE=":C_CURRENCY"
DISPLAY_WIDTH="15"
AMOUNT=":C_INCOME"
DISPLAY=":C_NET_INCOME"
MINIMUM_PRECISION=":P_MIN_PRECISION"');
RETURN(:C_NET_INCOME);
ヒント: ユーザー・イグジットのデータ取得のためのソースとして使用されるソースの列/パラメータを常に参照するようにします。これにより、確実にこの列/パラメータの値が最新の値となり、前述のようにSRW.REFERENCEコールによって達成されるようになります。
ここで、通貨コードを含む列名はC_CURRENCYであり、フォーマットされた金額のフィールドの幅は15です。さらに、ソース列はC_INCOMEであり、フォーマット済の結果出力はC_NET_INCOMEに配置されます。このレポートに使用されるすべての通貨についての最小精度は字句P_MIN_PRECISIONから取得されます。これは、この例では3に設定されています。ユーザー・イグジット・コールの最後で、RETURN(:C_NET_INCOME)によってC_NET_INCOMEを必ず参照してください。これをしないと、列内の情報が最新のものでない可能性があります。
単一通貨レポートの場合は、MINIMUM_PRECISIONトークンは含めません。
金額を非表示にします。
デフォルトのレイアウトでは、レポートに表示されないように金額列(C_INCOME)は選択されていない状態となっています。この列にはフォーマットされていないデータベース列値が格納されているため、この金額は表示しないでください。レイアウト・ペインタで、表示されている各通貨フィールド(この例ではC_CURRENCYとC_NET_INCOME)の定型挿入文テキストを更新します。
重要: 表示されている各通貨フィールドごとに、手順4と手順5を繰り返します。
タイトルを作成します。
レイアウト・ペインタで、前のフィールドや定型挿入文テキストを必要に応じて移動させて、次のように定型挿入文テキストをペイントします。
Net Income for January 1992
---------------------------
Oracle Application Object Libraryでレポートを定義します。
標準要求発行でレポートを定義します。引数P_MIN_PRECISIONは必ず定義するようにします。この引数のデフォルトは$PROFILE$.MIXED_PRECISIONです。
これでレポートの実行準備が整いました。
レポート仕様の簡単な要約を次に示します。
字句パラメータ:
P_CONC_REQUEST_ID(必須)
P_MIN_PRECISION(混合通貨レポートのみ)
列名:
C_CURRENCY
C_NET_INCOME
Application Object Libraryユーザー・イグジット:
FND SRWINIT(必須)
FND FORMAT_CURRENCY
FND SRWEXIT(必須)
この項では、一般的な問題やエラー・メッセージが表示された場合のトラブルシューティングのヒントを説明します。
デバックの最初の手順は、明らかなエラーについて、コンカレント要求ログを確認することです。
コンカレント要求ログで問題の原因が特定できなかった場合は、レポートをオペレーティング・システムから実行します。レポートの実行には、Oracle ApplicationsにリンクされたOracle Reports実行ファイルを使用します。標準のOracle Reports引数とともに、コンカレント・マネージャから渡される引数を使用してレポートを実行します。コンカレント・マネージャから渡される引数は、コンカレント要求ログの最初に「引数」のタイトルで記録されています。
レポートがコマンドラインから実行できれば、問題はコンカレント・マネージャが起動された環境内にあるということです。必ず、レポートの実行を試みた同じ環境からコンカレント・マネージャを起動するようにします。
コンカレント・マネージャでは、環境変数を起動元のシェルから継承し、その環境を使用してレポートを実行します。コンカレント・マネージャが別のユーザーによって別の環境設定ですでに起動されている可能性もあるため、この環境が、Applicationsへのログイン時にユーザーが参照するものとは異なっている場合があります。この違いのために、レポートの実行エラーの原因究明が困難で複雑になることがあります。
いくつかの変数の値を確認する場合、「環境変数値の印刷」レポートを実行して、コンカレント・マネージャが参照しているとおりの変数を出力し、変数が正しいかどうかを確認できます。起こりがちな問題としては、REPORTS_PATHが正しくないために、コンパイルで問題が発生したり、コンカレント・マネージャでライブラリを検出できないなどがあります。
これは、コンカレント・マネージャがレポートを起動する環境が、コマンドラインからレポートを実行する場合に使用される環境とは異なるためです。
スタンドアローンのレポートとして実行したときと、コンカレント・マネージャから実行したときで、レポートに表示されるデータが異なる場合は、異なる状況の別のデータを取得している可能性があります。通常、これは、コンカレント・マネージャからレポートに、別のプロファイル・オプション(またはプロファイル・オプションがない)やその他の値が渡されていることから生じます。これは、レポートが複数の組織のデータにアクセスする場合、特に起こる可能性があります。
Oracle Application Object Libraryユーザー・イグジットがリンクされていない開発環境(Microsoft Windowsなど)からレポートをテストするためにSRWINITおよびSRWEXITへのコールをコメントにして無効化している場合は、コンカレント・マネージャからレポートの実行を試みる前にこれらのコールを再有効化したかどうか確認してください。
Oracle Reportsではuiprint.txtと呼ばれるテキスト・ファイルを使用してプリンタ名を保持しています。使用しているプリンタ名がこのファイル内にない場合、REP-0713エラーが発生する可能性があります。
横長などの印刷スタイルは、プリンタ・ドライバに関連付けられており、このドライバからプリンタにテキスト・ファイルの印刷方法についての指示が送られます。ただし、ビットマップ・レポートはテキスト・ファイルではありません。
ビットマップ・レポートはPostScriptファイルとして出力されます。PostScriptファイルはプリンタに対し印刷内容および印刷方法を指示する一連の指示セットです。レポートを横長に印刷するには、PostScriptファイルを横長で生成する必要があります。
ビットマップ・レポートを横長に印刷する場合は、これをReportsのデザイナで指定するか、コンカレント・プログラムの実行オプションで指定します。
ビットマップ・レポートの印刷時にも、使用するプリンタ・ドライバを特定するために印刷スタイルが必要です。混乱を避けるために、「コンカレント・プログラムの定義」フォームで、ビットマップ・レポート用に特別な印刷スタイルを作成し、これをすべてのビットマップ・レポートで必要とされるスタイルに指定します。
それはPostScriptコードです。使用しているプリンタ・ドライバが原因で、プリンタがファイルをPostScriptとして認識しません。ドライバを確認してください。初期化コマンドによってはこの問題を引き起こす可能性のあるものもあります。また、プログラムenscriptは印刷のために使用しないでください。
残念ながら、このエラー・メッセージはエラーの特定にあまり参考になるものではありません。これは、様々な理由により発生する可能性のあるものです。問題を特定するために、次の事柄を実行してみてください。
/tmpディレクトリの容量が不足していないか確認します。デフォルトで、Oracle Reportsはこのディレクトリを一時ファイルの保存に使用します。環境変数TMPDIRを使用して、これらのファイルを別のディレクトリに保存することもできます。使用しているマシン上に容量の大きい別のパーティションがある場合には、TMPDIRをこのパーティションに置くように設定してから、その環境でコンカレント・マネージャを再起動します。
ページN/Mが失敗したレポートにより使用されていないかどうか確認します。これはOracle Reportsの仮想メモリーを大幅に消費します。
可能な場合は、レポートをもっと小さいデータベースで再実行します。