Oracle Advanced Pricingインプリメンテーション・マニュアル リリース12 E05612-01 | ![]() 目次 | ![]() 前へ | ![]() 次へ |
この章では次のトピックについて説明します。
モディファイアは、価格設定プロセスに作用する、価格表、算式および基本契約とは別の価格設定処理です。モディファイアにより、ネット価格は増額または減額します。モディファイア処理には、値引、追加料金の設定、出荷費用の請求、受注条件(支払方法、運送方法または出荷方法)の変更、または販促用の価格設定処理に基づく価格の調整があります。
実装に関する主な決定事項: 価格設定処理におけるモディファイアの使用方法。価格設定プロセスを適切に表現するモディファイア。
Oracle Advanced Pricingでは、シード済のモディファイア・リストとモディファイア明細タイプが提供されます。モディファイア・リスト・タイプは、値引、追加料金、取引、販促品、運送費および特別手数料です。
次の表に、モディファイア・リスト内に作成できるモディファイア・タイプを示します。
モディファイア・タイプ(先頭行) | 値引リスト | 追加料金リスト | 取引(販促品と関連付けられる必要あり) | 販促品 | 運送費および特別手数料リスト |
---|---|---|---|---|---|
値引 | 可能 | 可能 | 可能 | 可能 | 不可 |
追加料金 | 可能 | 可能 | 可能 | 可能 | 不可 |
他の品目値引 | 不可 | 不可 | 可能 | 可能 | 不可 |
条件代替 | 不可 | 不可 | 可能 | 可能 | 不可 |
品目アップグレード | 不可 | 不可 | 可能 | 可能 | 不可 |
価格分岐 | 可能 | 可能 | 可能 | 可能 | 不可 |
販促品 | 不可 | 不可 | 可能 | 可能 | 不可 |
クーポン発行 | 不可 | 不可 | 可能 | 可能 | 不可 |
運送および特別手数料 | 不可 | 不可 | 不可 | 不可 | 可能 |
重要: 使用している現行の価格設定取引エンティティについてのみモディファイア・リストを表示または更新できます。
モディファイア・リストを表示または更新するには、モディファイア・リストの価格設定取引エンティティ(PTE)と、プロファイル・オプション「QP: 価格設定取引エンティティ」のPTEセットが一致する必要があります。
ソース・システムでは、モディファイア・リストの表示または更新のみできます。モディファイア・リストを更新するには、プロファイル・オプション「QP: ソース・システム・コード」とモディファイア・リストのソース・システムが一致する必要があります。
価格とモディファイアを階層品目カテゴリおよび平坦化された品目カテゴリに基づいて設定できます。価格表またはモディファイアの階層カテゴリに対してカテゴリ・ベースの価格設定を定義できます。これを行うには、データを作成するソース・システムの機能領域にデフォルトの階層カテゴリ・セット(カタログ)を設定する必要があります。詳細は、「階層品目カテゴリの価格設定」を参照してください。
Oracle Advanced Pricingには、HTMLベースのユーザー・インタフェース(UI)が用意されています。このUIの、ガイドつきのステップ、使いやすいページおよびショートカット・リンクを使用して、モディファイア、価格表およびクオリファイアを設定および保守できます。
HTMLユーザー・インタフェースでは、次のモディファイア・リスト・タイプおよびモディファイア明細タイプを作成できます。
取引
値引リスト
販促品
追加料金リスト
注意: 「運送費および特別手数料リスト」を作成するには、Oracle Formsベースのユーザー・インタフェースを使用する必要があります。
モディファイア・リストを作成すると、価格調整のタイプおよび価格設定エンジンによって価格設定要求に適用される特典のタイプを定義するモディファイア明細を追加できます。HTML UIでは、次のモディファイア明細タイプが使用できます。
値引: 負の価格調整を作成します。
販促品: 顧客が同一の発注で特定の品目を注文した場合に、価格調整を行うか、または特典を付ける新規品目を受注明細に追加します。
価格分岐: 各種値引または追加料金による価格調整を適格な分岐タイプに適用します。点と範囲の両方の分岐タイプを使用できます。
追加料金: 正の価格調整を作成します。たとえば、顧客受注に10パーセントの取扱手数料を適用します。
関連トピック
『Oracle Advanced Pricingユーザーズ・ガイド』の「モディファイア」
クライアントのビジネスの価格設定使用例を分析および理解するときに、論理的な価格設定ソリューションを開発するために、実装に関するいくつかの主な決定事項について検討する必要があります。この章では、これらの決定事項について説明します。組織の価格帯をビジュアル化すると、Oracle Advanced Pricingの効果的な実装計画を開発するのに役立つ場合があります。
次の例では、組織のモディファイアをOracle Advanced Pricingのコンポーネントにマッピングするための視覚的なガイドを示します。
ソース価格設定データは、品目「Super Wine」に品目カテゴリ「Wine」が定義されているという前提に基づいています。顧客区分「VIP」に属する顧客「XYZ Corporation」から、2000年6月15日に数量15の発注がありました。
バケット | 価格設定フェーズ | 非互換グループ | クオリファイア/製品属性(優先) | モディファイア/価格表 | 値引 | 小計 |
---|---|---|---|---|---|---|
基準価格 | リスト明細基準価格 | 排他 | 顧客区分: VIP (310) 品目コード: Super Wine (220) | 法人価格表: $1000 | NULL | NULL |
基準価格 | リスト明細基準価格 | 排他 | 品目カテゴリ: Wine (290) | 指定仕入先: $800 | NULL | NULL |
基準価格 | リスト明細基準価格 | NULL | NULL | NULL | NULL | $1,000 |
バケット1 | リスト明細調整 | レベル1 | 品目数量> 10 (800) 品目コード: Super Wine (220) | 7月4日販促 10% | $100 | NULL |
バケット1 | リスト明細調整 | レベル1 | 顧客区分: VIP (310) | サマー・キャンペーン 15% | NULL | NULL |
バケット1 | リスト明細調整 | レベル2 | 顧客ID: XYZ Corp (260) | VIP値引 $40 | $40 | NULL |
バケット1 | リスト明細調整 | レベル2 | 顧客ID: XYZ Corp (260) | 平日値引 $20 | NULL | NULL |
バケット1 | 全明細調整 | レベル1 | 品目カテゴリ: Wine (290) | 一般値引: $20 | $10 | NULL |
バケット1 | 全明細調整 | 排他 | 受注日< 01-DEC-2000 (510) | 季節値引: $10 | NULL | NULL |
バケット1 | ヘッダー・レベル調整 | レベル1 | NULL | 優先顧客 10% | 100 | NULL |
バケット1 | 明細手数料 | レベル1 | NULL | 取扱手数料 $20 | $20 | NULL |
バケット1 | ヘッダー・レベル手数料 | レベル1 | NULL | NULL | NULL | NULL |
バケット1 | ヘッダー・レベル手数料 | NULL | NULL | NULL | NULL | $750 |
バケット2 | 調整 | レベル2 | NULL | 高頻度使用の追加料金 2% | ($15) | NULL |
バケット2 | 全明細調整 | レベル2 | NULL | NULL | NULL | NULL |
バケット2 | ヘッダー・レベル調整 | レベル2 | NULL | NULL | NULL | NULL |
バケット2 | 明細手数料 | レベル2 | NULL | NULL | NULL | NULL |
バケット2 | ヘッダー・レベル手数料 | レベル2 | NULL | NULL | NULL | NULL |
バケット2 | ヘッダー・レベル手数料 | レベル2 | NULL | NULL | NULL | NULL |
バケット2 | NULL | NULL | NULL | NULL | NULL | $765 |
価格設定エンジンは、モディファイア・レベルを使用して、特定のモディファイアに対する価格設定要求の適格性およびモディファイアを適用するレベル(受注、明細、または明細のグループ)を判断します。
明細: 特定の受注明細に対してのみ適用されます。
明細のグループ: 受注の明細のグループに適用されます。
受注: 受注全体に適用されます。
たとえば、明細レベルで適用される容積ベースの値引モディファイアでは、適用対象の明細の容積のみが考慮されます。明細グループ・レベルで適用される容積ベースの値引モディファイアでは、価格設定要求で適用対象となる明細全体の容積が考慮されます。
使用可能な適用方法から選択して、異なる価格設定処理を作成できます。
金額: 「値」フィールドに指定した金額に対して、各単位での固定価格調整が作成されます。
パーセント: 「値」フィールドに指定したパーセントに対して、各単位でのパーセント価格調整が作成されます。
新価格: 品目の販売価格を上書きし、上書き後の価格を新価格とします。
総額: 明細全体の総計額に対して価格調整が作成されます。
使用可能な適用方法は、選択したモディファイアの明細タイプとレベルによって異なります。これは、「値引/手数料」タブで確認できます。価格設定処理の値を操作するために算式を使用できます。
次の表は、様々なモディファイア・レベルに対して使用できる適用方法を示しています(適用方法は、一番上の行に記載されています)。
モディファイア適用方法: 明細レベル
モディファイア明細タイプ(下の列) | パーセント値 | パーセント算式 | 金額値 | 金額算式 | 新価格値 | 新価格算式 | 総額値 | 総額算式 |
---|---|---|---|---|---|---|---|---|
値引 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 |
追加料金 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 |
運送費/特別手数料 | 可能 | 可能 | 可能 | 可能 | 不可 | 不可 | 可能 | 可能 |
他の品目値引(取得品) | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 |
価格分岐 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 |
販促品(取得品) | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 |
モディファイア適用方法: 明細グループ・レベル
モディファイア明細タイプ(下の列) | パーセント値 | パーセント算式 | 金額値 | 金額算式 | 新価格値 | 新価格算式 | 総額値 | 総額算式 |
---|---|---|---|---|---|---|---|---|
値引 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 |
追加料金 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 |
他の品目値引(取得品) | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 |
価格分岐 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 | 可能 |
販促品(取得品) | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 | 可能 | 不可 |
モディファイア適用方法: 受注レベル
モディファイア明細タイプ(下の列) | パーセント値 | パーセント算式 | 金額値 | 金額算式 | 新価格値 | 新価格算式 | 総額値 | 総額算式 |
---|---|---|---|---|---|---|---|---|
値引 | 可能 | 可能 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 |
追加料金 | 可能 | 可能 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 |
運送費/特別手数料 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可能 | 可能 |
次の項では、モディファイア・タイプ(「値引」、「他の品目値引」、「価格分岐ヘッダー」、「販促品」)に対する値引を明細グループ・レベルで適用する場合の特別な考慮事項を説明します。
明細グループ・レベルのモディファイア・タイプについては、次の考慮事項に注意してください。
「品目数量」および「品目金額」の「ボリューム・タイプ」のみ選択できます。
いくつかの除外品目または品目カテゴリが設定されている場合、このモディファイアの適用対象となる除外品目または品目カテゴリに基づく受注明細は、明細のグループの計算対象になりません。
例: 明細のグループの処理および除外品目
除外品目が1つ設定された明細グループ・レベルの受注明細をモディファイアが評価する方法を説明するために、次の2つのモディファイアを設定しました。
除外品目なしで設定されているModifier_Shampoo1
Shampoo1が除外品目として指定され設定されているModifier_Shampoo2
この2つのモディファイアの設定は、次の表に要約されています。
モディファイア名 | レベル | 品目カテゴリ | 数量 | 除外品目 |
---|---|---|---|---|
Modifier_Shampoo1 | 明細のグループ | Shampoo | > 100個 | なし |
Modifier_Shampoo2 | 明細のグループ | Shampoo | > 100個 | Shampoo1 |
次の表に示すように、顧客が2つのShampoo品目(Shampoo1とShampoo2)およびConditionerを発注したとします。
受注明細ID | 品目カテゴリ | 品目 | 数量 |
---|---|---|---|
1 | Shampoo | Shampoo 1 | 70 |
2 | Shampoo | Shampoo 2 | 40 |
3 | Conditioner | Conditioner | 30 |
2つのモディファイアModifier_Shampoo1およびModifier_Shampoo2は、Shampoo受注に適用されます。ただし、後述するように、モディファイア設定に基づいて行われる明細のグループの評価は、モディファイアによって異なります(1つのモディファイアは除外品目を考慮しますが、もう1つのモディファイアは考慮しません)。
Shampoo受注に適用されるModifier_Shampoo1
Modifier_Shampoo1が適用される前に、Shampoo受注の明細が評価されます。
品目カテゴリShampooの品目であるため、受注明細1および2は、Modifier_Shampoo1の適用対象となります。
受注数量が100を超えているかどうかを判別するために、適用対象の受注明細1および2の数量が集計されます。この例では、数量は110で100を超えています。
このチェックの結果、モディファイアModifier_Shampoo1が適用されます。その理由は、次のとおりです。
Shampooが考慮対象品目の品目カテゴリです。
品目カテゴリShampooの受注明細数量が100を超えています。
Shampoo受注に適用されるModifier_Shampoo2
Modifier_Shampoo2が適用される前に、次のように受注明細が評価されます。
受注明細2は、Modifier_Shampoo2の適用対象となります。
品目Shampoo1が除外品目であるため、受注明細1は拒否されます(Shampoo1が除外品目として指定され、そのため除外されるModifier_Shampoo2の設定を参照してください)。
受注数量が100を超えているかどうかを判別するために、受注明細2(適用対象となる唯一の受注明細)の数量が集計されます。この例では、数量は40で100を超えていません。
受注数量が100を超えていないため、このチェックの結果、モディファイアModifier_Shampoo2は適用されません。
関連トピック
クオリファイアを使用すると、モディファイアの体系を顧客階層に関連付けることができます。このトピックの詳細は、「実装方法」を参照してください。
モディファイアは、品目番号、品目カテゴリまたは全品目に対して設定できます。価格設定属性を使用すると、製品階層を詳細に定義できます。
除外を選択すると、個々の品目または品目カテゴリをモディファイアの適用対象から除外できます。品目が除外品目カテゴリ内および非除外品目カテゴリ内にある場合、除外品目カテゴリが優先されます。階層カテゴリが除外品目で指定されている場合、そのカテゴリに関連付けられている最終品目および子カテゴリに属する品目はすべて除外されます。
たとえば、全品目に対するモディファイアで品目カテゴリ"IC 1"が除外されているとします。品目Zは、IC1、IC2およびIC3に属しています。エンジンによって品目ZがIC1内にあることが評価されると、その品目がIC2およびIC3にある場合でも、モディファイアは適用されません。
モディファイアに関して単位換算は使用できません。価格設定エンジンは、価格設定単位に対して選択された単位(UOM)と一致するか、またはNULL値のモディファイア明細のみを評価します。たとえば、品目Aの単位が個で、価格表明細で基準単位としてチェックされているとします。品目Aの受注単位はダースです。したがって、エンジンは個またはNULL値のモディファイア明細のみを考慮します。単位は、価格分岐以外のモディファイア・タイプに対しては必須フィールドではありません。
注意: ボリューム・タイプが「品目金額」の場合、販促モディファイアの単位は必須ではありません。次の場合のみ単位は必須です。
リスト明細が、「販促品」、「他の品目値引」、「品目アップグレード」のいずれかで、ボリューム・タイプが「品目金額」、「期間1 品目金額」、「期間2 品目金額」、「期間3 品目金額」のいずれでもありません。
モディファイア明細のボリューム・タイプが「品目数量」です。
価格設定フェーズによって、価格設定エンジンがモディファイアを適用する時期が決まります。たとえば、リスト明細調整フェーズ内のモディファイアは、明細が入力された後でのみ適用されます。全明細調整フェーズ内のモディファイアは、明細が保存された後でのみ適用されます。パフォーマンスに影響を与える可能性がある不必要な価格設定エンジンの呼出しに注意してください。
優先の値は、「コンテキストと属性」ウィンドウで定義された製品属性(品目番号、品目カテゴリなど)およびクオリファイア属性の設定に基づいてデフォルト設定されます。詳細は、「実装方法」および「優先と最善価格」を参照してください。
モディファイアを他のモディファイアと同じ非互換グループ・レベルに設定すると、相互に非互換にすることができます。このように設定すると、価格設定エンジンは、受注明細または受注に対してフェーズごとに1つのモディファイアのみを適用します。非互換レベルの詳細は、「優先と最善価格」を参照してください。
価格設定バケットによって、値引およびその他の特典がフェーズ全体でどのように計算されるかが管理されます。値引および特典をバスケットにグループ化することにより、すべての価格設定フェーズにわたって正味販売価格を割り出すことができます。
NULLバケット
NULLバケットに割り当てられたモディファイアは、最後に適用され、常に定価から調整されます。受注レベルのモディファイアは、NULLバケット内に置く必要があります。価格設定エンジンは、NULLバケットの販売価格を計算する際、次のステップを使用します。
定価を使用してパーセント値引を計算します。
すべてのバケット・モディファイア値を合計して、バケット小計を作成します。
最後に番号が割り当てられたバケットの後に小計を適用します。
次のように、各バケットにそれぞれ異なる調整を割り当てて設定したとします。
NULLバケット: 50パーセントの値引をNULLバケットに割り当てます。
バケット1: 10パーセントの値引を割り当てます。
バケット2: 10パーセントの追加料金を割り当てます。
バケットを使用して、定価が$55のSP ATO Modelの価格を計算します。次の表に、最終価格の計算方法を示します。
バケット | モディファイア調整 | 計算価格 | 最終価格 |
---|---|---|---|
バケット1 | 10%値引 | 55 - (10%*55) | $49.50 |
バケット2 | 10%追加料金 | 49.5 + (10%*49.5) | $54.45 |
NULLバケット | 50%値引注意: モディファイアは最後に適用され、定価から値引が計算されます。 | 54.45 - (50%*55) | $26.95 |
必要なバケット数は、クライアントの請求書の小計をカウントして決定します。当初の定価と最終的なネット価格の間に番号を追加して、モディファイアの計算順序を管理します。これらの小計に基づいて、バケットへの値引の割当てを計画します。
NULLのバケットの場合は、定価からモディファイアによる値引が計算された後、最終的なバケットの小計に調整が適用されます。受注レベルのモディファイアは、常にNULLバケット内にあります。
Oracle Advanced Pricingでは、定義できるバケットの数は制限されていません。
手動モディファイア
指定されたバケットに手動モディファイアを適用した場合、後続のバケット内のすべてのモディファイアが再評価されます。
次の価格設定管理は、モディファイアおよびモディファイア明細の適用方法を定義するために設定できます。
価格設定エンジンが複数のモディファイアを戻す対象として検出したが、適用できるモディファイアが1つのみの場合に非互換性が発生します。エンジンは、優先または最善価格のいずれかを使用してこの非互換を解決します。
自動適用: 価格設定エンジンによってモディファイアを自動的に適用する場合は、「自動適用」を選択します。特定のモディファイアは、自動的に適用される必要があります。その場合、値は変更できません。
顧客からのリスト請求が必要(または「請求」): 「顧客要請求リスト」ボックスが選択されているモディファイアは、呼出し側アプリケーションを介してユーザーが要求した場合にのみ適用されます。このフィールドは、リスト・タイプが「販促品」または「取引」の場合にのみ使用可能です。
上書き: モディファイア調整価格を手動で上書きできるようにする場合は、「上書」を選択します。このボックスを選択しないと、モディファイア調整価格の上書きができません。「上書」ボックスには、上書きをサポートするタイプのモディファイアのみが表示されます。
モディファイア・リストおよびモディファイア明細の有効日: モディファイア明細の有効日は、モディファイア・リストの有効日内であることが必要です。
受注日および要求出荷日用の追加の日付タイプ: モディファイア・リストの有効日を管理するために設定できる追加パラメータです。
「比較値」フィールド: このフィールドには、品目アップグレード、条件代替、クーポン発行、他の品目値引および販促品に対する特典品目の概数値が格納されます。この値は最善価格処理時に使用されます(このフィールドはOracle General Ledgerには影響を与えません)。
価格計算フラグ: 価格要求を部分的にまたは完全に固定できるようにするために、呼出し側アプリケーションによって渡されます。このフラグの値に応じて、価格を完全に固定したり、特定のフェーズに追加のモディファイアを適用することができます。
警告: 「価格の計算」フィールドを無償品目の価格を計算するように変更しないでください。
値引、追加料金、運送費および点の価格分岐について手動調整を定義できます。受注明細で販売価格を直接上書きするには、手動値引または手動追加料金を定義する必要があります。手動調整を定義するときは、次のガイドラインに従ってください。
「自動」ボックスの選択を解除する必要があります。
上書き可能な手動調整のための「上書」ボックスが選択されている必要があります。
手動モディファイアではバケットが使用できます。
手動調整は価格設定フェーズに基づいて適用されます。
エンジンは、プロファイル・オプション「QP: 手動値引戻し」で定義されている値に基づいて手動値引を戻します。
このプロファイル・オプションが「Y」に設定されている場合は、すべての手動値引が戻され、考慮されていないすべての自動値引が手動値引として戻されます。この設定がデフォルトです。
プロファイル・オプションが「N」に設定されている場合は、手動および自動のすべての値引で非互換処理が実行され、非互換グループごとに1つの値引が戻されます。
非互換処理の一環として削除された値引(自動または手動)は、手動値引として戻されません。
算式計算を使用する手動値引の場合は、算式に対するすべての属性が、価格設定要求で価格設定エンジンに送信される必要があります。エンジンは、受注明細に適用できる手動値引を戻します。
受注明細の販売単価に対する「手動調整」フィールドには、明細および明細グループの手動調整のみが表示されます。
明細への手動調整の適用後、calculate_price_flagは「Y」のままです。他の調整が明細に適用されないようにするには、calculate_price_flagを「P」または「N」に設定します。受注レベルの手動調整を適用する場合は、「調整の表示」画面を使用します。いずれかの明細のcalculate_price_flagが「P」または「N」の場合は、受注レベルの調整を受注に適用することはできません。明細に対して適用可能な手動調整がない場合は、使用できる適用可能な値引がないことを示す注意が表示されます。
Oracle Order Managementで手動調整を適用する方法は、『Oracle Order Management Suiteインプリメンテーション・マニュアル』または『Oracle Order Managementユーザーズ・ガイド』を参照してください。
他の品目値引を適用するには、すべての品目が受注で正しく順序付けされている必要があります。価格設定フェーズは、受注のすべての明細を考慮するイベントに関連付けられている必要があります。他の品目値引は、手動または上書き可能にできません。他の品目値引では、取得品の明細に対する非互換性は無視されます。
「取得」リージョンと特典品目
「取得」リージョンの特典品目は、品目レベルでのみ定義できます。取得価格および取得単位フィールドの値は入力しないでください。特典品目の価格は受注で設定される必要があります。
価格設定エンジンでは、定型の他の品目値引はサポートされていないため、取得品の数量は1に設定する必要があります。エンジンは、品目のすべての数量に対して値引を適用します。たとえば、ペストリー5個とクッキー2個を注文すると、クッキー2個が50%値引されるとします。このモディファイアを使用すると、ペストリー10個とクッキー4個を注文した場合は、クッキー4個が50%値引されます。同様に、ペストリー10個とクッキー3個を注文した場合は、クッキー3個がすべて50%値引されます。
パーセントの適用方法を使用して値引する場合、パーセントは、「モディファイア要約」タブで定義されたバケット値に基づきます。たとえば、他の品目値引がバケット2にある場合は、バケット1に対する調整が取得品目にすべて適用された後で、5%の値引が行われます。
「PCを1台購入すると無料のマウスが提供されるか、PCを1台購入すると無料のスピーカが提供される」という販促品を、モディファイアを使用して設定する方法を次に示します。
方法1
2つのモディファイアを設定する方法:
モディファイアA: PC1台を購入すると、マウスが無料になります。
モディファイアB: PC1台を購入すると、スピーカが無料になります。
2つのモディファイアを相互に非互換にし、優先を設定して、優先度の高いモディファイアが自動的に適用されるようにします。
方法2
2つの他の品目値引モディファイアを設定する方法:
モディファイアA: PC1台とマウス1個を購入すると、マウスが無料になります。
モディファイアB: PC1台とスピーカーを購入すると、スピーカーが無料になります。
2つのモディファイアを相互に非互換にし、優先を設定します。PCが注文され、マウスまたはスピーカーがその受注に追加されると、マウスまたはスピーカーのいずれかが無料になります。
注意: モディファイア詳細の定義ウィンドウの「取得」リージョンには、スタンドアロンの価格表明細のみが値リストに表示されます。サービス品目および価格分岐明細(ヘッダーおよび子)は表示されないため、値リストからは選択できません。
「取得」リージョンで設定した特典品目は、品目レベルでのみ定義できます。
価格設定エンジンは、販促品用の追加の受注明細を戻し、「価格計算フラグ」を「No」に設定します。フラグの値が「Yes」または「P」に変更されないかぎり、追加のモディファイアは明細に適用されません。このため、無償品目の販売価格がマイナスになることはありません。価格計算フラグが「No」に設定されている受注明細がある場合は、受注レベルの追加のモディファイアは適用されません。
注意: 販促品は、受注レベルではサポートされません。
警告: 「価格計算フラグ」を無償品目の価格を計算するように変更しないでください。
支払、運送および出荷の条件は、条件代替モディファイアを使用して置換できます。
モディファイア・レベルは常に明細または受注レベルです。
明細レベルの条件代替モディファイアについては、品目番号または品目カテゴリ別に製品属性を定義します。
品目アップグレード・モディファイアの場合は、品目とアップグレード品目の間の関連がOracle Inventoryで定義されている必要があります。
販促アップグレードは関連タイプです。
アップグレード品目の単位は、元の品目の単位と同じになります。
価格設定エンジンは、追加モディファイアに対して元の品目のみを適用対象とします。アップグレード品目を適用対象とすることはありません。
価格分岐は、容積の価格設定コンテキストがある価格表とモディファイア・リストの両方に対して作成できます。価格分岐には、次のような特徴があります。
後続の分岐範囲との間に差分のない価格分岐明細で構成されます。たとえば、次のような価格分岐明細を作成できます。
0-100(0より大きく、100以下)
重要: たとえば、数量100.0は最初の価格分岐範囲(0-100)の対象となりますが、数量100.1は2番目の価格分岐範囲(100-200)の対象になります。
100-200
200-300
最初の分岐範囲の「値:自」は、0から始まります(例: 0-100)。
現在の価格分岐の「値:自」は、前の分岐の「値:至」と一致します(最初の分岐範囲を除く)。次に例を示します。
0-100
100-200
200-300
重要: R12より前のリリースで作成された価格分岐のコピー: R12より前のリリースから価格分岐をコピーした場合(たとえば、価格分岐が設定された価格表またはモディファイア・リストをコピーした場合など)、価格分岐は、前述の項で説明した価格分岐フォーマットに更新されます。更新内容を検証して、変換された価格分岐設定がユーザーの価格設定の目的を満たしているか確認する必要があります。
受注数量が価格表の価格範囲内にない場合でも、価格は計算され、受注明細のデフォルト値として設定されます。したがって、必要な価格設定結果が得られるように価格範囲が正しく設定されていることを確認してください。たとえば、品目AS54888の価格表について次の範囲の価格分岐を作成するとします(適用方法は単価)。
値:自/至: 0〜5 価格: 1.00(単価)
値:自/至: 5〜7 価格: .75(単価)
価格タイプが点の場合: 受注数量が価格表の価格範囲内になければ価格は戻されません。
価格タイプが範囲の場合: 価格表の価格範囲内にない受注数量については、価格0が取得されます。
たとえば、品目AS54888を10個受注したとすると、価格は次のように計算されます(価格タイプが範囲の場合)。
(5*1) + (2*0.75) + (3*0)/10 = 0.65(単価)
最後の3つについては、価格範囲外であるため、単価0が戻されます。したがって、必要な価格結果を得るには、価格分岐を正しく設定しておくことが重要になります。
点および範囲の価格分岐
価格分岐の設定時には、分岐処理の適用方法を決めるために、点または範囲の価格分岐を選択できます。
点の価格分岐
次の例の値引ルールについて考えます。
受注品目数量0〜10: 1%値引き
受注品目数量10〜50: 2%値引き
受注品目数量50〜999: 5%値引き
明細レベルの価格分岐で受注数量が55の場合は、受注明細に5%の値引が適用されます。明細グループ・モディファイアの場合は、その受注の明細のグループすべての合計数量が値引の対象となります。
範囲の価格分岐
点の価格分岐の例を使用すると、範囲の価格分岐では、受注数量が55の場合は、最初の10個の注文が1%、次の40個は2%、残りの5個は5%値引されます。その後で、値引が平均され、受注明細に適用されます。
累積範囲分岐
累積範囲分岐によって、モディファイアの通常の範囲分岐機能が拡張されます。累積範囲分岐の使用により、Oracle Order Managementなどの呼出し側アプリケーションは、累積属性を介して累積値を価格設定エンジンに渡すことができます。累積範囲分岐の設定および使用方法は、「累積範囲分岐の使用」を参照してください
重要: Oracle Order Managementの場合、明細を分割すると、数量が異なる価格区分に入った場合は販売価格が変更されます。その時点で、結果は分割前の価格計算フラグの値によって異なります。価格が自動的に変更されないようにするには、「価格計算フラグ」フィールドを設定して、明細の分割前に価格を固定します。
モディファイア・ウィンドウでクーポン発行を定義するときに、2つのモディファイア明細を設定する必要があります。価格調整または特典がクーポン発行にリンクされます。クーポン発行明細を設定するときは、モディファイア番号が必須です。価格設定エンジンは、番号を使用してクーポンに対する一意の連続番号を生成し、それを呼出し側アプリケーションに渡します。顧客は、呼出し側アプリケーションで、クーポンの使用時にこの番号を引用します。
モディファイアの設定時に次のいずれかを選択して、販促要求を作成できます。
「顧客要請求リスト」ボックス(HTML UI)
「請求」ボックス(フォーム・ベースのUI)
注意: このフィールドは、リスト・タイプが「販促品」または「取引」の場合にのみ使用可能です。
「請求」ボックスを選択した場合、顧客は、販促品名または番号を指定して販促要求を行う必要があります。
価格設定エンジンは、受注が価格設定エンジンに送信された後、販促要求に対する受注の適格性を検証します。
自動および手動両方の販促要求を設定することもできます。呼出し側アプリケーションが販促要求を適用する方法は、呼出し側アプリケーションによって異なります。
「モディファイア要約」タブの「分岐タイプ」フィールドで、モディファイアに定型のマークを付けることができます。次のモディファイア・タイプの定型化が可能です。
値引
追加料金
販促品(追加の購買品目は定型化しません)
クーポン発行
定型クーポン発行の例として、注文5個につき、将来の受注が10%値引されるクーポンが発行されるとします。15個注文すると、クーポンは3つ発行されます。
「モディファイア設定」ウィンドウで、金銭的なポイントおよび非金銭的なポイントの両方を作成できます。ポイントは、パーセント、金額または総額として与えられ、受注明細の販売価格には影響を与えません。ポイントには失効日を設定できます。また、ポイントは請求書に請求品目として表示されません。ポイントの累計は、OE_Price_Adjustments表に格納されます。「ポイント加算フラグ」を選択すると、ポイントへの参照を作成できます。
ポイント値引を設定するときは、次のことに注意してください。
「値引/手数料」タブの「ポイント」ボックスを選択します。
特典数量および特典単位は、ポイントを加算する特典の数量と単位です。
注意: クーポン発行モディファイアの場合、「特典数量」フィールドおよび「特典単位」フィールドに入力した値にかかわらず、発行されるクーポンは1つのみとなります。
失効日によって、ポイントが加算された取引が失効する日が指定されます(オプション)。
失効期間および失効タイプについて、失効期間は、品目のポイント加算が開始された時点から開始されます。失効日は価格設定エンジンによって計算されます。
注意: 失効期間および失効タイプのフィールドは、失効日が入力されている場合は入力できません。
特典単位から基準通貨への換算を指定するために、ポイント換算レートが使用されます。換算レートの例として、1エア・マイルが通貨単位で0.50の場合、ポイント換算レートは0.50です。ポイントに消費済のマークを付けるためのUIウィンドウがあります。
将来使用する目的で確保されているフィールド
リベート取引
パーセント見積ポイント・レート
金銭的なポイントを含むバケット
ポイントは受注明細の販売価格に影響を与えないため、価格設定エンジンは、ポイントをバケットの計算の対象としません。エンジンは、バケット番号を使用して、ポイント値の計算の対象となる価格を設定します。次の表に、この概念を示します。
バケット | モディファイア | 価格調整 | ポイント金額 | バケット小計 | 販売価格 |
---|---|---|---|---|---|
定価 | N/A | N/A | N/A | N/A | $100.00 |
1 | 7%値引 | $7.00 | N/A | $7.00 | $93.00 |
1 | 10%ポイント | N/A | $10.00 | N/A | $93.00 |
2 | 10%ポイント | N/A | $9.30 | N/A | $93.00 |
2 | 5ドル値引 | $5.00 | N/A | $5.00 | 88.00 |
ポイント値引は、Oracle Advanced Pricing、Oracle Order ManagementおよびOracle Accounts Receivableで、通常の値引と同様に会計処理されます。Oracle General Ledgerの勘定情報は、Oracle Advanced Pricingの「モディファイア」および「ポイント消費」フォームでは現在使用されていません。
Oracle Order ManagementからのOracle General Ledgerの勘定情報は、標準のメモ明細を使用する予備手段なしに、自動請求用にOracle Accounts Receivableに渡すことはできません。値引は、販売費用として計上され、ポイントは遅延費用として計上されます。各実装で、Oracle General Ledgerの勘定科目、および値引費用に関する会計のマッピング情報フローを設定する必要があります。
Oracle Accounts ReceivableおよびOracle Accounts Payableには、使用可能なポイント、残高および支払の減少を調査するためのインタフェースはありません。
現在は、ネット収益のみがOracle General Ledgerに転記されます。この転記は、Oracle Order ManagementとOracle Accounts Receivableの製品間で行われます。
ポイントは、ポイント消費画面で検証し、消費済のマークを付けることができます。この画面は、取引からポイント・レコードを反映するオンライン・ビューです。消費済レコードと未消費レコードをすべて表示したり、モディファイア番号、顧客または消費済のみなど、特定の問合せを使用して表示することもできます。
顧客名または顧客番号を問い合せると、モディファイア番号に関係なく、その顧客の消費済レコードと未消費レコードがすべて戻されます。モディファイアで問い合せると、特定のモディファイアが、そのモディファイアの対象となるすべての顧客に対するレコードとともに戻されます。
取引タイプおよびソース・システムは、すべての自動消費処理によって設定されます。これには、手動消費、およびOracle Accounts Receivable、Oracle Accounts Payableまたはその他のソース・システムなど、他の取引ソースによって作成された消費の両方が反映されます。ポイント消費は、次の項目を入力することによって手動で更新できます。
取引参照: クレジット・メモ、小切手番号または帳消しコード
支払システム: Oracle Accounts Receivable、Oracle Account Payableまたはその他のシステム
消費日(デフォルト設定は現在日、ユーザーが変更可能)
累積範囲分岐では、分岐点の開始部にゼロではなく累積値を使用することにより、モディファイアの通常の範囲分岐機能を拡張します。
価格設定エンジンで行われる評価は、通常分岐と累積範囲分岐で異なります。
累積範囲分岐: 価格設定エンジンによる分岐の評価時に、累積値が開始点として使用されます。
非累積(通常)価格分岐: 通常分岐の評価は、ゼロから開始されます。
Oracle Order Managementなどの呼出し側アプリケーションは、累積属性を介して累積値を価格設定エンジンに渡します。累積属性は、モディファイア設定で使用され、価格分岐ヘッダーのモディファイアに添付されます。
たとえば、累積値8を含む品目XYZを5個という受注の場合、9番目から13番目の品目については、適切な範囲分岐で価格設定されます。
累積範囲分岐の場合、受注の価格設定は、上位範囲の分岐から開始できます。それに対し、通常分岐の場合、すべての受注は最下位の分岐から開始します。累積範囲分岐機能の例および詳細は、『Oracle Advanced Pricingユーザーズ・ガイド』を参照してください。
累積値を価格設定エンジンに渡す場合は、次の方法を使用します。
属性マッピング: 価格設定要求で属性を渡す従来の方法です。
ランタイム・ソース: 実行時に累積属性を取得するために、属性管理機能で設定します。ランタイムは、モディファイアが選択され、分岐が評価されるときに発生します。ただし、属性マッピングとは異なり、ランタイム・ソースは累積範囲分岐でのみ使用されます。
ランタイム・ソースは、属性マッピングとは異なり、累積範囲分岐でのみ使用できます。累積範囲分岐の計算時、価格設定エンジンはランタイム・ソースApplication Program Interface(API)を呼び出し、属性マッピング設定でRUNTIME SOURCEとして定義されている累積属性の累積値を取得します。
RUNTIME SOURCED APIは、累積値を戻すPL/SQL関数です。ユーザーが関数を記述する必要がある点で、これはGet_Custom_Price APIと同様ですが、累積にのみ使用されます。ランタイム・ソースは、計算途中の実行時に取得が行われるため、標準の属性マッピング・ルールとは異なります。ランタイム・ソースは、累積値を導出するためにランタイム情報(クオリファイア、製品、価格設定属性などのモディファイアに関連する値)が必要な場合に使用することをお薦めします。
ランタイム・ソースを実装および使用する場合の一般的なステップは、次のとおりです。
提供されている仕様に従って、パッケージQP_RUNTIME_SOURCEについて機能Get_numeric_attribute_valueを定義および記述します。
ソースをデータベースにコンパイルします。
属性マッピングでマッピング・メソッドRUNTIME SOURCEを使用して、VOLUMEコンテキストの下に価格設定属性を定義します。
プロファイル「QP: 累積属性使用可」を有効にします。
「累積属性」フィールドで、価格分岐モディファイアにこの属性を添付して定義します。
モディファイアを選択すると、ランタイム・ソースが呼び出され、調整金額が計算される前に累積値が取得されます。
関数Get_numeric_attribute_valueの仕様は、パッケージQP_RUNTIME_SOURCEで提供されています(ファイルQPXRSRCB.plsにあります)。次のパラメータで対応する本体を記述する必要があります。
p_list_line_id: 適用対象のモディファイアのリスト明細ID。
p_list_line_no: 上述のモディファイアのリスト明細番号。
p_order_header_id: 受注に割り当てたID(呼出し側アプリケーションでサポートされる場合)。NULLでも可。
p_order_line_id: 受注の要求明細に割り当てたID。
p_price_effective_date: 受注に指定された価格の有効日。
p_req_line_attrs_tbl: 要求明細属性のレコードの表。
p_accum_rec: 累積属性に関連するレコード体系。
p_req_line_attrs_tbl表体系は、パッケージQP_FORMULA_PRICE_CALC_PVTにあるものと同等です。
p_accum_recレコードには3つのフィールドが含まれていますが、将来の要件に対応するためにフィールド数が増える可能性があります。
p_request_type_code: 価格設定要求に指定された要求タイプ・コード。
コンテキスト: 累積属性コンテキスト。現在、「VOLUME」にハードコードされています。
属性: 累積属性のセグメント名の指定。
ランタイム・ソースAPIは、価格設定対象となる各明細に対して累積値を戻します。累計は、受注ごとまたは受注全体に対して行われます。そのため、いずれかまたはすべての入力パラメータに基づく正しい値を戻すコード・ロジックを記述する必要があります。
このユーザー定義ロジックは、任意数の入力パラメータに基づきます。たとえば、受注品目に基づく累計を行う場合は、要求明細の品目番号に対応する属性のみを評価する必要があります。要件によって複数の入力パラメータを必要とする複雑な導出が要求される場合も、このAPIによって対応できます。ただし、PL/SQLコードにロジックを正しく実装する必要があります。
累計は、設計上価格設定エンジンではなく、呼出し側アプリケーションによって行われます。累積値は、ユーザー定義表に格納されます。そのため、Get_numeric_attribute_value内のすべてのSQL問合せは、これらの表に対して実行し、値を取得する必要があります。UPDATE文、INSERT文またはDELETE文の操作は、呼出し側アプリケーション内部で行う必要があるため、これらの文はランタイム・ソースの外側に置かれます。
ランタイム・ソースのサンプル・コード
次の例で、関数本体のサンプル・コードを示します。この使用例では、顧客区分および受注タイプの組合せに基づく累計を行います。ここでは、顧客区分をコンテキスト「CUSTOMER」、属性「PRICING_ATTRIBUTE31」として定義し、受注タイプはコンテキスト「ORDER」、属性「PRICING_ATTRIBUTE40」として定義します。また、説明用に、累積値をユーザー定義表accum_val_tblに格納します。ここでは、パフォーマンスは考慮されていません。
FUNCTION Get_numeric_attribute_value(
p_list_line_id IN NUMBER,
p_list_line_no IN VARCHAR2,
p_order_header_id IN NUMBER,
p_order_line_id IN NUMBER,
p_price_effective_date IN DATE,
p_req_line_attrs_tbl IN ACCUM_REQ_LINE_ATTRS_TBL,
p_accum_rec IN ACCUM_RECORD_TYPE
) RETURN NUMBER
IS
v_cust_class VARCHAR2(240);
v_order_type VARCHAR2(240);
v_req accum_req_line_attrs_rec;
i NUMBER;
accum_value NUMBER
BEGIN
-- this loop extracts the customer class and the order type that is
-- passed on the request line. We only use the p_req_line_attrs_tbl
-- input parameter here.
i := p_req_line_attrs_tbl.FIRST;
WHILE I IS NOT NULL LOOP
v_req := p_req_line_attrs_tbl(i);
IF (v_req.context = 'CUSTOMER' AND
v_req.attribute = 'PRICING_ATTRIBUTE31')
THEN
v_cust_class := v_req.value;
ELSIF (v_req.context = 'ORDER' AND
v_req.attribute = 'PRICING_ATTRIBUTE40')
THEN
v_order_type := v_req.value;
END IF;
i := p_req_line_attrs_tbl.NEXT(i);
END LOOP;
-- supposing the customer class and order type are not null, now
-- query the user-defined table for the stored accumulation value
-- and return this value.
SELECT value
INTO accum_value
FROM accum_val_tbl
WHERE customer_class = v_cust_class
AND order_type = v_order_type;
RETURN accum_value;
END Get_numeric_attribute_value;
この例では、顧客区分および受注タイプを要求明細から抽出し、顧客区分と受注タイプの各ペアの累積値を格納するaccum_val_tblへの問合せで使用します。値が選択されると、関数によって価格設定エンジンにその値が戻され、計算が続行されます。この関数は異なるペアの数に基づき、表にデータが格納されている方法を利用して、要求明細で渡された各ペアに対して、それぞれ異なる正しい累積値を戻します。
ランタイム・ソース関数は、様々な方法で記述でき、その実装は使用例および要件によって異なります。必要に応じて、PL/SQL言語の制限内ではロジックを単純にも複雑にも記述できます。それでも、この関数はロジックを処理し、対応する累積値について適切なデータ表を問い合せ、数値を戻す必要があります。