価格設定アルゴリズムによる価格品目の方法の例(パート5)
価格設定アルゴリズムによる定価の計算方法を学習します。
5. 定価の計算
次に、特定のニーズを満たす定価を計算するためのアルゴリズムの設定方法の例を示します。
-
定型料金の請求頻度に従って階層調整を按分します。
-
属性を使用して価格表手数料を調整する場合は、優先順位を適用します。
-
割引ルールの名前を説明メッセージに追加します。
-
ビジネス・ユニットに従って定価を端数処理します。
このステップには3つの部分が含まれます。
-
階層調整の適用
-
マトリクス調整を適用
-
定価の確定
階層調整の適用
この例では階層調整を適用します。 たとえば、定型料金の請求頻度に従って階層調整を按分します。 サービス・マッピングを使用して、拡張可能属性を介して請求頻度をアルゴリズムに送信し、階層価格設定の適用アルゴリズムを使用して定型料金の期間を延長します。
価格表に設定した階層調整を適用します。 基本定価に適用します。 金額または数量に従って階層を作成します。 たとえば、数量1から10の基準定価から10%の割引を提供する階層1と、10を超える数量に対して20%の割引を提供する階層2を作成します。
ここにSDOがあります。
![価格表に設定した階層調整を適用します。](images/qp_various_graphics_124_20072049.png)
ノート
-
基準定価の取得ステップの出力SDOは、入力SDOを提供します。
-
TierQueueエンティティには、層の調整に関する詳細が含まれます。
アルゴリズムでは、価格設定管理作業領域の設定が使用されます。
![アルゴリズムでは、価格設定管理作業領域の設定が使用されます。](images/qp_various_graphics_133_20072050.png)
アルゴリズムの動作は次のとおりです。
アルゴリズムの実行内容 |
アルゴリズムの仕組み |
---|---|
1. 階層ヘッダーを取得します。 |
階層ヘッダーから詳細を取得します。 たとえば、階層ベースのタイプ(品目数量など)です。 価格設定管理の「価格表の編集」ページの計算基準領域には、ほとんどの階層ヘッダー属性が含まれています。 |
2. 階層ベースに従って調整金額を計算します。 |
次のように仮定します。
したがって、調整金額は500 (2に2,500を掛けて10%を掛けた値)になります。 |
3. 累計基準を計算します。 |
- |
4. 数量階層基準に従って品目数量を計算します。 |
- |
5. 金額階層基準に従って品目金額を計算します。 |
- |
6. 階層明細を取得します。 |
- |
7. 階層の調整基準を計算します。 |
- |
8. 層を計算します。 |
- |
9. 階層調整を計算します。 |
- |
10。手数料コンポーネントを作成します。 |
- |
次に、SDOの属性の詳細を示します。
エンティティ |
入力SDOの属性 |
出力SDOの属性 |
---|---|---|
手数料 |
- |
. . . RunningUnitPrice: 2450 . . . |
ChargeComponent |
- |
ChargeComponentId: 2 ChargeId: 2 ExplanationMessageName: QP_PRICE_LIST_TIER_ADJ ExtendedAmount: -100 USD IsInternal: N PriceElementCode: QP_PRICE_LIST_TIER_ADJ PriceValidFrom: 2019-03-26 @ 08:32:53 SequenceNumber: 1001 SourceId: 300100177515265 SourceTypeCode: TIERED_LINES UnitPrice: -50 USD |
ノート
-
UnitPriceには、調整金額が含まれます。
-
RunningUnitPriceは、2500のBaseListPriceから、50のUnitPriceを2450と等しくします。
-
ExtendedAmountは、50のUnitPriceに2の数量を乗算して100と等しくなります。
階層価格設定の適用アルゴリズムで使用できる機能の一部を次に示します。 このアルゴリズムは、ほとんどの計算を実行します。 価格設定基準の計算アルゴリズムをコールします。 すべての関数は、スクリプトであるgetMessageを除くビュー・オブジェクト参照です。
関数名 |
説明 |
---|---|
getDiscountListName |
割引リストの名前を取得します。 |
getMessage |
エラー・メッセージを取得します。 |
getPriceElement |
価格要素コードに従って価格設定要素を取得します。 |
getPriceListCharge |
PriceListChargeIdに従って価格表料金を取得します。 |
getPriceListName |
法人セグメント価格表などの価格表名を取得します。 |
getPriceListNameFromCharge |
料金に関連付けられている価格表名を取得します。 |
getPricingBasisHeader |
価格設定基準のヘッダーを取得します。 |
getTierHeader |
1つの階層ヘッダーの属性値を取得します。 「Oracle Supply Chain Management CloudのREST API」に移動し、「Order Management > 価格設定階層」を展開し、「1階層ヘッダーの取得」をクリックします。 |
getTierLine |
1つの階層明細の属性値を取得します。 「Oracle Supply Chain Management CloudのREST API」に移動し、「Order Management > 価格設定階層>階層明細」を展開し、「1階層明細の取得」をクリックします。 |
マトリクス調整を適用
マトリックス調整は階層調整と似ています。
-
価格表に設定したマトリックス調整を適用します。 基準定価で適用します。
属性の値に従ってマトリックス調整を設定します。 たとえば、顧客属性にコンピュータ・サービスおよびレンタルが含まれている場合は、$100の割引を指定します。
-
定価の計算ステップの階層調整の適用部分の出力SDOは、マトリックス調整の適用パートの入力SDOです。
-
入力SDOのMatrixQueueエンティティには、マトリックス調整の詳細が含まれています。
このアルゴリズムは、価格設定管理作業領域で設定した内容を使用します。
![このアルゴリズムは、価格設定管理作業領域で設定した内容を使用します。](images/qp_various_graphics_134_20072051.png)
アルゴリズムの動作は次のとおりです。
アルゴリズムの実行内容 |
アルゴリズムの動作 |
---|---|
1. 属性を取得します。 |
- |
2. マトリックス・ルールを評価します。 |
マトリックスに複数のルールを追加する場合は、複数のルールが実行時条件に一致する場合に適用するルールがアルゴリズムで認識されるように、優先順位条件を追加します。 |
3. マトリックス調整を計算します。 |
- |
4. マトリックス・エラーを処理します。 最も一般的なエラーは、条件列がアルゴリズム・データ・セットの一部ではない場合に発生します。 |
- |
次に、SDOの属性の詳細を示します。 太字フォントは、アルゴリズムが出力SDOに追加した属性を示します。
エンティティ |
入力SDOの属性 |
出力SDOの属性 |
---|---|---|
手数料 |
- |
. . . RunningUnitPrice: 2350 . . . |
ChargeComponent |
- |
ChargeComponentId: 3 ChargeId: 1 ExplanationMessageName: QP_PRICE_LIST_ATTR_ADJ ExtendedAmount: -200 USD MatrixConditionString: Customer=コンピュータ・サービスおよびレンタル MatrixResultString: 調整タイプ=割引金額調整金額=100調整基準=null PriceElementCode: QP_PRICE_LIST_ATTR_ADJ SequenceNumber: 1002 SourceId: 300100177515271 SourceTypeCode: MATRIX_RULE UnitPrice: -100 USD |
ノート
-
UnitPriceには、調整金額が含まれます。
-
階層調整およびマトリックス調整を作成するとします。 フローは最初に階層調整を適用し、次にマトリックス調整を適用します。 層調整後のRunningUnitPriceの値は2450です。 そのため、RunningUnitPriceは現在、2450からUnitPriceを引いて100を2350と等しくなります。
-
ExtendedAmountは、100のUnitPriceに2の数量を乗算した値である200です。
マトリックスの適用アルゴリズムで使用できる関数のいくつかを次に示します。
関数名 |
説明 |
---|---|
getAdjustmentBasis |
調整基準の名前を取得します。 |
getChargeDefinitionName |
課金定義の名前を取得します。 |
getDiscountListName |
割引リストの名前を取得します。 |
getItemExtAttrDimensions |
品目拡張可能属性のディメンションを取得します。 1つの階層ヘッダーの属性値を取得します。 |
getPriceListName |
価格リストの名前を取得します。 |
getPriceListNameFromCharge |
料金に関連付けられている価格表の名前を取得します。 |
詳細は、「Oracle Supply Chain Management CloudのREST API」、Order Managementの順に展開し、「価格設定マトリックス」をクリックします。
手数料コンポーネントの一部として説明を指定してから、Order Managementの販売オーダーに表示できます。 たとえば、割引ルールの名前を説明に含めます。
定価の確定
![定価の確定](images/qp_various_graphics_135_20072053.png)
定価の計算ステップのマトリックス調整の適用部分の出力SDOは、入力SDOを提供します。
アルゴリズムの動作は次のとおりです。
アルゴリズムの実行内容 |
アルゴリズムの仕組み |
---|---|
1. 定価と正価を端数処理します。 |
確認してから、各料金のRunningUnitPriceを丸めます。
|
2. 正価の手数料コンポーネントを作成します。 |
- |
次に、SDOの属性の詳細を示します。 太字フォントは、アルゴリズムが出力SDOに追加した属性を示します。
エンティティ |
入力SDOの属性 |
出力SDOの属性 |
---|---|---|
手数料 |
- |
. . . RunningUnitPrice: 2350 . . . |
ChargeComponent |
- |
ChargeComponentId: 4 ChargeId: 1 CurrencyCode: USD ExtendedAmount: 4700 USD PriceElementCode: QP_LIST_PRICE PriceElementUsageCode: LIST_PRICE SequenceNumber: 1003 SkipRunningPrice: Y TaxIncludedFlag: N UnitPrice: 2350 USD |
ノート
-
UnitPriceには、端数処理された最終金額が含まれます。
-
RunningUnitPriceは端数処理された値です。
-
RunningUnitPriceには、定価の手数料コンポーネントに含まれる値と同じ値が含まれます。
-
ExtendedAmountは、2350のRunningUnitPriceに2の数量を乗算して4700と等しくなります。
-
PriceElementCodeは、QP_LIST_PRICEを使用して定価を設定します。
次に、実行単価での手数料コンポーネントの作成アルゴリズムで使用できる関数のいくつかを示します。 これを使用して、価格の端数処理方法を変更できます。 すべての関数は、スクリプトであるgetDurationConversionRateを除くビュー・オブジェクト参照です。
関数名 |
説明 |
---|---|
getChargeDefinitionName |
課金定義の名前を取得します。 |
getDurationConversionRate |
期間の換算レートを取得します。 |
getOKCUomMappings |
時間単位のマッピングを取得します。 |
getUomTranslation |
単位の略称(Eaなど)の翻訳を取得します。 |
価格設定詳細の表示場所
Order Management作業領域では、販売オーダーの金額ダイアログに、各手数料コンポーネントが別々の行に表示されます。
![Order Management作業領域では、販売オーダーの金額ダイアログに、各手数料コンポーネントが別々の行に表示されます。](images/qp_various_graphics_136_20072054.png)