| Oracle Projects API, クライアント拡張およびオープン・インタフェース・リファレンス リリース12 E05609-01 | 目次 | 前へ | 次へ |
この章では、Oracle Project Billingアプリケーションのクライアント機能拡張を説明します。
この章では、次のトピックを説明します。
資金再評価ファクタ・クライアント機能拡張を使用して、資金再評価ファクタを資金未処理分金額に適用します。この機能拡張は、契約に定義されているエスカレーション指数を実装する場合にも使用します。再評価に応じて、資金未処理分金額が増減します。また、資金通貨では、ファクタが資金未処理分金額に適用されます。
このクライアント機能拡張は、プロジェクトまたはタスクごとに基本契約から呼び出されます。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXBFRCB.pls |
| 仕様テンプレート | PAXBFRCS.pls |
| パッケージ | Pa_Client_Extn_Funding_Reval |
| プロシージャ | Funding_Revaluation_factor |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
請求サイクル・クライアント機能拡張を使用すると、プロジェクトの次回請求日を導出できます。クライアント機能拡張を使用するには、PL/SQLプロシージャにロジックを記述し、そのプロシージャをデータベースに保存する必要があります。
プロジェクトに対して請求サイクル機能拡張を使用する場合は、プロジェクトの「請求サイクル・タイプ」を「ユーザー定義」に設定する必要があります。
注意: 請求書生成プロセスで使用されている請求サイクル機能拡張が、次回請求日の値としてNULL値を返す場合は、そのプロジェクトは「請求書処理」の対象になりません。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXIBCXB.pls |
| 仕様テンプレート | PAXIBCXS.pls |
| パッケージ | pa_client_extn_bill_cycle |
| プロシージャ | get_next_billing_date |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
警告: 請求機能拡張コードでは、コミットおよびロールバックのPL/SQLコマンドは使用しないでください。get_next_billing_dateファンクションの場合は、RESTRICT_REFERENCESプラグマをWNDS、WNPSとして定義してください。詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』マニュアルを参照してください。
pa_client_extn_bill_cycle.get_next_billing_dateプロシージャは、次回請求日の値を返します。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
請求機能拡張を使用すると、自動的な収益および請求イベントを作成する、会社固有のビジネス・ルールを実装できます。「請求機能拡張」ウィンドウで、プロジェクト・タイプ、プロジェクトまたはタスクに機能拡張を割り当てるときに、金額またはパーセントのいずれかを指定する必要があります。
これらのフィールドは、請求機能拡張のパラメータとして使用できます。パラメータの値は、PA_BILLING_EXTN_PARAMS_Vビューに表示されます。このビューは1行で構成され、請求機能拡張のプロシージャで使用されているすべての換算属性がこの行に表示されます。
請求機能拡張を使用すると、収益および請求書の生成中に、独自の請求方法に基づいて、収益および請求書の要約金額を自動的に計算できます。これらの請求金額は、イベントにより計上されます。請求機能拡張の実装例を次に示します。
料金
追加料
保留
ここでは、請求機能拡張の実装、請求機能拡張の処理、およびOracle Projectsの自動イベントを説明します。
この他にも、請求機能拡張の設計および記述を説明します。説明する内容は、請求機能拡張で追加情報の導出に使用できる公開プロシージャやビューなどです。また、請求機能拡張のテストとデバッグについても説明します。
警告: Oracle Projects請求機能拡張の公開プロシージャおよびビューは、収益草案の生成/請求書草案の生成プロセスの請求機能拡張でのみ使用可能です。この公開プロシージャおよびビューは、単独では動作せず、また他のクライアント機能拡張でも動作しません。
警告: 請求機能拡張コードでは、コミットおよびロールバックのPL/SQLコマンドを使用しないでください。
請求機能拡張の機能を使用するには、請求機能拡張を実装し、プロジェクトに割り当てる必要があります。請求機能拡張が有効になるとOracle Projectsで処理され、計算結果の収益額と請求額が計上されるようになります。
会社固有の請求方法を実装するには、請求額を計算するためのルールを設計し、PL/SQLプロシージャを使用して記述します。次に、Oracle Projectsに請求機能拡張の定義を入力して、収益および請求書プログラムが機能拡張の処理に使用する情報(呼出し先のプロシージャ名など)を指定します。
「請求割当」ウィンドウでプロジェクト・タイプまたはタスクに機能拡張を割り当てるときに、請求機能拡張を定義し、金額とパーセントのどちらを機能拡張で使用するかを指定します。また、金額とパーセントの他に、通貨および換算属性も指定できます。
pa_billing_extn_params_vビューにアクセスすると、「請求割当」ウィンドウで入力した値を請求機能拡張で使用できます。このビューは1行で構成され、すべての換算属性が行に表示されます。このビューでは、請求機能拡張で複数通貨イベントを作成できます。請求機能拡張に独自のコードを記述し、パラメータを使用する必要がある場合には、この機能拡張を更新する必要があります。
予算金額を使用する計算に対する入力として、どの予算タイプを使用するかを指定できます。予算タイプに値を指定しない場合、請求機能拡張では「承認済原価予算」または「承認済収益予算」、あるいはその両方が使用されます。「予算金額の取得」を参照してください。
収益または請求書プロセスを実行すると、有効な請求割当が検索されます。有効な割当が検出されると、請求機能拡張の定義が読み込まれ、該当するプロシージャが呼び出されます。プロジェクトまたはタスクに対して有効な割当が複数存在する場合は、請求機能拡張の定義で指定した処理順序に従い、昇順で機能拡張が呼び出されます。
各最上位タスクに対し、最上位タスク・レベルの割当が1回実行されます。プロジェクトとプロジェクト・タイプに割り当てた請求機能拡張は、プロジェクトごとに1回ずつ実行されますが、タスク・レベル資金の場合は実行されません。プロジェクトでタスク・レベル資金が使用される場合は、プロジェクトとプロジェクト・タイプに割り当てた請求機能拡張が、プロジェクトの承認済の最上位タスクごとに1回ずつ実行されます。
請求機能拡張を使用すると、収益額と請求額を計算し、その収益額と請求額を計上する自動イベントを作成できます。作成したイベントは、手動で入力したイベントと同様に処理されます。イベントの監査額は、「イベント」表の監査列に保存できます。
自動イベントとは、イベント・タイプ分類が「自動」のイベントです。自動イベントを使用して、収益額と請求額を増減できます。また、イベントに応じて収益額と請求額を個別に指定することもできます。イベントの収益額と請求額がどちらもゼロ以外の場合には、両方の金額に同じ符号を使用する必要があります。このようなイベントに応じた収益額と請求額の例を次に示します。
収益額が100ドル、請求額が0ドル
収益額が100ドル、請求額が200ドル
収益額が-100ドル、請求額が-100ドル
収益額が0ドル、請求額が-100ドル
請求機能拡張では、イベントの自動作成にMyPackageName.insert_eventという公開プロシージャが使用されます。このプロシージャは、次の表のとおりです。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXITMPB.pls |
| 仕様テンプレート | PAXITMPS.pls |
| パッケージ | MyPackageName |
| プロシージャ | insert_events |
次の図に、請求機能拡張の実装に必要なステップを示します。

