サービス・マッピング
サービス・マッピングを使用して、Oracle Pricingを価格設定への入力、価格設定のオブジェクト、価格設定からの出力と統合します。
サービス・マッピングは、サービス、ソース、エンティティおよび属性間の関係を作成するマップです。 サービスが取得および更新できる価格設定エンティティと属性のグループを指定します。
ノート
-
価格設定で文書の価格設定に使用できるエンティティにソースをマップします。 ソースには、Trading Community Architectureからの顧客データ、Product Information Managementからの製品データなどの製品データ、Pricingが価格設定する必要があるトランザクションに関するデータ(Oracle Order Managementからの販売オーダーなど)が含まれます。
-
エンティティを使用して、サービスが取得および更新できる階層に属性をグループ化します。
-
サービスを使用して、入力を出力にマップし、アルゴリズム用のデータを準備し、アルゴリズムをコールして、価格設定が必要なアプリケーションに価格設定文書を伝達します(販売オーダーのOrder Managementなど)。
次に例を示します。
ノート
-
ソフトウェア・コードを記述することなく、宣言的な環境でエンティティおよび属性をマップします。
-
Order Managementやレガシー取得システムなどのソースとしてオーダー取得システムを使用します。
-
属性をマップします。 たとえば、プロフェッショナル・サービスを販売し、レガシー・システムが顧客をクライアントと呼びます。 レガシー・システムのクライアント属性をPricingの顧客属性にマップします。
-
エンティティを拡張して独自の動作を追加します。
たとえば、価格設定には、販売オーダーのすべての属性をマップするために事前定義されています。 サービス・マッピングを変更して、一部の属性のみをマップできます。 価格計算で使用する独自の属性を追加します。 たとえば、自分の属性に関する詳細を格納する付加フレックスフィールドをOrder Managementに追加し、サービス・マッピングを使用して価格設定にマップします。
様々なタイプの文書を表します
価格設定では、様々なアプリケーションから価格文書に対するリクエストを受け取ります。
たとえば:
-
Order Managementから販売オーダーの価格を設定します。
-
契約管理から契約を価格設定します。
-
Inventory Managementからの資材転送の価格を設定します。
ドキュメントには類似した特性があります。
-
同様の価格設定要件があります。 たとえば、価格設定戦略、価格設定セグメント、顧客プロファイルなどに従って、すべて価格を計算する必要があります。
-
価格を一貫して計算するには、価格設定が必要です。
たとえば、Order Managementで顧客Computer Serviceおよびレンタル用のAS54888デスクトップ・コンピュータの販売オーダーを作成するとします。 後で、Contract ManagementでAS54888のサービス契約を作成します。 価格設定では、Order Managementの場合と同じように、Contract Managementに対して戦略、セグメントおよび割引を適用する必要があります。
-
類似した特性を示す属性があります。 サービス・マッピングを使用して、Pricingで単一の属性で表します。 これにより、価格設定と保守が簡素化されます。
たとえば、Order ManagementとContract Management、Inventory Managementのそれぞれに10個の属性があり、Pricingが処理または表す必要がある30個の属性があるとします。 30個の属性を表現および処理するのではなく、サービス・マッピングの30個すべての属性を10個の属性にマップできます。
入力を出力にマップ
サービス・マッピングには、エンティティ、ソースおよびサービスが含まれます。 価格設定では、入力SDOを出力SDOにマップするために使用されます。
事前定義済の営業サービス・マッピングの主な部分の一部を次に示します。 価格設定では、これを使用して販売オーダーの価格を設定します。
サービス・マッピングでオブジェクトを定義できます。
オブジェクト |
説明 |
---|---|
1. ソース |
ソースは、ソースとエンティティ間の関係を指定するマッピングです。 これは、Pricingが入力SDOのデータをモデル化できるように構造を提供します。 たとえば、事前定義済の販売サービス・マッピングにはOrderTotalソースが含まれ、このソースにはオーダー・ヘッダーおよびオーダー明細に関する詳細が含まれます。
|
2. サービス |
価格設定では、PriceSalesTransactionサービスを使用して販売オーダーの価格を設定します。 サービスの使用方法を次に示します。
サービス・マッピング・サービスはwebサービスではありません。 ほとんどの実装で、事前定義済サービスを使用できます。 |
3. エンティティ |
サービス・マッピングで出力SDOの構成に必要なエンティティを参照します。 この例では、出力SDOに4つのエンティティが含まれています。 各エンティティは1つ以上の属性を参照します。 たとえば、ヘッダー・エンティティが参照する属性を次に示します。
次に、サービスのエンティティに対して設定できるプロパティを示します。
|
4. 属性 |
サービス・マッピングで出力SDOの構成に必要な属性を参照します。 各サービス・マッピングは有限の目的を達成します。 たとえば、販売サービス・マッピングは販売オーダーの価格を設定するため、通常の販売オーダーに含まれる属性(ItemIdなど)を参照して販売オーダーの品目を識別し、UnitPriceを参照して単価を数量で乗算し、その他の計算を実行できます。 サービスのエンティティの属性に設定できるプロパティは、次のとおりです。
属性に対する読取りおよび書込みは、エンティティでの読取りおよび書込みとは無関係です。 たとえば、エンティティyで読取りおよび書込みを無効にし、属性xで読取りおよび書込みを有効にした場合、Pricingは入力および出力SDOに属性xを移入します。 |
その他のサービス・マッピングは、まったく異なる属性セットを参照する場合があります。 たとえば、Order Managementでは、SoldToPartyId属性を使用して顧客を特定しますが、Contract ManagementではPartyIdを使用します。 HeaderIdなどのサービス・マッピングで単一の属性を使用してSoldToPartyIdおよびPartyIdを表し、同じサービス・マッピングを使用して販売オーダーおよび契約の価格を設定できます。
例
ヘッダー・エンティティとOrderHeaderソースとの間でマップする方法を次に示します。
オーダー入力スペシャリストが顧客属性に値を入力した場合、このサービスは戦略を識別する価格販売トランザクション・アルゴリズムを参照し、顧客属性がオーダー入力スペシャリストが顧客名を入力するオーダー・ヘッダーの一部であるためにOrderHeaderソースを使用するため、価格設定ではPriceSalesTransactionサービスを使用します。
ソース
ソースは、Pricingがサービス・マッピングでサービスをコールするときに入力サービス・データ・オブジェクトを作成するために使用するデータ・ソースです。
価格設定にはOrder ManagementとContract Managementのソースが事前定義されており、これらのソースにはすでにエンティティと属性が含まれています。 たとえば、OrderHeaderソースには、オーダー・ヘッダーで見つけた属性を表すエンティティと属性(ヘッダーで顧客属性を表すCustomerIdや、ビジネス・ユニット属性を表すSellingBusinessUnitIdなど)が含まれます。
販売オーダーの価格設定に使用する重要なソースの一部を次に示します。
ソース |
説明 |
---|---|
CalculateSalesTotals |
販売オーダーの価格合計を計算します。 |
CreateRollupCharges |
販売オーダーの積上手数料を計算します。 |
GetSalesPricingStrategy |
デフォルトの価格設定戦略を決定します。 |
PriceSalesTransaction |
販売オーダーのトランザクションの価格を設定します。 |
PricingResultsPresentation |
価格内訳を表示します。 |
SalesOrderTotalsPresentation |
合計内訳を表示します。 |
ValidateSalesPrices |
価格設定ガイドラインおよびその他の価格設定ルールに基づいて、販売オーダーの価格を検証します。 |
サービス
価格設定では、独自のサービスを使用して文書の価格を設定します。 内部サービスもあります。 Oracle Pricing内に存在します。 その他は外部です。 Oracle Pricing以外に存在します。
内部サービス
価格設定では、独自の内部サービスを使用して価格設定アルゴリズムに値を入力します。
ノート
-
「内部」という用語は、Pricingがこれらの値をOracle Pricing内で完全に計算し、コール側や他のアプリケーション(Order Managementなど)とは共有しないことを意味します。
-
「外部」という用語は、Order Managementでの販売オーダーの価格内訳での価格の表示など、Oracle Pricing外で発生する処理を基本的に意味します。
-
PriceRequestInternalは、内部サービスの例です。 このアルゴリズムには、価格設定でアルゴリズムの値の移入に使用されるエンティティと属性が事前定義されています。
-
エンティティの子属性は、エンティティから内部値を継承します。 たとえば、手数料エンティティが内部の場合、手数料のすべての子属性は内部です。
顧客および品目データ
価格設定では、販売サービス・マッピングのPartyAttributeエンティティおよびPartyOrganizationProfileエンティティを使用して、品目を購入した顧客に関するデータを格納します。
Pricingでは、取引先コミュニティ・アーキテクチャなどの顧客データの格納に使用するアプリケーションで行った設定から、このデータが取得されます。
価格設定では、ItemAttributeエンティティを使用して、価格を設定する必要がある品目に関するデータを格納します。
このデータは、Product Information Managementでの設計時に行う設定から取得されます。 たとえば、Product Information Managementで品目の値をAS54888に設定した場合、PricingのItemAttributeエンティティの品目番号属性には、実行時にAS54888が含まれます。
プロファイル、セグメントおよび戦略
価格設定では、すべての価格設定シナリオでプロファイルとセグメント、戦略を使用します。 CustomerPricingProfileエンティティにプロファイル・データを格納します。 これは、「顧客価格設定プロファイルの管理」ページで設定した設計時間を使用して、使用する属性(サービスのコストなど)と、各属性に使用する値(中など)を決定します。
価格表
ChargeCandidateエンティティには、「価格表の管理」ページで設定した設計時に応じたランタイム値が含まれます。
たとえば、設計時に、顧客のComputer Service and Rentalsの価格表を設定し、基準価格が2500で計算メソッドがPriceの品目AS54888を追加するとします。 実行時の価格設定は次のとおりです。
-
ChargeCandidateエンティティの基本価格属性を2500に設定します。
-
計算メソッド属性を価格に設定します。
-
価格表の値を使用して、他のすべての属性を設定します。
-
オーダー明細を追加するたびにChargeCandidateを計算し、これらの値を使用して手数料および手数料コンポーネントを作成します。
その他のリスト
その他のリスト(割引リストなど)も同様に機能します。
ノート
-
「割引リストの管理」ページで割引リストを設定すると、価格設定では、割引リストの設計時の値を使用して、実行時にDiscountCandidateエンティティの属性が移入されます。
-
割引リストの品目レベルを品目に設定すると、DiscountCandidateエンティティのItemLevelCode属性が品目に設定されます。
-
価格設定では、TermSetupエンティティを使用して、割引に関する詳細(AdjustmentAmountなど)も格納されます。
他のサービスからの属性の継承
一部のサービス・マッピングは、別のサービス・マッピングからエンティティおよび属性を継承します。 たとえば、PriceSalesTransactionサービス・マッピングのヘッダー・エンティティには属性が含まれていません。 も心配しないでください。 かわりに、PriceRequestHeaderサービスからヘッダー属性を継承します。
ノート
-
「サービスから継承」をクリックして、サービスのリストを表示します。
-
PriceSalesTransactionは、これらのサービスが参照するエンティティおよび属性を継承するために事前定義されています。 たとえば、PriceRequestHeaderはAllowCurrencyOverrideFlag属性を参照するため、PriceSalesTransactionはAllowCurrencyOverrideFlagを継承します。
-
この設定により、1つのサービスPriceRequestHeaderで変更を行い、PriceSalesTransaction、またはPriceRequestHeaderから継承するその他のサービス・マッピングで使用できます。
-
継承には、親からの読取りおよび書込みの設定が含まれます。 たとえば、PriceRequestHeaderのAllowCurrencyOverrideFlagで読取りが有効になっており、書込みが無効になっている場合、読取り使用は有効になり、PriceSalesTransactionで使用すると、AllowCurrencyOverrideFlagで書込み使用は無効になります。
-
PriceSalesTransactionには、オーダー明細に含まれるすべてのエンティティおよび属性について、PriceRequestLineなど、他のサービスから継承するように事前定義されています。
-
継承を使用すると、エンティティと属性のほとんどを単一の親サービスで実行できるため、時間と保守が節約されます。そのため、一連のサービスでエンティティと属性を設定し、そのすべてを管理する必要がなくなります。
親と子の関係を次に示します。
-
親を変更すると、完了します。 変更は子で自動的に使用可能になります。 他の設定を行う必要はありません。
-
子は、親からすべてのエンティティおよび属性を継承します。 これらを子に設定した場合と同じように使用します。
PriceRequestInternal
PriceRequestInternalは、他のサービスからエンティティおよび属性を継承します。 これらの他のサービスのいずれかが制御する動作を変更する必要がある場合は、PriceRequestInternalを変更するかわりに変更します。 たとえば、CalculateSalesTotalsを変更して、Pricingが販売オーダー合計の計算に使用する動作を変更します。
出力
価格設定が終了した後、出力詳細をOrder Managementに返送するために使用するビュー・オブジェクトにデータが書き込まれるエンティティを次に示します。
使用する構造を次に示します。 この構造には、販売オーダーの構造が反映されます。
Header
Line
Charge
Charge Component
Charge Component
Charge Component
Charge Component
ドット表記法
サービス・マッピングはドット表記法を使用します。
Service.Entity
Entity.Attribute
説明
-
サービスはサービスの名前です。
-
エンティティは、サービスに含まれるエンティティの名前です。
-
Attributeは、エンティティに含まれる属性の名前です。
たとえば:
PriceSalesTransaction.Header
Header.CustomerId
説明
-
PriceSalesTransaction.Header
は、PriceSalesTransactionサービスのヘッダー・エンティティを識別します。 -
Header.CustomerId
は、PriceSalesTransactionサービスに存在するヘッダー・エンティティのCustomerId属性を識別します。
別の例です。
PriceSalesTransaction.Line
Line.InventoryItemId
説明
-
PriceSalesTransaction.Line
は、PriceSalesTransactionサービスのLineエンティティを識別します。 -
Line.InventoryItemId
は、PriceSalesTransactionサービスに存在するLineエンティティのInventoryItemId属性を識別します。
サービス・マッピングの使用例
サービス・マッピングを使用してビジネス要件を満たす方法に関する詳細な手順を入手します。