通貨桁数の設定
次の各トピックでは、通貨桁数の概要と以下について説明します。
通貨桁数機能のアクティブ化
通貨桁数とレポート作成
通貨桁数拡張に伴うデータベースの拡張
国際標準化機構 (ISO) の規格では、通貨の小数点以下の桁数は 0 から 3 の範囲とされています。たとえば、アメリカ ドルでは小数点以下 2 桁まで表示されますが、日本円には小数点以下がありません。このように通貨によって異なる桁数をサポートするため、PeopleSoft の金額フィールドは整数 13 桁小数 2 桁 (13.2 と表記) が標準になっています。金額フィールドは、整数 15 桁小数 3 桁 (15.3) まで任意に拡張できます。同じレコードにコントロール通貨があり、これによって金額フィールドの表示や処理が調整されます。
PeopleSoft では、オンライン処理やバックグラウンド処理の実行中、金額フィールドは全てコントロール通貨の桁数に合わせて端数処理されます。たとえば、金額フィールドが整数 15 桁小数 3 桁となっているデータベースでは、端数処理の結果、日本円は 123.000 に、またアメリカ ドルは 123.230 のようになります。日本円の場合、小数点以下に 0 以外の数字は付きません。アメリカ ドルでは、小数点以下 3 桁目に 0 以外の数字は付きません。
PeopleSoft のオンライン ページでは、金額フィールドが各通貨に合った桁数で表示されます。たとえば日本円は 123、アメリカ ドルは 123.23 と表示されます。金額を入力する際、定義されている桁数を超えることはできません。桁数が定義数を超えると、オンライン エラー入力として処理されます。
PeopleCode プログラムとバックグラウンド処理では、金額フィールドは全てコントロール通貨の桁数に合わせて端数処理されます。
通貨桁数機能は PeopleTools のオプションです。このオプションをオンにすると、付随機能が全てアクティブになります。このオプションをオフにしておくと、金額フィールドは PeopleSoft アプリケーション デザイナの定義どおりに表示され、小数点以下はアプリケーション デザイナの定義に合わせて端数処理されます。
PeopleTools 多通貨オプションをアクティブにするには、PeopleTools オプション ページ (PSOPTIONS) で [多通貨] チェック ボックスをオンにします。この設定をしておくと、コントロール通貨フィールドを指定した金額フィールドには、その通貨に対して通貨コード ページ (CURRENCY_CD_TABLE) で指定されている桁数が適用されます。PeopleSoft アプリケーションによっては、多通貨オプションがオンになっている状態で出荷されているものがあります。デフォルトの設定は変更することができます。
注: [多通貨] チェック ボックスをいったんオフにすると、再度オンにしても、既存トランザクションの金額は自動的に端数処理されません。[多通貨] チェック ボックスをオフにすると、PeopleSoft ではデフォルトの金額フィールド サイズである整数 13 桁小数 2 桁のみがサポートされます。それより大きなサイズである整数 15 桁小数 3 桁はサポートされません。
PeopleSoft の大半の SQR レポートでは、通貨金額を表示する際、該当通貨に設定された小数部桁数が使われます。たとえば、日本円の金額は 123、アメリカ ドルの金額は 123.23 のようにレポートに表示されます。
BI Publisher と PS/nVision (Excel) でレポートを作成すると、金額は小数点以下 2 桁まで表示されます。これらのレポートで小数点以下 3 桁まで表示する場合は、レポートを変更する必要があります。
PeopleSoft のサードパーティのレポート作成ツールでは、15 桁を超える数値フィールドは完全にはサポートされていません。PS/nVision (Excel) では、数値フィールドに 8 バイトの浮動小数点が使われています。このため 15 桁より後は切り捨てられます。BI Publisher では 16 桁まで正しく表示されます。数字が 17 桁以上になると、小数位に無意味な数字が自動挿入されます。ただし、桁数が極端に多くない限り、問題はありません。これらのどのレポート作成ツールでも、以下に示す金額までは正確に表示されます。
100 兆円または 100 兆イタリア リラ: 小数点以下の桁数 = 0
1 兆ドル: 小数点以下の桁数 = 2
1000 億ディナール: 小数点以下の桁数 = 3
たとえば、整数 15 桁小数 3 桁の数値データベースの金額フィールドに数字の 2 を続けて入力すると、各レポートでの表示は次のようになります。
桁数 |
レポート |
PS/nVision (Excel) |
SQR |
---|---|---|---|
16 |
2,222,222,222,222.222 |
2,222,222,222,222.220 |
2,222,222,222,222.222 |
17 |
22,222,222,222,222.219 |
22,222,222,222,222.200 |
22,222,222,222,222.220 |
18 |
222,222,222,222,222.188 |
222,222,222,222,222.000 |
222,222,222,222,222.200 |
PeopleSoft アプリケーションによっては、データベースの金額フィールドを整数 13 桁小数 2 桁から整数 15 桁小数 3 桁のサイズまで拡張できるものもあります。たとえば、PeopleSoft Financials、Distribution、および Manufacturing の各アプリケーション ラインでは、整数 15 桁、小数 3 桁の拡張フィールド サイズがサポートされています。
データベースを拡張するには、次の手順に従います。
データベースのバックアップをとります (省略可)。
このステップは任意ですが、できるだけ実行するようにしてください。バックアップをとっておけば、これ以降の作業の途中でデータベースに整合性の問題が起きても、修復が可能です。
検証スクリプトを実行します。
PeopleSoft プロセス スケジューラから DDDAudit と SYSAudit を実行し、データベースにエラーがないことを確認します。[PeopleTools]、[プロセス スケジューラ]、[プロセス リクエスト] の順に選択して、[ラン コントロール ID] に値を入力します。[実行] をクリックします。使用環境のサーバー名を指定して、プロセス リストから DDDAUDIT (次に SYSAUDIT) を選択します。[OK] をクリックしてプロセスを実行します。
スクリプト出力を調べて、データベースにエラーがないことを確認します。
DDDAudit レポートと SYSAudit レポートを検索して特定したら、データベースにエラーがないことを確認します。
FSINTLFD.DMS を実行して、フィールド サイズの国際化対応テーブルにデータをロードします。
データベースにエラーがなくなったら、FSINTLFD.DMS スクリプトを実行して、フィールド サイズの国際化対応テーブル (INTL_FLDSIZ_TBL) にデータをロードします。データ ムーバーを使って、このスクリプトを実行します。アプリケーション デザイナでコントロール通貨が設定されている金額フィールドは、全てフィールド サイズの国際化対応テーブルにロードされます。これによって、小数点の左側へ 2 桁、右側へ 1 桁拡張されます。フィールド サイズの国際化対応テーブルに新しいフィールドが追加される前に、そのテーブルから既存フィールドが全て削除されます。
フィールド サイズの国際化ページを使って、結果を確認します。
フィールド サイズの国際化ページを表示します。[国際化対応サイズ] の列では、ほとんどのフィールドについて整数 15 桁、小数 3 桁 (15.3) と表示されています。[現在のサイズ] と比較すると、[国際化対応サイズ] 列の方が小数点から左に 2 桁、右に 1 桁多くなっています。つまり、[現在のサイズ] フィールドの値が整数 13 桁、小数 2 桁 (13.2) であるのに対して、[国際化対応サイズ] の列は整数 15 桁、小数 3 桁 (15.3) になっています。
PeopleTools プロセス TLSINST1.SQR を実行して、PSDBFIELD のフィールド サイズを変更します。
注: この SQR は、アプリケーション エンジンでもあります。この SQR にアクセスするには、 の順にクリックします。
SQRW を使って SQR TLSINST1.SQR を実行し、PSDBFIELD PeopleTools テーブルのフィールド サイズを変更します。これで PeopleTools の定義値が変更されますが、データベースのフィールド サイズは変わりません。
平均サイズ、または最大サイズのフィールドを使ったページを全て一覧表示するレポート TLSINST1.LIS も作成されます。PeopleSoft Enterprise の標準として、金額フィールドが拡張されている場合は、金額フィールド全てにカスタムのフィールド サイズを採用し、フィールドが重複しないようになっています。ページのリストを見て、読みやすくなるように調整します。
SQR.LOG を調べて、エラーの有無を確認します。
SQR ログは、特に指定のない限り C:\TEMP に作成されます。ログを表示し、フィールドのサイズが整数 15 桁、小数 3 桁に変更されていることを確認します。フィールド サイズをランダムにチェックして結果を照合し、手順 5 に示した金額フィールドが含まれる各種レコードを開きます。プロジェクトの構築、テーブルの SQL Alter スクリプトの実行、ビューの作成、およびインデックスの作成などを行うときは、スクリプトの実行を注意深く監視し、エラー ログを確認してください。
全てのテーブルに SQL Alter を実行します。
の順に選択します。
を選択します。
プロジェクト名に "CURR_TBL" と入力して保存します。
[Insert (挿入)] の [Definitions into Project (定義をプロジェクトに挿入)] を選択します。
[Definition Type (定義タイプ)] に [Records (レコード)]、[Type (タイプ)] には [Table (テーブル)] をそれぞれ選択します。
[Record Name (レコード名)] の下の [Insert (挿入)] をクリックします。ロードされるテーブルの一覧が表示されます。
[Select All (全て選択)] をクリックして、[Insert (挿入)] を再度クリックします。[Close (閉じる)] をクリックしてページを閉じます。
[Build (ビルド)] の [Project (プロジェクト)] を選択します。
[Build Options (ビルド オプション)] グループ ボックスの [Create Indexes (インデックスの作成)] と [Alter Tables (テーブルの変更)] をオンにします。
[Build Execute Options (ビルド実行オプション)] の [Build script file (スクリプト ファイルの作成)] がオンになっていることを確認します。
データベース管理者 (DBA) と共にスクリプト ファイルを確認し、最適な SQL クエリー ツールを使って実行します。
SQL Create を使用して、全てのビューを作成します。
の順に選択します。
プロジェクト名を "CURR_VW" と入力して保存します。
[Insert (挿入)] の [Definitions into Project (定義をプロジェクトに挿入)] を選択します。[Definition Type (定義タイプ)] に [Records (レコード)]、[Type (タイプ)] には [View/QueryView (ビュー/クエリー ビュー)] をそれぞれ選択します。
[Insert (挿入)] をクリックし、次に [Select All (全て選択)] をクリックします。
[Insert (挿入)] を再度クリックし、[Close (閉じる)] をクリックしてページを閉じます。
[Build (ビルド)] の [Project (プロジェクト)] を選択します。
[Build Options (ビルド オプション)] グループ ボックスで [Create Views (ビューの作成)] をオンにします。
[Build Execute Options (ビルド実行オプション)] の [Build script file (スクリプト ファイルの作成)] をオンにします。
データベース管理責任者 (DBA) と共同でスクリプト ファイルを確認し、最適な SQL クエリー ツールを使って実行します。
検証スクリプトを再実行します。
DDDAudit と SYSAudit を再実行して、データベースにエラーがないことを確認します。
レポートを手動で変更します。
PeopleSoft のほとんどの SQR レポートでは、金額フィールドが整数 15 桁、小数 3 桁に拡張されています。ただし、スペースが足りないため、整数 13 桁、小数 2 桁のままになっているレポートもあります。小数の最後の桁が重要であれば、SQR を更新して整数 12 桁、小数 3 桁の設定にして小数点以下 3 桁がレポートに表示されるようにしてください。以下は、小数点第 3 位を表示するために手動変更が必要なレポートのアプリケーション別リストです。
フィールドまたはコントロール
定義
General Ledger GLS1001、GLS1003、GLS7000、GLS7009、GLS7010、GLS7012
Receivables AR30001 (9.2)、AR30002 (9.2)、AR30003 (9.2)、AR30004 (12.2)
『PeopleTools: Global Technology』を参照してください。