会社独自のビジネス実施方法にあわせてOracle Projectsに請求機能拡張を実装するには、次のステップを実行します。
請求機能拡張を記述する前に、その仕様を明確にしておく必要があります。通常、請求機能拡張のロジックは、Oracle Projectsの実装形態によって異なります。請求機能拡張を設計するに当たって、次の事項を検討してください。
請求機能拡張のロジック
必要になる実装データ
請求機能拡張の設計後に、PL/SQLプロシージャに請求機能拡張のロジックを記述します。
プロシージャの記述が終わったら、そのプロシージャをデータベースに保存し、請求機能拡張のロジックが仕様どおりに動作するかどうかをテストします。
請求機能拡張を定義します。定義する内容は、請求機能拡張の実行時に使用するPL/SQLプロシージャ名などの情報です。
請求機能拡張は、「請求機能拡張」ウィンドウで定義します。
このステップは、デフォルトのイベント・タイプとして、すでにイベント・タイプが定義されていることが前提になっています。請求機能拡張で作成される自動イベントの詳細は、「自動イベント」を参照してください。
定義した請求機能拡張がプロジェクト特有のものではない場合には、該当するプロジェクト・タイプに請求機能拡張を割り当てます。プロジェクト特有の請求機能拡張については、プロジェクト・ユーザーが、プロジェクトの定義時にプロジェクトと最上位タスクに割り当てます。
「プロジェクト・タイプ」フォームで、請求機能拡張をプロジェクト・タイプに割り当てます。
収益額および請求額の計算と作成を自動化する請求機能拡張を定義します。
請求機能拡張を定義するときに、その詳細な情報を指定します。指定する内容は、請求機能拡張が呼び出されるタイミング、呼出し元のプロセス、および請求機能拡張のエントリに必要な情報です。
Oracle Projectsには一部の機能拡張が用意されており、これらの機能拡張に対応する「事前定義済フラグ」チェック・ボックスはすべて選択されています。このチェック・ボックスが選択されている場合には、次のフィールドの内容は変更できません。
プロシージャ
順序
収益予算タイプ
呼出し元処理
必須入力
その他パラメータ
呼出し元
Fremont Corporationでは、追加通信費を対象とした請求機能拡張を定義しています。この機能拡張では、通信費を請求額に対する一定の割合で計算します。
次の表に、Fremont Corporationの請求機能拡張の属性を説明します。
| 属性 | 値 |
|---|---|
| 請求機能拡張名 | 通信費 |
| 呼出し元処理 | 請求書 |
| デフォルトのイベント・タイプ | 追加料 |
| デフォルトのイベント摘要 | 通信費 |
| 選択されているチェック・ボックス | 修正処理 本処理 パーセント プロジェクト固有 |
| デフォルトの原価予算タイプ | 承認済原価予算 |
| デフォルトの収益予算タイプ | 承認済収益予算 |
請求機能拡張の設計を始める前に、3つの区分の請求機能拡張について十分に理解しておく必要があります。これにより、解決しようとしているビジネス上の問題の難易度を把握できるようになります。
クライアント拡張機能の設計には、請求機能拡張の要件とロジックを決定するときに特有の検討事項があります。この検討事項については、後述します。また、「請求機能拡張定義の概念」でも、一部の問題の対処方法を詳細に説明しています。
記述可能な請求機能拡張は、基本的に次の3つの区分から構成されます。ただし、この区分は、収益額および請求額の計算方法によって異なります。
この区分の請求機能拡張は、収益草案や請求書草案に含まれる収益額や請求額に基づいています。
例としては、追加料請求機能拡張がありますが、この場合は通常、請求額に対する割合です。この区分は、設計し記述する請求機能拡張としては、最も単純な区分です。
この区分の請求機能拡張は、収益草案や請求書草案に含まれる金額とは関係のない値に基づいています。
例としては、完了率収益見越方法があります。この方法では、プロジェクトに入力された実質完了率に予算収益額を乗じます。計算結果の金額は、収益および請求書に含まれる他の金額とは関係がありません。ほとんどの場合、この区分の請求機能拡張は、プロジェクトの収益額および請求額の計算に使用できる唯一の手段です。特に、イベント基準の収益見越および請求を使用している場合、これ以外には計算手段がありません。
この区分の請求機能拡張は、請求書草案に含まれる取引のグループの属性に基づいています。この請求機能拡張は、この取引に対する請求額を計算します。
例としては、タイムカードに記録されている実際の作業時間ではなく、作業日数に基づいて収益額と請求額を計算する場合があります。また、請求時に数量値引を行い、請求対象の取引の数量に応じて値引を行う場合があります。取引に対する請求額がグループ単位で計算されるため、取引ごとに請求額を指定する必要はありません。
自動イベントを使用して請求対象の取引を正確に調べるには、請求書にその取引が含まれるようにプロジェクトを設定する必要がありますが、請求額は含まれないようにします。この取引では、収益額がゼロ以外になり、請求額がゼロになる必要があります。純額ゼロ修正明細の請求書にこの取引は含まれますが、フォームには表示されません。ただし、データベースから請求機能拡張に読み込むことはできます。取引をこの方法で処理するようにプロジェクトを設定する場合には、収益と請求書で異なる間接費予定表を使用します。これにより、収益予定表では適正な収益額が判定され、請求書予定表では、請求額の計算結果がゼロになります。
詳細取引は純額ゼロ修正請求明細で請求書に関連付けられます。請求書に含まれる自動イベントを使用して、この取引に対する要約請求額を保留にして計上します。計上後には、要約イベント金額をバックアップする詳細取引が表示されるように、独自のレポートを記述できます。
この区分の請求機能拡張は、請求額に対してのみ実装可能です。収益生成中に計算される収益額には使用できません。
請求機能拡張を慎重に設計してから、Oracle Projectsに実装する必要があります。会社固有のルールに従って、収益額および請求額を計算し計上できるようにするには、請求機能拡張の計画に慎重さが必要になります。「クライアント機能拡張の設計」を参照してください。
請求機能拡張を設計する上で次の点を考慮してください。
計算対象を、収益額、請求額、あるいはその両方にするかどうか。金額の生成時期を、収益見越生成中、請求書生成中、またはその両方にするかどうか。
金額の計算方法、計算への入力内容。
入力の導出方法。
レポート、会計、請求の各目的に応じた金額の処理方法。
自動イベント・セット属性(イベント・タイプ、イベント組織、イベント摘要、および完了日)の設定。
この計算に使用する条件、プロジェクトのタイプ、請求条件のタイプ。
請求機能拡張での修正処理方法。修正は、他の取引に基づいて収益業績または請求書クレジット・メモとして定義されます。
同一プロジェクトまたはタスクに他の請求機能拡張が存在する場合でも、この請求機能拡張を呼び出せるようにするかどうか。呼び出せるようにする場合には、請求機能拡張の依存関係および順序の設定。
入力値が見つからない場合の例外処理。
入力が時間の経過とともに変化した場合のロジックへの影響。
計算金額の上限額を設定するかどうか。ある場合は、ロジックの設定。
プロジェクトの資金が調達されるレベル(プロジェクト・レベルまたは最上位タスク・レベルのいずれか)への関係。ある場合は、その設定。
前述の検討事項の検討が終了したら、Oracle Projectsで請求機能拡張を定義し、PL/SQLプロシージャの記述を担当する技術リソース向けに機能仕様を文書化するための情報を整理する必要があります。
請求機能拡張の定義を入力するときに、パラメータを指定して、Oracle Projectsにおける請求機能拡張の処理内容を指示します。この項では、このようなパラメータの一部を説明します。
請求機能拡張の呼出し元として、収益生成プログラム、請求書生成プログラム、またはその両方のプログラムを指定します。
収益生成中に請求機能拡張を呼び出す場合は、収益額を保有するイベント、または収益額と請求額を保有するイベントを作成できます。ただし、これは収益額がゼロ以外の場合に限定されます。
請求書生成中に請求機能拡張を呼び出す場合は、請求額を保有するイベント、または収益額と請求額を保有するイベントを作成できます。ただし、これは請求額がゼロ以外の場合に限定されます。
次の表に、「収益草案の生成」呼出し元処理で作成可能な、収益額と請求額を保有するイベントの例を示します。
| 請求機能拡張 | イベント | 収益額 | 請求額 | コメント |
|---|---|---|---|---|
| 1 | 1 | 100 | 100 | 請求額は、関連収益が配分された後に処理されます。 |
| 2 | 2 | 100 | - | 収益イベントのみ |
次の表に、「請求書草案の生成」呼出し元処理で作成可能なイベントの例を示します。
| 請求機能拡張 | イベント | 収益額 | 請求額 | コメント |
|---|---|---|---|---|
| 3 | 1 | 100 | 100 | 収益額は、関連請求書がリリースされた後に処理されます。 |
| 4 | 2 | - | 100 | 請求イベントのみ |
収益額と請求額の両方を保有するイベントを作成する場合、収益額と請求額は同じ金額である必要はありません。請求機能拡張で、正負どちらのイベント金額も作成できます。
収益生成と請求書生成の両方から呼び出される請求機能拡張を作成できます。収益額と請求額の請求計算方法が類似している場合には、このような請求機能拡張を作成できますが、イベント収益額が未収収益に基づいている場合、イベント請求額が請求済金額に基づいている場合は作成できません。計算の入力として、未収収益または請求済金額のいずれかが使用される場合を除いては、記述するプロシージャの計算ロジックを同じにすることができます。この方法でプロシージャと請求機能拡張を1つずつ記述すれば、同じロジックを繰り返し記述する必要がなくなります。また、プロジェクト・ユーザーがプロジェクトに割り当てる請求機能拡張は1つだけになり、収益見越と請求に1つずつ請求機能拡張を割り当てる必要がなくなります。
収益生成プログラムは、次の3つの処理ステップでクライアント機能拡張を呼び出します。
収益削除処理
収益修正処理
収益本処理
収益削除処理では、次の順番で請求機能拡張が呼び出されます。
PRE請求機能拡張
DEL請求機能拡張
ここで標準の収益処理が実行された後に、次の請求機能拡張が呼び出されます。
POST請求機能拡張
収益修正処理では、次の順番で請求機能拡張が呼び出されます。
PRE請求機能拡張
ここで標準の収益修正処理が実行された後に、次の請求機能拡張が呼び出されます。
ADJ請求機能拡張
POST請求機能拡張
PRE請求機能拡張
ここで収益本処理が実行された後に、次の請求機能拡張が呼び出されます。
REG請求機能拡張
ここで自動収益イベント処理が実行された後に、次の請求機能拡張が呼び出されます。
POST-REG請求機能拡張
ここで自動収益イベント処理が再度実行された後に、次の請求機能拡張が呼び出されます。
POST請求機能拡張
請求書生成プログラムは、次の3つの処理ステップでクライアント機能拡張を呼び出します。
請求書削除処理(削除と再生成のオプションを使用している場合のみ)
請求書取消処理(取消オプションを使用している場合のみ)
請求書貸倒償却処理(貸倒償却オプションを使用している場合のみ)
請求書/クレジット・メモ(本)処理
請求書削除処理では、削除および再生成オプションが使用されている場合に、次の順番で請求機能拡張が呼び出されます。
PRE請求機能拡張
DEL請求機能拡張
ここで標準の請求書削除処理が実行された後に、次の請求機能拡張が呼び出されます。
POST請求機能拡張
請求書取消処理では、取消オプションが使用されている場合に、次の順番で請求機能拡張が呼び出されます。
PRE請求機能拡張
ここで標準の請求書削除処理が実行された後に、次の請求機能拡張が呼び出されます。
CANCEL請求機能拡張
POST請求機能拡張
承認/リリース請求機能拡張
請求書およびクレジット・メモ(本)処理では、次の順番で請求機能拡張が呼び出されます。
PRE請求機能拡張
ここで標準のクレジット・メモ処理が実行された後に、次の請求機能拡張が呼び出されます。
ADJ請求機能拡張
POST請求機能拡張
PRE請求機能拡張
ここで請求書本処理が実行された後に、次の請求機能拡張が呼び出されます。
REG請求機能拡張
ここで自動請求イベント処理が実行された後に、次の請求機能拡張が呼び出されます。
POST-REG請求機能拡張
承認/リリース請求機能拡張
POST請求機能拡張
承認/リリースの検証処理
ここで標準の請求書の貸倒償却処理が実行されます。
収益生成プログラムと請求書生成プログラムには、プロジェクト処理時の請求機能拡張の呼出し元が事前定義されています。呼出し元は次のとおりです。
前処理
削除処理
請求書の取消処理
請求書の貸倒償却処理
修正処理
本処理
本処理の後処理
後処理
次の表に、それぞれの呼出し元を説明します。
| 変数 | 説明 |
|---|---|
| 前処理 | 前処理の請求機能拡張は、プロジェクトの収益見越または請求書が計算される前に呼び出されます。収益草案の生成プロセスおよび請求書草案の生成プロセスの場合は、この呼出し元に自動イベントを作成できません。前処理請求機能拡張の例としては、未請求で未支払の仕入先請求書項目を保留状態に設定して、この項目を請求対象から除外し、保留になっている未請求で支払済の仕入先請求書取引の請求保留を解除する場合が考えられます。これにより、標準の請求書処理で、支払済の仕入先請求書項目を請求できるようになります。 |
| 削除処理 | 削除処理の請求機能拡張は、収益が請求された後、プロジェクトの収益見越または請求書の計算が開始される前に呼び出されます。ただし、これは、請求書の請求機能拡張の場合に限定されます。請求書草案の生成プロセスの場合は、この呼出し元に自動イベントを作成できません。 |
| 請求書の取消処理 | 請求書の取消処理の請求機能拡張は、プロジェクトの請求書が取り消された後に呼び出されます。ただし、これは、請求書の請求機能拡張の場合に限定されます。請求書草案の生成プロセスの場合は、この呼出し元に自動イベントを作成できません。 |
| 請求書の貸倒償却処理 | 請求書の貸倒償却処理の請求機能拡張は、プロジェクトの請求書の貸倒償却が処理された後に呼び出されます。ただし、これは、請求書の請求機能拡張の場合に限定されます。請求書草案の生成プロセスの場合は、この呼出し元に自動イベントを作成できません。 |
| 修正処理 | 修正処理では、既存の収益または請求書を貸方記入したクレジット収益とクレジット請求書が作成されます。また、収益額または請求額に変更があった場合や、収益の一般会計の勘定科目に変更があった場合にも、クレジット収益とクレジット請求書が作成されます。収益草案または請求書草案に含まれる処理済の取引ごとに、これらのクレジットが、1つ以上作成されます。このような金額や勘定科目の変更は、個別の取引が修正されると発生します。 このステップでは自動イベントを作成できます。このイベントをOracle Receivablesに転送して自動インボイスの対象にする場合は、自動イベントの請求書明細を転送元の請求書の該当イベントにリンクします。クレジット収益とクレジット請求書がすべて作成された後に、このステップで請求機能拡張が呼び出されます。 |
| 本処理 | 本処理では、非クレジット収益と非クレジット請求書が作成されます。収益見越と請求がまだ処理されていない取引およびイベントに基づいて、収益や請求書が作成されます。 このステップでは、自動イベントを作成できます。非クレジット収益と非クレジット請求書がすべて作成された後に、このステップで請求機能拡張が呼び出されます。 |
| 本処理の後処理 | 本処理の後処理の請求機能拡張では、計算の根拠が未収収益の合計(他の自動イベントも含む)になるように、生成済のすべての前期収益に基づいてイベントが作成されます。本処理の後処理の請求機能拡張の例としては、生成済の収益を元に原価見越を計算する場合などがあります。『Oracle Project Billing User Guide』の収益基準原価見越に関する項を参照してください。 |
| 後処理 | 後処理の請求機能拡張は、修正処理、本処理、および本処理の後処理が完了した後に呼び出されます。収益草案の生成プロセスおよび請求書草案の生成プロセスの場合は、この呼出し元に自動イベントを作成できません。収益処理と請求処理がすべて完了すると、このステップが実行されます。後処理の請求機能拡張の例としては、25,000ドルを超える請求書が作成されたことをプロジェクト・マネージャに通知する場合などがあります。 |
次の表に、請求額に対する一定の割合に基づく請求機能拡張に異なる呼出し元を使用したときに、それぞれの呼出し元で作成される自動イベントの例を示します。
| 期間 | 請求書番号 | クレジット請求書 | 請求書金額 | 自動イベント金額(本処理および修正処理) | 自動イベント金額(本処理のみ) |
|---|---|---|---|---|---|
| 1 | 1 | 1000 | 100 | 100 | |
| 2 | 2 | 1 | -500 | -50 | |
| 3 | 1500 | 150 | 100 | ||
| 要約: | 2000 | 200 | 200 |
請求書番号3に対して作成されるイベントで示しているように、この請求機能拡張は、請求額の合計(本処理での貸方金額を含む)を計上する本処理でのみ呼び出されます。
計算に対する入力を決定したら、他の処理対象の取引に全面的に依存して請求機能拡張の計算を実行するのか、または他の処理対象の取引にはまったく依存せずに計算を実行するのかを決定することができます。ここでいう取引とは、支出項目およびイベントを指します。
取引独立の請求機能拡張は、処理対象の取引がない場合でも、請求割当が有効な各プロジェクトで実行されます。このタイプの請求機能拡張は、プロジェクトの請求可能な取引とは異なる入力に依存します。この入力が変わると、記録対象の請求金額の計算結果も変わります。たとえば、原価対原価収益見越計上方法は、予算原価と予算収益に依存しているため、予算原価または予算収益が変わると、収益額も変わります。収益生成では他に処理する取引がない場合でも、この収益額の変化を記録する必要があります。このカテゴリには、収益草案と請求書草案に含まれる金額とは関係のない値に基づいて、収益額と請求金額を計算する請求機能拡張の区分が該当します。
注意: 設計する請求機能拡張が取引に依存しない場合、その請求機能拡張は、収益プロセスまたは請求書プロセスの実行時に常に実行されます。
取引依存の請求機能拡張は、他に処理対象の取引がある場合にのみ実行されます。このタイプの請求機能拡張は、追加料が発生し、その追加料における請求額の割合を計算する場合などに使用します。この場合、請求対象の取引が他にない場合は、追加料を請求する必要はありません。
取引依存の請求機能拡張は、処理する必要があり、請求が可能な支出項目およびイベントが存在する場合にのみ、呼び出されます。たとえば、「請求不可」に設定された新規の取引があり、この取引では収益額も請求額も生成しない場合には、請求機能拡張は呼び出されません。このカテゴリの請求機能拡張では、収益草案と請求書草案に含まれる収益額や請求額に対する割合、または請求書草案に含まれる取引のグループ属性に基づいて収益額と請求額が計算されます。
次の表に、取引依存および取引独立の請求機能拡張の例を示します。1つ目の請求機能拡張は、取引依存タイプで、請求額に対して10%の金額を算出します。2つ目の請求機能拡張は、取引独立タイプで、その期間の請求額に関係なく、期間ごとに常に100ドルを請求します。
| 期間 | 請求書番号 | クレジット請求書 | 請求書金額 | 自動イベント金額(取引依存) | 自動イベント金額(取引独立) |
|---|---|---|---|---|---|
| 1 | 1 | 1000 | 100 | 100 | |
| 2 | 2 | 1 | -500 | -50 | |
| 3 | 1500 | 150 | 100 | ||
| 3 | 4 | - | - | 100 | |
| 要約: | 2000 | 200 | 300 |
呼出し元と取引独立のパラメータには関連があります。
取引依存の請求機能拡張は、本処理と修正処理の両方で呼び出す必要があります。これにより、すべての修正(新規の非クレジット金額が発生しないものを含む)が適切に計上されます。たとえば、金額を戻し処理しても、新規の非クレジット金額は処理しない請求不可能な修正が、これに該当します。
プロジェクトの処理中に、取引独立の請求機能拡張を1回だけ呼び出す必要があります。プロジェクトの処理中ではなく、本処理中に呼び出しても構いません。通常は、修正処理中には取引独立の請求機能拡張を呼び出しません。
次の表に、請求機能拡張の計算タイプに応じて、請求機能拡張に呼出し元と取引独立のパラメータをどのように設定する必要があるかを要約します。
| 請求機能拡張の計算 | 本処理 | 修正処理 | 取引独立 |
|---|---|---|---|
| 取引のみに依存 | Yes | Yes | No |
| 取引以外の入力に依存 | Yes | No | Yes |
前述の表に示した規則は一般的なものであり、例外もあります。取引に依存するように定義した請求機能拡張を、本処理の実行時にのみ呼び出されるように制限する場合などです。たとえば、未処理請求書に利息を賦課するときに、他の取引が存在する請求書にのみ利息を含めるように制限する場合が考えられます。この場合、利息計算自体は取引に依存しませんが、利息を取引に依存するように定義すると、請求書の他の取引が処理されるときにかぎり、利息が計算されます。利息金額のみが含まれる請求書は作成されません。
請求機能拡張で会社ポリシーを実装するに当たって、その適用対象をプロジェクト共通にするのか、交渉が成立したプロジェクトに限定するのかを決める必要があります。
プロジェクト固有の請求機能拡張は、交渉が成立した特定のプロジェクトにのみ適用可能な方法です。プロジェクト・ユーザーは、このタイプの請求機能拡張をプロジェクトと最上位タスクに割り当てるため、プロジェクト・タイプに割り当てることはできません。
非プロジェクト固有の請求機能拡張は、会社ポリシーをプロジェクト共通で実装する方法です。このタイプの請求機能拡張は、プロジェクト・タイプに割り当てます。請求機能拡張は、そのプロジェクト・タイプに該当するすべてのプロジェクトに適用されます。プロジェクト・ユーザーが、このタイプの請求機能拡張をプロジェクトに割り当てることはできません。
ヒント: プロシージャに条件付きロジックを指定して、プロジェクト・タイプのルールに例外を設定できます。
請求機能拡張を設計するときに、請求機能拡張が作成する自動イベントの属性を指定できます。次のデフォルト値を使用することもできますが、任意の属性のデフォルト値を上書きすることもできます。
| イベント属性 | コメント |
|---|---|
| イベント摘要 | デフォルト値は、請求機能拡張のイベント摘要です。 |
| イベント・タイプ | デフォルト値は、請求機能拡張のイベント・タイプです。イベント・タイプ分類が「自動」である必要があります。 |
| イベント組織 | デフォルト値は、イベントが割り当てられているプロジェクトまたはタスクの管理組織です。 |
| 完了日 | 収益生成中に作成されるイベントの見越期限日、請求書生成中に作成されるイベントの請求期限日です。 |
| 収益額 | 請求機能拡張が収益生成中に呼び出される場合は、収益額を指定する必要があります。 請求機能拡張が請求書生成中に呼び出される場合は、収益額の指定は任意です。収益額の処理は、イベントが請求対象の請求書がリリースされると開始されます。 |
| 請求額 | 請求機能拡張が請求書生成中に呼び出される場合は、請求額を指定する必要があります。 請求機能拡張が収益生成中に呼び出される場合は、請求額の指定は任意です。請求額の処理は、イベントの収益が見越計上されると開始されます。 |
| 付加フレックスフィールド・セグメント | イベントに定義した付加フレックスフィールドの値が有効であれば、任意の値を渡すことができます。 |
| イベントの監査列 | 請求機能拡張の計算で使用される値です。注意: この値は、ユーザーには表示されませんが、表では使用可能です。 |
請求機能拡張を設計するときに、請求機能拡張が使用する予算の属性を指定できます。次のデフォルト値を使用することもできますが、任意の属性のデフォルト値を上書きすることもできます。
| 予算の属性 | コメント |
|---|---|
| 原価予算タイプ・コード | デフォルト値は、承認済原価予算です。 |
| 収益予算タイプ・コード | デフォルト値は、承認済収益予算です。 |
計算ロジックを定義し、ルールに従って自動イベントを計算および作成する請求機能拡張のプロシージャは、Oracle Projectsの収益および請求書生成プログラムから呼び出されます。
プロシージャから、他のプロシージャやビューを呼び出すこともできます。また、事前定義のプロシージャやビューを使用したり、独自のプロシージャを記述できます。事前定義プロシージャについては、後述します。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXITMPB.pls |
| 仕様テンプレート | PAXITMPS.pls |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
注意: タスク・レベル資金を使用しても、プロジェクトにプロジェクト・レベルのイベントは作成できません。X_top_task_idパラメータの指定の有無に応じて動作するように請求機能拡張を記述する必要があります。
Oracle Projectsには公開および事前定義のプロシージャとビューが用意されており、収益草案の生成プロセスおよび請求書草案の生成プロセスの請求機能拡張で使用して、金額を導出したり、イベントを作成することができます。これらのプロシージャは、MyPackageNameという名称のパッケージに作成されます。
注意: 請求機能拡張の公開プロシージャとビューは、単独での使用または他のクライアント機能拡張での使用はできません。
ここでは、各プロシージャの内容やプロシージャで使用可能なパラメータの情報など、請求機能拡張でプロシージャを使用するときに必要な情報を説明します。これらのプロシージャとビューは、次の用途で使用できます。
Oracle Projectsに用意されている次の2つのビューを使用すると、特定の処理の対象となる収益草案と請求書草案の支出項目に関する詳細を確認できます。これらのビューは、取引依存の請求機能拡張の計算に使用します。ビューには、請求機能拡張が呼び出されるときの状態に応じて、処理される取引の詳細が表示されます。表示される内容は、プロジェクト、最上位タスク(タスク・レベルが割り当てられている場合)、呼出し元、要求IDです。
PA_BILLING_REV_TRANSACTIONS_V(収益生成中に呼び出されるプロシージャで使用するビュー)
PA_BILLING_INV_TRANSACTIONS_V(請求書生成中に呼び出されるプロシージャで使用するビュー)
Oracle Projectsに用意されている次の4つのビューを使用すると、現在の実行時に処理される収益取引と請求書取引の詳細を確認できます。
PA_BILLING_REV_DELETION_Vには、現在実行中の収益草案の生成で削除される収益草案が表示されます。このビューは、収益生成の削除処理で呼び出される請求機能拡張で使用します。
PA_BILLING_REV_INV_DELETION_Vには、現在実行中の収益草案の生成で削除される請求書草案が表示されます。このビューは、収益生成の削除処理で呼び出される請求機能拡張で使用します。
PA_BILLING_INV_DELETION_Vには、現在実行中の請求書草案の生成で削除される請求書草案が表示されます。このビューは、請求書生成の削除処理で呼び出される請求機能拡張で使用します。
PA_BILLING_INV_PROCESSED_Vには、現在実行中の処理で、処理の完了した請求書が表示されます。
insert_eventsプロシージャを使用して、イベント表に自動イベントを作成します。請求機能拡張を使用してイベントを作成する場合は、このプロシージャを使用する必要があります。このプロシージャを使用すると、作成するイベントのデータの整合性を検証できるためです。
このプロシージャでエラーが発生すると、呼出し先のプロセスのログ・ファイルにエラー・メッセージが記録され、イベントは作成されません。
プロシージャ名は、MyPackageName_pub.insert_eventです。このプロシージャのパラメータの説明は、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
請求機能拡張は、取引修正から新規の自動イベントを作成する場合、当初イベント番号(X_event_num_reversed)を検索します。値が見つからなかった場合は、「ADJ自動イベントに当初イベント番号を指定する必要があります。」というエラー・メッセージが表示されます。
注意: Oracle Projectsに用意されている次のビューを使用すると、現在のプロジェクト、最上位タスク、現行要求のクレジット請求書に関する当初の自動イベント情報を確認できます。
PA_BILLING_ORIG_EVENTS_V
通貨属性のルール
請求取引収益または請求額のパラメータが移入されている場合にのみ、取引通貨コードが渡されます。
取引通貨のコード、レートおよび金額がプロシージャに渡されない場合には、プロジェクト機能通貨のコードと金額が使用されます。
取引通貨とプロジェクト機能通貨が同じ場合には、レート・タイプ、レート基準日およびレートは無視されます。
取引通貨とプロジェクト機能通貨が異なっており、通貨属性が渡されない場合、プロジェクトのデフォルト値が使用されます。
注意: 通貨換算のビジネス・ルールの詳細は、『Oracle Projectsインプリメンテーション・ガイド』の複数通貨請求の設定に関する項を参照してください。
完了率または原価見越の事前定義の請求機能拡張によって作成される自動イベントの請求取引通貨は、プロジェクト機能通貨になります。
get_budget_amountプロシージャを使用して、基本編成済の予算原価または収益額を取得します。取得した値は計算に使用します。
プロシージャ名は、MyPackageName.get_budget_amountです。
このプロシージャのパラメータの説明は、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。パラメータには、原価および収益の予算タイプ・コード用の入出力パラメータが含まれます。
このプロシージャでは、X2_project_idパラメータに値を指定する必要があります。また、タスクの予算金額を導出するX2_task_idパラメータを任意で使用できます。
insert_messageプロシージャを使用して、PA_BILLING_MESSAGES表にデバッグ・メッセージやエラー・メッセージを作成します。請求機能拡張で問題が発生した場合には、請求機能拡張を呼び出した収益プロセスや請求プロセスのログ・ファイルを参照して、これらのメッセージを確認できます。また、エラー・メッセージ表でも、これらのメッセージを確認できます。
このプロシージャの名称は、MyPackageName.insert_messageです。
このプロシージャのパラメータの説明は、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
後述する問題について理解し、記述するPL/SQLプロシージャにどのような影響があるのかを判断する必要があります。
自動イベントは、手動イベントと同じように処理されます。ハード制限が適用されているプロジェクトに対してイベントが処理される場合は、ハード制限に抵触しないイベントのみが処理されます。イベント金額は、ハード制限に抵触しても作成されますが、資金が十分な状態になるまで収益草案または請求書草案では処理されません。収益を削除しても、イベントは削除されませんが、収益を再生成すると、同じイベントが新規に作成されます。ハード制限を高く設定すると、イベントは両方とも処理され、イベント金額の重複が生じます。
イベントが二重に作成されないように、自動イベントを1つ作成するロジックを請求機能拡張に記述できます。このロジックではイベントの作成条件を、未処理の自動イベントが存在しない場合、または自動イベントがハード制限に抵触せず、その制限に従って処理可能な場合に制限します。この条件に合致しない場合、イベントは作成されないため、収益をリリースせずに削除する必要があります。収益をリリースする場合には、イベントを手動で計算し挿入する必要があります。
一部の取引独立では、制限に抵触しない金額の挿入が必要な場合があります。ほとんどの取引依存では、処理取引に基づいて金額を計上するときの制限とは無関係に、金額を全額挿入する必要があります。
ヒント: イベント金額を作成するときに、正と負の金額が混在する場合は、使用可能な資金が増加するように、負の金額を最初に作成してください。
自動イベントは手動イベントと同じように処理されます。複数顧客プロジェクトでは、顧客の請求率に応じて顧客ごとにイベントが分割されます。
プロシージャにハード制限ロジックを記述する場合は、複数顧客とハード制限の処理をどうするか検討する必要があります。
1つ以上の請求機能拡張を使用して、同じ実行処理の同じ呼出し元でイベントを作成することができます。この場合、すべての請求機能拡張がその呼出し元で実行されてから、自動イベントが請求書または収益に反映されます。したがって、同じ実行処理中にその呼出し元で処理される別のイベントの金額に依存する請求機能拡張があるかどうかを確認する必要があります。
たとえば、請求書生成の本処理セクションで、追加料機能拡張と保留機能拡張を処理するとします。請求機能拡張の定義にある処理順序に従って、追加料機能拡張が保留機能拡張よりも先に処理されます。追加料イベントは作成されますが、請求書にはまだ反映されません。保留機能拡張は、請求額の合計に依存します。請求額の合計を取得するには、保留機能拡張で、請求書にはまだ反映されていない追加料イベントを計上する必要があります。
同じ実行処理の同じ呼出し元でプロジェクトとタスクに作成される自動イベントを読み込むロジックを、請求機能拡張に記述する必要があります。
次に示すような体系的、構造的な手法でプロシージャを記述すると、請求機能拡張のプロシージャのテストとデバッグが容易になります。また、請求機能拡張の検証には、職務上のリソースと技術リソースの連携が必要になります。
最初のステップでは、テンプレート・ファイルを使用して単純な請求機能拡張を作成します。次の一連の手順に従って、請求機能拡張を使用して自動イベントを作成します。
テンプレート・ファイルをコピーして自分専用のファイルを作成します。
パッケージ名とプロシージャ名を変更します。
insert_eventプロシージャに、特定金額のイベントを作成する呼出しを追加します。
プロシージャをデータベースに保存します。
このプロシージャを使用して、Oracle Projectsで請求機能拡張を定義します。
請求機能拡張を「テスト」プロジェクトに割り当てます。
収益生成と請求書生成を使用してプロジェクトを処理します。請求機能拡張に適合するプロセスを実行する必要があります。
特定金額のイベントが作成されたかどうかを検証します。
統合フローで請求機能拡張が正常に動作することを確認した後、請求機能拡張のロジックを作成します。まず、SQL*PlusでSQL文を記述してからテストします。すべてのSQL文が検証されるまで、それぞれのSQL文を個々に処理します。
注意: 正しいSQL文が、プロジェクト・レベルと最上位タスク・レベルの請求割当を両方とも処理するようにしてください。
取引依存の請求機能拡張を記述する場合は、テスト・プロジェクトに適切な取引を作成し、収益見越または請求処理を使用して、その取引を処理する必要があります。プロセスの要求IDを確認してください。取引には要求IDが割り当てられるため、SQL*PlusでSQL文をテストするときに、この要求IDを使用できます。次のビューのいずれかを使用すると、要求IDを指定して、該当する処理の取引を読み込むことができます。
PA_BILLING_REV_TRANSACTIONS_V
PA_BILLING_INV_TRANSACTIONS_V
これらのビューでは、PL/SQLファンクションが使用されます。このファンクションはビューの定義の中に含まれていて、請求機能拡張の実行対象に合わせて、該当するプロジェクト、タスク、呼出し元および要求IDの変数を決定します。これらの変数は、請求機能拡張が実行される前に、収益および請求書の生成プロセスで設定されます。これらの変数を設定しない場合は、SQL*Plusの該当プロジェクトおよびタスクの全レコードがビューに表示されます。これらの変数をSQL*Plusセッションに設定するには、papbglob.sqlスクリプトを実行します。必要な変数をビューに表示した状態で、SQL文をテストできます。
請求機能拡張で使用する各SQL文のテストと検証の終了後に、SQL文を1つずつ請求機能拡張の定義に追加します。請求機能拡張のロジックに新しい部分を追加した場合は、Oracle Projectsの収益または請求書の統合フローを通して正常に動作するか請求機能拡張をテストして、追加したロジックを検証します。この一連のテストを、請求機能拡張のプロシージャに追加するすべてのSQL文に対して繰り返します。
請求機能拡張にすべてのロジックを追加し、一連の処理の中でテストするときに、別の方法を採用することも可能ですが、その場合には、問題が発生した場合にデバッグが難しくなります。
請求機能拡張のロジックが完成した後、総合的なテストを実施して、請求機能拡張が処理するすべてのビジネス・ケースおよび条件で正常に動作するか検証する必要があります。ここでは、請求機能拡張の実装の設計段階で作成したビジネス・ケースとテスト計画を使用します。
会社でプロジェクト・レベルとタスク・レベル資金を両方とも使用している場合は、その両方を使用しても、請求機能拡張が正常に動作することを確認する必要があります。
取引依存の請求機能拡張を記述した場合は、修正処理が発生したときの処理フローをテストする必要があります。このテストでは、次の修正処理が発生したときの取引を請求機能拡張が正常に処理するか確認します。
金額に変更がある場合とない場合の収益再計算
同一プロジェクトへの転送(転送後の金額が同一になる場合)
異なるタスクへの転送(転送後の金額が異なる場合)
取引の分割
別のプロジェクトへの転送
請求可能から請求不可への組替
総合的なテスト・ケースをすべて検証したら、請求機能拡張の実装は完了です。
プロシージャをデータベースに保存する場合は、pa_billing_ extensions.procedure_nameがpackage.procedure_nameと完全に一致することを確認します。
package.procedure_nameの文字数が30文字以内であることを確認します。
プロシージャをコンパイルし、データベースに保存したことを確認します。
実行対象のプロシージャ以外には、無効なプロシージャまたは古いプロシージャを実行していないことを確認します。実行対象の機能拡張のみが実行されるように、該当レベルの他の機能拡張はすべて無効にします。
このケース・スタディでは、請求機能拡張を使用して、プロジェクトの請求書に追加料を追加する方法を説明します。
設計段階の最初のステップでは、クライアント機能拡張を使用して対処するビジネス・ルールを決定します。
労務費請求額の割合に応じて、請求書に追加料を賦課します。ここでは、この追加料を「通信費」とします。
クライアント機能拡張を使用して対処するビジネス・ルールを定義した後、ビジネス上の問題の背景にあるビジネス要件を書き出します。これは、設計段階でビジネス上の問題のあらゆる側面を把握する上で重要な作業です。
追加料は、交渉が成立したプロジェクトのみに適用します。プロジェクト・ユーザーは、プロジェクトの設定で請求項目を記録するときに通信費を指定します。
この追加料の計算方法は次のとおりです。
追加料=追加料率×労務費請求額
通常、この割合は2%ですが、プロジェクト・マネージャによっては、2.5%または3%から交渉を開始することもあります。
一連の請求処理の中で、通信費の処理を自動化するために、請求機能拡張を作成します。
ヒント: PAXITMPS.plsファイルに、このケース・スタディの実装に相当するサンプルPL/SQLコードが収録されています。
この請求機能拡張に必要なデータを定義する必要があります。このデータとしては、次のものがあります。
イベント・タイプ分類が「自動」の「追加料」のイベント・タイプ
デフォルトの摘要を上書きするためにユーザー入力が可能な、イベント摘要用の通信費請求割当の付加フレックスフィールド・セグメント
会社における通信費のデフォルトの割合を格納する、通信費請求機能拡張の付加フレックスフィールド・セグメント
この他に、プロジェクトの通信費の入力手順を、会社の手引書に記載する必要があります。
請求機能拡張に対する次の問題について、考慮し、解決する必要があります。
計算対象を、収益額、請求額、あるいはその両方にするかどうか。金額の生成時期を、収益見越生成中、請求書生成中、またはその両方にするかどうか。
追加通信費は、請求書生成プロセス中に請求額のみを生成します。収益には影響を与えません。
計算への入力内容はどのようなものか。
追加料=追加料率×労務費請求額
この請求機能拡張は、本処理と修正処理の両方から呼び出され、通常取引、収益業績および請求書クレジットを計上します。
追加料率は、プロジェクトの請求条件を定義するプロジェクト・ユーザーが請求割当で入力します。割合の指定がない場合には、付加フレックスフィールドから会社のデフォルト値を読み込みます。
労務費請求額は、請求書に記載されている労務に対する請求額ですが、超過勤務に対する請求は除外されます。
1)レポート、2)会計、3)請求の各目的に応じた金額の処理方法を決定する必要があります。
レポートに特別な要件はありません。
請求イベントについては、会計上、特に影響はありません。
請求機能拡張のデフォルトのイベント摘要は「通信費」です。プロジェクト・ユーザーは、「イベント摘要」という名称のオプションの付加フレックスフィールド・セグメントを設定することで、この値を上書きできます。このセグメントを設定すると、デフォルトのイベント摘要が上書きされます。
自動イベントの様々な属性(イベント・タイプ、イベント組織、イベント摘要、および完了日)を決定する必要があります。
イベントでは、請求機能拡張の定義の「追加料」というデフォルトのイベント・タイプが使用されます。
イベント組織のデフォルト値は、プロジェクト組織またはタスク組織です。この組織は、このイベントの処理またはレポートには使用されません。
イベント摘要は、前の項目に記載されている内容と同様に設定されます。
完了日は、請求書の請求期限日に設定されます。
計算を使用する条件、プロジェクトのタイプ、請求条件のタイプは何か。
追加通信費は、その追加料について交渉が成立したプロジェクトすべてに適用可能です。
修正は、他の取引に応じて、収益業績または請求書クレジット・メモとして定義されます。
追加料は、すべての請求書と請求書クレジット・メモに計上する必要があります。
同一プロジェクトまたはタスクに他の請求機能拡張が存在する場合にも、この請求機能拡張を呼び出せるようにするかどうか。呼び出せるようにする場合には、請求機能拡張の依存関係および順序をどのように設定するか。
プロジェクトには追加通信費以外にも、請求機能拡張が存在している可能性がありますが、追加通信費は、他の請求機能拡張よりも先に処理される必要があります。
請求割当に割合が指定されていない場合、会社のデフォルト値である2%を使用します。このデフォルト値は、付加フレックスフィールドの請求機能拡張の定義に格納されています。
請求対象の労務が存在しない場合、追加料は請求されません。
追加料率は変わる可能性がありますが、ユーザーは現行の請求割当を無効にして、新しい割合を設定した新規の請求割当を入力する必要があります。入力後には、新しい割合で自動的に処理されます。
計算金額の上限額を設定するかどうか。ある場合は、ロジックはどのようにするか。
通信費には特別な制限はありません。
プロジェクトの資金が調達されるレベル(プロジェクト・レベルまたは最上位タスク・レベルのいずれか)と関係があるか。あるとすれば、どのようなものか。
特に関係するものはありません。
前述の問題に対する解決方法、および請求機能拡張の定義についての理解によって、通信費の請求機能拡張の定義を指定できるようになります。例を次に示します。
注意: 通信費のどの請求割当に対しても、割合の入力が必須というわけではありません。交渉成立した割合をプロジェクト・ユーザーが入力しないと、会社のデフォルトの割合が使用されるためです。
ヒント: 同じPL/SQLプロシージャを他の請求機能拡張で使用して、割合に労務費請求額を乗じて追加料を計算する同様のロジックを適用することもできます。
次の表に、追加料請求機能拡張の属性を説明します。
| 属性 | 値 |
|---|---|
| 請求機能拡張名 | 通信費 |
| プロシージャ | pa_demo_surcharge.execute |
| 説明 | 労務費請求額の割合に基づく追加料請求額の計算 |
| 順序 | 20 |
| デフォルトのイベント・タイプ | 追加料 |
| デフォルトのイベント摘要 | 通信費 |
| 呼出し元: 収益 | No |
| 呼出し元: 請求書 | Yes |
| 呼出し元: 前処理 | No |
| 呼出し元: 修正処理 | Yes |
| 呼出し元: 本処理 | Yes |
| 呼出し元: 後処理 | No |
| 必須入力: 金額 | No |
| 必須入力: パーセント | No |
| プロジェクト固有 | Yes |
| 取引独立 | No |
請求機能拡張のプロシージャのテストに使用するテスト・ケースを次の中から指定します。
| シナリオ | 実行 | 請求書番号 | クレジット請求書番号 | 請求額 | 労務費請求額 | % | 通信費金額 |
|---|---|---|---|---|---|---|---|
| 労務費の請求がない | 1 | 1 | 1000 | 0 | 2 | 0 | |
| クレジット・メモ | 2 | 2 | 1 | -500 | 0 | 2 | 0 |
| 初回の労務費請求 | 3 | 12000 | 10000 | 2 | 200 | ||
| レートの変更に伴うクレジット・メモ | 3 | 4 | 3 | -5000 | -5000 | 2 | -100 |
| 請求レートが新規の労務費 | 5 | 6000 | 6000 | 2 | 120 | ||
| 通信費の割合に変更あり | 4 | 6 | 5000 | 5000 | 3.5 | 175 | |
| 合計 | 18500 | 16000 | 395 |
これで、PL/SQLプロシージャの記述を担当する技術リソースに渡す、機能設計の要素はすべて揃いました。
関連トピック
『Oracle Projectsインプリメンテーション・ガイド』のイベント・タイプに関する項
『Oracle Projectsインプリメンテーション・ガイド』のプロジェクト・タイプの定義に関する項
原価見越請求機能拡張のクライアント機能拡張を使用すると、会社のビジネス・ルールを原価見越のプロシージャに適用できます。
機能拡張には、次の項目が含まれています。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXICOSB.pls |
| 仕様テンプレート | PAXICOSS.pls |
| パッケージ | PA_REV_CA |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
次のプロシージャのパラメータの説明は、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
原価見越の機能拡張の詳細は、『Oracle Project Billing User Guide』の収益基準原価見越に関する項を参照してください。
計算のプロシージャ(calc_ca_amt)は、原価見越エントリの計算と生成を行う主要なプロシージャです。
PSI原価見越のプロシージャ(get_psi_cols)は、「プロジェクト・ステータス照会」の原価見越列を表示します。
このプロシージャの名称は、verify_project_status_caです。このプロシージャは、ユーザーがプロジェクトのステータスを変更したときに呼び出されます。
このプロシージャの名称は、check_if_cost_accrualです。このプロシージャは、プロジェクトに原価見越があるかどうかをチェックし、請求機能拡張の11列目から15列目までの属性を元に変数を設定します。
この機能拡張を使用して、収益生成中に原価見越を使用する相互賦課プロジェクトを識別します。『Oracle Project Billing User Guide』の収益基準原価見越に関する項、および『Oracle Projects基礎』の収益草案の生成に関する項を参照してください。
機能拡張には、次の項目が含まれています。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAICPCAB.pls |
| 仕様テンプレート | PAICPCAS.pls |
| パッケージ | PA_CC_CA |
| プロシージャ | identify_ca_projects |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
労務費請求機能拡張を使用すると、労務取引ごとの労務請求額を導出できます。独自の労務費請求方法の実装に、労務費請求機能拡張を使用できます。たとえば、次のような場合に労務費請求機能拡張を定義します。
超過勤務割増賃金時間を原価で請求する場合
実行済の作業量に基づいて請求する場合
労務費請求機能拡張は、収益生成プロセスで呼び出され、労務収益の金額と請求額を算出します。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXICTMB.pls |
| 仕様テンプレート | PAXICTMS.pls |
| パッケージ | PA_Client_Extn_Billing |
| プロシージャ | Calc_Bill_Amount |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
収益生成中に労務費請求機能拡張が処理され、活動基準請求額が算出されます。処理中に、労務費請求取引から請求額を導出した取引が検出された場合には、その取引に対する収益プロセスでは、標準の請求額とレートを計算する部分がスキップされます。
労務費請求機能拡張を設計する上で次の点を考慮してください。
Oracle Projectsに用意されている標準の活動基準請求方法(WORK配分ルールに基づく方法)では対応できない条件および環境
このようなケースにおける、請求額の計算方法
前述の条件を満たす労務取引の識別方法
独自の計算方法に必要なレートなどの情報の保存方法および保守方法
労務費請求機能拡張の例外条件、レートが存在しない場合の例外処理
プロシージャ名は、PA_Client_Extn_Billing.Calc_Bill_Amountです。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
ここでは、このプロシージャのパラメータを説明します。
| 変数 | 説明 |
|---|---|
| 金額 |
|
| 請求レート | x_bill_rate_flagパラメータに、次の値のいずれかが返されます。この値は、導出した金額が請求レートと値入れ率のどちらに基づいているのかを表します。
金額が請求レートに基づくように指定した場合、支出項目の請求レートは、請求額を時間数で割った値になります。金額が値入れ率に基づく場合、Oracle Projectsでは請求レートは設定されません。 |
| 値入れ率 | 金額が値入れ率に基づくように指定した場合、支出項目レコードに正確なデータが格納されるように、x_markup_percentageに値入れ率の金額を移入する必要があります。 |
| ステータス | プロシージャのエラー条件を処理するには、x_statusパラメータを使用します。このパラメータは、次のように機能拡張の処理ステータスを示します。 |
| 変数 | 説明 |
|---|---|
| x_status = 0 | 機能拡張は正常に実行されました。 |
| x_status < 0 | Oracleエラーが発生し、プロセスが正常に完了しませんでした。プロセス・ログ・ファイルにエラー・メッセージが記録され、プロジェクト全体の処理済取引がロールバックされます。 |
| x_status > 0 | アプリケーション・エラーが発生しました。項目は配分済収益には設定されず、PA_EXPENDITURE_ITEMS.REV_DIST_ REJECTION_CODEに棄却事由が書き込まれます。収益生成の例外レポートで、棄却事由を確認できます。 |
関連トピック
『Oracle Project Billing User Guide』の収益フローに関する項
非労務請求機能拡張を使用すると、労務取引以外の取引ごとの労務請求額を導出できます。独自の非労務請求方法の実装に、非労務請求機能拡張を使用できます。たとえば、次のような場合に、非労務請求機能拡張を定義します。
段階式の価格設定方法
外部システムのレートの導出
非労務請求機能拡張は、収益生成プロセスで呼び出され、非労務収益の金額と請求額を算出します。機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXINCTB.pls |
| 仕様テンプレート | PAXINCTS.pls |
| パッケージ | pa_non_labor_bill_clt_extn |
| プロシージャ | calc_bill_amount |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。
収益生成中に非労務請求機能拡張が処理され、活動基準請求額が算出されます。処理中に、非労務費請求取引から請求額を導出した取引が検出された場合には、その取引に対する収益プロセスでは、標準の請求額とレートを計算する部分がスキップされます。
非労務請求機能拡張を設計する上で次の点を考慮してください。
Oracle Projectsに用意されている標準の活動基準請求方法(WORK配分ルールに基づく方法)では対応できない条件および環境
このようなケースにおける、請求額の計算方法
前述の条件を満たす労務取引の識別方法
独自の計算方法に必要なレートなどの情報の保存方法および保守方法
非労務請求機能拡張の例外条件、レートが存在しない場合の例外処理
プロシージャ名は、Pa_Non_Labor_Bill_Clt_Extn.Calc_Bill_Amountです。
パラメータに関する詳細情報
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
ここでは、このプロシージャのパラメータを説明します。
請求レートを使用する場合: x_bill_rate_flagパラメータに、次の値のいずれかが返されます。この値は、導出した金額が請求レートと値入れ率のどちらに基づいているのかを表します。
B(請求レートを指定)
NULLまたはB以外の値(値入れ率を指定)
金額が請求レートに基づくように指定した場合、支出項目の請求レートは、請求額を時間数で割った値になります。金額が値入れ率に基づく場合、Oracle Projectsでは請求レートは設定されません。
ステータスを使用する場合: プロシージャのエラー条件を処理するには、x_statusパラメータを使用します。このパラメータは、次のように機能拡張の処理ステータスを示します。
x_status = 0: 機能拡張は正常に実行されました。
x_status < 0: Oracleエラーが発生し、プロセスが正常に完了しませんでした。プロセス・ログ・ファイルにエラー・メッセージが記録され、プロジェクト全体の処理済取引がロールバックされます。
x_status > 0: アプリケーション・エラーが発生しました。項目は配分済収益には設定されず、PA_EXPENDITURE_ITEMS.REV_DIST_ REJECTION_CODEに棄却事由が書き込まれます。収益生成の例外レポートで、棄却事由を確認できます。
関連トピック
『Oracle Project Billing User Guide』の収益フローに関する項
この機能拡張を使用して、源泉徴収額を請求するためのビジネス・ルールを定義します。この機能拡張を使用する場合、請求書生成プロセスでは、機能拡張で定義した条件に合致し、純保留残高がまだ請求されていないプロジェクトが選択されます。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXBRTCB.pls |
| 仕様テンプレート | PAXBRTCS.pls |
| パッケージ | pa_client_extn_retention |
| プロシージャ | BILL_RETENTION |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
関連トピック
『Oracle Project Billing User Guide』の保留請求に関する項
自動請求書承認/リリース機能拡張を使用すると、請求書草案の生成プロセスの一部である請求書の承認およびリリースを自動化できます。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXPIACB.pls |
| 仕様テンプレート | PAXPIACS.pls |
| パッケージ | pa_client_extn_inv_actions |
| プロシージャ | approve_invoice、release_invoice |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
自動請求書承認/リリース機能拡張は、請求書生成中に呼び出されます。処理中に、この機能拡張で「Yes」に設定された承認フラグまたはリリース・フラグが返された場合、プロセスで請求書が承認(該当する場合は、リリース)されます。
プロジェクトに対する自動請求書承認/リリース機能拡張の適用範囲を決定する必要があります。次の設計上の課題の検討をお薦めします。
プロジェクト請求書の承認を自動化するための条件および環境
プロジェクト請求書の承認およびリリースを自動化するための条件および環境
この機能を実装する必要があるプロジェクトのタイプ
これらのプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
ここでは、このクライアント機能拡張のパラメータを説明します。
x_invoice_classの有効な値は次のとおりです。
| 値 | 説明 |
|---|---|
| INVOICE | 通常の請求書 |
| CREDIT_MEMO | クレジット請求書 |
| WRITE_OFF | 貸倒償却の請求書 |
| CANCEL | 請求書の取消 |
プロシージャのエラー条件を処理するには、x_statusパラメータを使用します。このパラメータは、次のように機能拡張の処理ステータスを示します。
| 値 | 説明 |
|---|---|
| x_status = 0 | 機能拡張は正常に実行されました。 |
| x_status < 0 | Oracleエラーが発生し、プロセスが正常に完了しませんでした。プロセス・ログ・ファイルにエラー・メッセージが記録されます。 |
| x_status > 0 | アプリケーション・エラーが発生しました。PA_DISTRIBUTION_WARNINGS表に棄却事由が書き込まれます。この請求書は承認またはリリースされません。 |
Oracle E-Business Taxの「アプリケーション税金オプション」で、Oracle Projectsとプロジェクト営業単位の階層を設定します。請求書草案の生成プロセスでは、請求書明細のデフォルト税分類コードの判定に、「アプリケーション税金オプション」階層が使用されます。仮受税クライアント機能拡張は、「アプリケーション税金オプション」階層のデフォルト税オプションの1つです。
「アプリケーション税金オプション」階層で定義した税オプションにデフォルト税分類コードがない場合には、請求書草案の生成プロセスから仮受税機能拡張が呼び出されます。この機能拡張を使用して、ビジネス・ルールに合致するように、請求書明細にデフォルト税分類コードを割り当てることができます。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 仕様テンプレート | PAXPOTXS.pls |
| 本体テンプレート | PAXPOTXB.pls |
| パッケージ | pa_client_extn_output_tax |
| プロシージャ | get_tax_codes |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
このプロシージャの名称は、get_tax_codesです。get_tax_codesプロシージャは、税分類コードを請求書明細に割り当てます。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
関連トピック
『Oracle Projectsインプリメンテーション・ガイド』のOracle E-Business TaxでのOracle Project Invoicesの税設定に関する項
『Oracle E-Business Taxユーザー・ガイド』
売掛管理インストールの上書きクライアント機能拡張を使用すると、売掛管理機能の主要部分として、サード・パーティの売掛管理システムを使用できます。また、Oracle Receivablesの顧客データをインポートすることもできます。このクライアント機能拡張がない場合、Oracle Receivablesが完全インストールされている場合のみ、顧客データをインポートできます。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 仕様テンプレート | PAPARICS.pls |
| 本体テンプレート | PAPARICB.pls |
| パッケージ | pa_override_ar_inst |
| プロシージャ | get_installation_mode |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
この機能拡張を使用するには、Oracle Receivablesの完全インストールが完了している必要があります。また、インストールの完了後に、売掛管理インストールの上書き機能拡張を使用して、このインストール・モードを「共有」に上書きする必要があります。
警告: Receivablesの共有インストールを完全インストール・モードに上書きしないでください。このクライアント機能拡張は、完全インストールから共有モードへの上書きのみを対象としています。
次の条件に合致する場合に、インストールを共有モードに上書きします。
どのウィンドウを表示しても「税コード」フィールドが無効の場合
売掛請求書の「GL記帳日」が、Oracle Receivablesの期間ではなく、「GL期間」に基づいて計算されている場合
Receivablesのインストールを上書きする場合は、「請求書: AR請求書」(Oracle Receivablesにドリルダウンして請求書を表示)などの、Receivables標準の共有インストールでは使用不可能な機能を無効にする機能セキュリティを使用できます。
警告: 「請求書: 貸倒償却」機能を無効にする必要があります。貸倒償却を作成しようとすると、処理上の問題が発生します。
この機能拡張は、売掛管理への請求書のインタフェース・プロセスから呼び出されます。
get_installation_modeプロシージャは、呼出し元プログラムにインストール・モードを返します。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
デフォルトのプロシージャには、次のPL/SQL文が記述されています。
x_ar_inst_mode := p_ar_inst_mode
Oracle Receivablesの完全インストールを共有モードに上書きするには、この文を次の文に変更します。
x_ar_inst_mode := 'S'
AR取引タイプ機能拡張を使用すると、請求書をOracle ReceivablesにインタフェースするときのAR取引タイプを決定できます。
AR取引タイプ機能拡張は、Oracle Receivablesに請求書が転送されるときに呼び出されます。
機能拡張は、次の項目で識別されます。
| 項目 | 名称 |
|---|---|
| 本体テンプレート | PAXPTRXB.pls |
| 仕様テンプレート | PAXPTRXS.pls |
| パッケージ | pa_client_extn_inv_transfer |
| プロシージャ | get_ar_trx_type |
重要: 機能拡張プロシージャまたはパラメータの名称を変更しないでください。また、プロシージャのパラメータ・タイプまたはパラメータの順序を変更しないでください。プロシージャの記述後に、それをコンパイルし、データベースに格納します。詳細は、「PL/SQLプロシージャの記述」を参照してください。
このプロシージャの名称は、pa_client_extn_inv_transfer.get_ar_trx_typeです。
このプロシージャのパラメータは、Oracle Integration Repositoryで表示できます。Oracle Integration Repositoryは、このマニュアルの「はじめに」で説明されています。
ここでは、この機能拡張のパラメータを説明します。
x_invoice_classの有効な値は次のとおりです。
| 値 | 説明 |
|---|---|
| INVOICE | 通常の請求書 |
| CREDIT_MEMO | クレジット請求書 |
| WRITE_OFF | 貸倒償却の請求書 |
| CANCEL | 請求書の取消 |
プロシージャのエラー条件を処理するには、x_statusパラメータを使用します。このパラメータは、次のように機能拡張の処理ステータスを示します。
| 値 | 説明 |
|---|---|
| x_status = 0 | 機能拡張は正常に実行されました。 |
| x_status < 0 | Oracleエラーが発生し、プロセスが正常に完了しませんでした。プロセス・ログ・ファイルにエラー・メッセージが記録されます。 |
| x_status > 0 | アプリケーション・エラーが発生しました。PA_DISTRIBUTION_WARNINGS表に棄却事由が書き込まれます。この請求書は承認またはリリースされません。 |