Oracle Advanced Pricingインプリメンテーション・マニュアル リリース12 E05612-01 | ![]() 目次 | ![]() 前へ | ![]() 次へ |
この章では次のトピックについて説明します。
属性マッピングでは、多様な非標準ソースのデータを利用して価格設定機能を拡張し、価格設定処理を実行できます。クオリファイアおよび価格設定属性のデータ・ソースは、Oracle Applications内またはOracle Applications外からの場合があります。
属性管理機能を使用すると、次のタスクを実行できます。
新規コンテキストと属性の作成
既存のコンテキストおよび属性のプロパティの更新
既存の属性の無効化
コンテキストおよび属性を新規作成することによって、Oracle Advanced Pricingの機能が拡張され、価格設定処理を実行するためのユーザー定義のデータ・ソースが用意されます。属性のデータ・ソースを指定する方法には、次の3通りがあります。
ユーザー入力: 属性値はユーザーが入力します。
カスタム・ソース: カスタム・コードは属性の導出に使用されます。
属性マッピング: 価格設定エンジンによって、他のOracle ApplicationsとOracle以外のデータ・ソースから情報を導出します。
クオリファイアおよび価格設定属性を使用して、顧客属性または製品属性を定義します。
製品属性では、製品品目、品目番号、カテゴリ、ブランドなどの製品価格設定特性を定義します。
顧客属性では、顧客名、顧客番号などの顧客価格設定特性を定義します。
価格設定エンジンが価格設定要求を受け取ると、属性管理は、取引に関連付けられたクオリファイアと価格設定属性のすべての値を取得します。価格設定エンジンでは、これらの値を評価して、その取引に適格な価格表とモディファイアを決定します。
次に、特定の曜日について値引を定義する例を示します。
価格設定処理 | 価格設定ルール | データ・ソース | 属性値 |
---|---|---|---|
値引モディファイア | クオリファイア | 曜日 | 月曜日 |
注意: アップグレードに関する考慮事項
Oracle Advanced Pricingの「属性管理」ウィンドウを使用して、コンテキストおよび属性を作成および保守し、属性をマップします。リリース11iより前のリリースでは、クオリファイアおよび価格設定属性は、Oracleのフレックスフィールド設定機能を使用して、「フレックスフィールド」や「値セット」ウィンドウで設定していました。
価格設定取引エンティティ(PTE)
PTEは関連付けられた要求タイプとソース・システムを含む受注体系です。価格設定エンジンへの要求では、アプリケーションによって要求構造が異なる場合があります。
ソース・システム
ソース・システムは、価格設定データを取得するアプリケーションです。
要求タイプ
価格を設定する取引のタイプは、要求タイプによって識別します。様々なアプリケーションによって、価格設定エンジンに対する要求が行われます。これらのアプリケーションの要求タイプは、それぞれ異なる場合があります。一部の複数アプリケーションでは、独自の要求タイプを共有している場合があります。
たとえば、iStoreとOrder Captureでは、同一の要求タイプを共有しています。一方、Order ManagementとiStoreには、異なる要求構造があります。
関連トピック
「属性マッピング・ルールのビルド」プログラムの実行(属性マッピングのみ)
次の各項では、コンテキストと属性の作成方法を説明します。最初にコンテキストを作成し、次にその属性を作成して、価格設定ルールを定義する特定の値を定義指定します。たとえば、顧客のコンテキストに、顧客名または顧客区分などの価格設定属性を含めることができます。「属性管理」を使用して、次のコンテキストおよびその属性を設定できます。
クオリファイア・コンテキスト
モディファイア(モディファイア受入の適格者)の適格性を判断するクオリファイアの作成に使用します。クオリファイアは、価格表(Oracle Advanced Pricingでのみ)およびモディファイアに添付できます。
製品コンテキスト
価格表およびモディファイアで使用される項目は、「製品コンテキスト: 品目」を使用して定義します。Oracle Advanced Pricingでは、次のレベル(またはコンテキストの属性)で価格定義およびモディファイア定義がサポートされています。
全品目
品目番号
品目カテゴリ
たとえば、属性が「全品目」の場合、価格設定エンジンによってすべての品目が評価されます。Oracleは、ITEMである1つの製品コンテキストのみをサポートします。Oracleによってシードされていない品目階層を作成する場合は、ITEMの製品コンテキストに追加の属性を設定できます。たとえば、品目の製品コンテキスト、マーケティング品目の製品属性などがあります。
注意: 製品コンテキスト・タイプに新規コンテキストは追加できません。ただし、既存の製品コンテキストのITEMには、属性を追加できます。
価格設定コンテキスト
価格表明細またはモディファイアに対する適格性を定義します。価格表明細で算式のコンポーネントとして、またはモディファイアで使用できます。
たとえば、品目などの製品コンテキストは、品目名や品目番号などの属性別に細分類できます。また、顧客などのクオリファイア・コンテキストは、顧客名や顧客IDなどの属性で構成できます。
コンテキスト・タイプ | コンテキスト名 | 属性 |
---|---|---|
クオリファイア・コンテキスト | 顧客 | 顧客名 |
製品コンテキスト | 品目 | Joeの品目 |
価格設定コンテキスト | 色 | 青 |
注意: グローバル・データ要素コンテキストは、価格設定コンテキストではサポートされません。
コンテキストを作成した後は、その属性を作成して、価格設定ルールに特定の値を定義でき、属性のマッピング方法、価格設定ウィンドウでリストから選択できる属性、および販促限度に使用する属性を決定できます。
価格設定エンジンでは、実行時に属性を評価して、その取引に適格な価格表とモディファイアを決定します。属性値は、受注レベルまたは明細レベル、あるいはその両方のレベルで導出できます。
警告: 価格表明細の価格設定属性は「受注」レベルで指定できません。したがって、価格設定属性(「コンテキスト・タイプ: 価格設定コンテキスト」)の設定時には、「受注」または「両方」でなく「明細」レベルを選択する必要があります。そうでない場合、価格明細表で価格属性を表示または選択できません。注意: 価格設定属性のレベルは、「リンク属性」ウィンドウで選択します。
属性管理機能を使用してコンテキストおよび属性を作成するには、次の設定ステップを1つ以上実行する必要があります。このステップは、それぞれの要件および現在の設定により異なる場合があります。
指定したPTEの要求タイプとソース・システムを検証します。そうでない場合は、新規の価格設定取引エンティティをQP参照に作成します。
新規コンテキストを作成し、そのコンテキストに属性を定義します。
クオリファイアや価格設定属性などの価格設定ルールを使用して、価格設定処理を実行します。「コンテキスト設定」ウィンドウでは、価格設定ルールを設定するための新規コンテキストおよび属性を作成できます。
注意: Oracle Advanced Pricingでは、異なるコンテキスト内であれば、同一の名称を持つ価格設定属性の作成がサポートされています。ただし、フレックスフィールド生成プロセスではサポートされず、「属性マッピング・ルールのビルド」プログラムの実行時に失敗します。したがって、属性名を作成する場合、重複していない固有名を使用する必要があります。
属性をPTEにリンクし、指定のPTEについて属性のプロパティを定義します。
コンテキストと属性のグループを作成した後は、それを特定のPTEにリンクできます。マップされた属性に対して属性マッピング・ルールを定義し、次に「属性マッピング・ルールのビルド」プログラムを実行します。
「属性マッピング・ルールのビルド」プログラムを実行します。
この手順は、属性マッピング手法で属性マッピングが指定された属性にのみ適用されます。これらの属性を作成または更新する場合、あるいは属性マッピング・ルールを変更する場合は常に、「属性マッピング・ルールのビルド」プログラムを実行する必要があります。
ヒント: 属性の作成時に「属性マッピング・ルールのビルド」プログラムが実行されている場合、その属性を使用(算式や価格設定属性として)する際に、このプログラムを再実行するようにプロンプト指示されます。したがって、属性の使用時にこれを1回のみ実行できます。
その属性を有効な価格設定で使用します。
受注を入力します。マップされた属性とユーザー入力の属性が、「価格設定エンジン要求ビューワ」から価格設定エンジンに正しく渡されたことを検証します。
コンテキストを作成する手順
「コンテキスト設定」ウィンドウにナビゲートします。
「コンテキスト設定」ウィンドウ
必要に応じて、次のすべてのエントリを入力します。
「タイプ」: クオリファイア・コンテキスト、価格設定コンテキスト、製品コンテキストなどを作成するコンテキスト・タイプを選択します。
「コード」: コンテキストのコード(短縮名)を入力します。作成後のコードは変更できません。
「名称」および「摘要」: コンテキストの名称および摘要を入力します。作成する名前は、受注の値リスト(コンテキスト用)および「価格表」ウィンドウと「モディファイア」ウィンドウの価格設定コンテキスト・フィールドから使用可能になります。新規コンテキストは、Oracle Pricing以外の様々なアプリケーションによって導入される可能性があるため、意味がある摘要を入力します。
「シード済」ボックス: コンテキストがシード済値の場合、「シード済」ボックスは自動的に選択されます。このボックスは、シード済コンテキストを上書きしても、選択されたままです。
「使用可」ボックス: 「使用可」ボックスを選択すると、このコンテキストを価格設定ウィンドウで使用できるようになります。このボックスの選択が解除されている場合、コンテキストは価格設定ウィンドウの「コンテキスト」フィールドに表示されません。また、このコンテキストに対して定義されたすべての属性も、設定に使用できなくなります。
すべてのエントリの入力後、「属性」リージョンにこのコンテキストの属性を入力します。
属性を作成する手順
「コンテキスト設定」ウィンドウで、属性を追加するコンテキストを選択します。
次に、「属性」リージョンで、選択した属性に関する次のエントリを入力します。
「コード」: 属性に一意の短縮名を入力します(コード名は内部的に使用されます)。作成後のコードは、更新できません。
「名称」および「摘要」: 属性の表示名および摘要を入力します。属性マッピング・マネージャでは、新規属性が、Oracle Pricing以外の様々なアプリケーションによって導入される可能性があるため、属性の摘要を入力すると便利です。
注意: シード済名および摘要は更新できます。ただし、オリジナル・シード済値が変更された場合は、「デフォルトの復元」ボタンを使用して復元できます。
「優先」: 非互換処理中に評価される数値の優先値を入力します。たとえば、同じ品目に対して2つの非互換値引認定が存在する場合は、上位の優先を持つ値引が与えられます(数値が低いほど優先度は高くなります。つまり、優先値1は2より前に選択されます)。5と10の倍数である優先番号は、シード済のクオリファイア属性および価格設定属性用として確保されているため、使用できません。入力できる優先順位は、1〜999までの3桁の数字です。
「アプリケーション名」: この属性を作成したアプリケーション名を入力します。アプリケーション名を入力しない場合、属性の作成者としてOracle Pricingがデフォルト設定されます。
「マップされる列」: 価格設定表の列に属性をマップするための値を選択します。未使用の列の名称からのみ選択できます。
QUALIFIER_ATTRIBUTE1〜QUALIFIER_ATTRIBUTE30の列は、シード済のクオリファイア属性用として確保されています。
1〜100までの列が使用可能で、価格設定属性1〜30をユーザーが入力する価格設定属性として使用する必要があります。1〜30までは、ユーザーのデータマージでのみ使用可能な列です。
価格設定マネージャのユーザー・リストの列31〜100は、未使用列です。
「値セット」: 値セットを選択して、属性について有効な値を定義します。「データ型」フィールドには、数値(NUMBER)またはアルファベット(CHAR)など、選択した値セットの書式タイプが表示されます。あるいは、「値セット」をクリックして、値セットを新規作成するか、既存の値セットを表示します。値セットを新規作成すると、新たに作成した値を「値セット」フィールドから選択できます。
注意: 属性に依存値セットは設定できません。属性の値セットは、置換元と同じデータ型の値セットによってのみ置換できます。
「シード済」ボックス: コンテキストがシード済値の場合、「シード済」ボックスは自動的に選択されます。このボックスは、シード済コンテキストを上書きしても、選択されたままです。
「必須」: 価格設定ウィンドウで属性を必須値にするには、「必須」を選択します。必須属性の場合、ユーザーは、たとえば受注明細を作成するたびに、指定された属性を入力する必要があります。
注意: 以前のリリースでは、「必須」ボックスは「セグメント」(価格設定コンテキスト)ウィンドウで更新され、フレックスフィールドに反映されました。ただし、属性管理では、これらの更新は更新されません。そのため、「必須」ボックスは属性管理で選択します。
「パーティ階層使用可」ボックス: 階層は段階的な関連から構成され、そこで1つのパーティはもう1つのパーティの上位に位置付けられます。たとえば企業階層では、様々な会社が、親、子、子会社、本社、部門などとして関連付けられます。クオリファイア属性がOracle Trading Community Architecture(TCA)パーティを参照しており、このクオリファイア属性を持つ価格表またはモディファイアをパーティ階層に対して使用可能にする必要がある場合、このチェック・ボックスを選択します。これにより、子会社および支店のそれぞれに1つずつ複数のクオリファイアを作成しなくても、最上位でクオリファイアを設定して、値引リストや価格表を子会社や支店にカスケードできます。
TCAパーティに基づかない属性に対して「パーティ階層使用可」チェック・ボックスが選択されている場合、警告が表示されます。これによって、party_id参照のあるカスタム表を使用するユーザー定義属性に対しチェック・ボックスを設定できます。他の属性にこのフラグを設定すると、「パーティ階層に適用」が選択されている属性がクオリファイアによって参照された場合に、不正な価格設定結果が生じる場合があります。このチェック・ボックスの選択すると、クオリファイアで「パーティ階層に適用」を選択済の属性が参照された場合に選択を解除できません。
次のシード済クオリファイア属性は、Oracle TCAパーティに基づいています。
顧客パーティ(クオリファイア・コンテキスト= Party Information (ASOPARTYINFO)
パーティID(クオリファイア・コンテキスト= Customer(CUSTOMER)
購買グループ(クオリファイア・コンテキスト= Customer Group(CUSTOMER GROUP)
仕入先(クオリファイア・コンテキスト= Party Information(PARTY)
購買担当(クオリファイア・コンテキスト= Party Information(PARTY)
注意: プロファイル・オプション「QP: 価格設定パーティ階層タイプ」は、TCAパーティのシード済クオリファイア属性の関連タイプおよびパーティ階層に対して有効なユーザー定義クオリファイア属性の関連タイプを制御します。「パーティ階層使用可」チェック・ボックスは、Oracle Advanced Pricingユーザーは使用できますが、基本価格設定ユーザーは使用できません。詳細は、このマニュアルの「プロファイル・オプション」の項を参照してください。
コンテキストと属性を作成した場合は、属性グループを特定の価格設定取引エンティティ(PTE)にリンクできます。
「価格設定の設定」ウィンドウでの属性レベルおよび制限
次の項では、属性に割り当てられた属性レベルに基づいて、値リストに表示される属性および関連付けられる制限について説明します。
「価格表」ウィンドウ
「クオリファイア」タブにある値リストには、属性レベルが「明細」または「両方」のクオリファイア属性が表示されます。これは、受注明細の価格表に対する認定は、受注明細または受注ヘッダーと受注明細両方のクオリファイア属性に基づいて行われるためです。
価格設定属性の値は、明細属性レベルで表示されます。
「モディファイア・リスト設定」ウィンドウ
モディファイア・レベルが「受注」の場合、「クオリファイア - 明細レベル・クオリファイア」ウィンドウのクオリファイア属性の値には、属性レベルが「受注」または「両方」のクオリファイア属性が表示されます。
モディファイア・レベル・コードがLineまたはLine Groupの場合、「明細クオリファイア」ウィンドウにある「クオリファイア属性」の値には、属性レベルが「明細」または「両方」のクオリファイア属性が表示されます。
「リスト・クオリファイア」ウィンドウにある「クオリファイア属性」の値には、属性レベルが「明細」、「受注」、または「両方」のクオリファイア属性が表示されます。
価格設定属性の値には、「明細」レベルの属性レベルを持つ価格設定属性が表示されます。
「クオリファイア・グループ設定」ウィンドウ
「クオリファイア・グループ設定」ウィンドウにある「クオリファイア属性」の値には、クオリファイア属性のすべてのレベルが表示されます。フォーム・ベースのユーザー・インタフェースに適用される条件は、次のとおりです。クオリファイア・グループでは、同じクオリファイア・グループ化番号を持つ1つのクオリファイア属性にレベル「受注」指定し、もう1つのクオリファイア属性にレベル「明細」を指定することはできません。クオリファイア・グループ化番号内にあるすべてのクオリファイアには、「受注」か「両方」、「明細」か「両方」のいずれかのレベルを持つ属性を指定する必要があります。
算式明細およびファクタ・リスト
算式は受注レベルまたは明細レベルのいずれでも適用できるため、リストに表示する属性は定義時に属性レベルに基づいて制限できません。値リストにはレベル・ベースでの制限はありません。
価格設定属性表およびフレックスフィールド表
Oracle Order Management(OM)では、価格設定属性に対してフレックスフィールド体系を使用しています。したがって、価格設定属性をOracle Order ManagementのUIに表示するには、これらの定義をフレックスフィールド表にも格納する必要があります。コンテキストと属性の定義はすべて、価格設定表(QP表)に格納されます。ただし、コンテキスト・タイプが「価格設定属性」の場合は、同じデータがフレックスフィールド表にも格納されます。したがって、「価格設定属性」タイプのコンテキストが「コンテキストと属性」ウィンドウを使用して作成されると、フレックスフィールド価格設定コンテキストとしてフレックスフィールド表にもコンテキストが作成されます。
ただし、価格設定属性の設定は、フレックスフィールド内でなく、「コンテキストと属性」の設定メニューで設定する必要があります。これは、価格設定属性がフレックスフィールド表で設定された場合、データがフレックスフィールド表からQP表にコピーされないため、その設定データはQP表で使用できないためです。したがって、価格設定属性が「受注管理」ウィンドウに表示されている場合でも、価格設定エンジンは属性を表示できません。
次の手順は、「価格設定属性」タイプのコンテキストが、「コンテキストと属性」ウィンドウで作成された後、フレックスフィールド価格設定コンテキストとしてフレックスフィールド表に登録される方法を示します。
マップされる列がPRICING_ATTRIBUTE30より大きい場合、「価格設定属性」タイプのコンテキストは自動的に登録されます。
「価格設定属性」タイプのコンテキストの作成と登録が完了すると、システムでは、そのフレックスフィールドを自動的にバックグラウンドでコンパイルします。ユーザーは、自分のコンカレント要求を表示して、コンパイルの段階を追跡できます。
Oracle Advanced Pricingにある価格設定コンテキストの付加フレックスフィールドは、価格設定コンテキストと製品コンテキスト(コンテキスト=ITEMのみ)にマップされます。すべてのクオリファイア・コンテキストは、クオリファイア・コンテキストにマップされます。
「価格設定属性」のコンテキストおよびその関連の属性は、削除基準を満たしていると、フレックスフィールド(および「コンテキストと属性」ウィンドウ)で更新および削除されます。
関連トピック
コンテキストおよび属性は、次の場合を除いて削除できます。
コンテキストを削除する手順
1つ以上の属性を持つコンテキストは削除できません。
属性を削除する手順
価格設定ウィンドウですでに使用されている属性は削除できません。
PTEは、同じ設定データと属性を指すアプリケーションのグループで構成され、要求タイプとソース・システムが含まれています。ソース・システムは、価格設定データを取得するアプリケーションであり、要求タイプは価格を設定する取引のタイプを識別します。
コンテキストとその属性を作成した後、それらを指定のPTEにリンクします。特定のPTEについては、価格設定ウィンドウでこの組合せが使用可能になります。各PTEには、一意の属性の組合せが定義されます。
次の表に、Oracle Advanced Pricingにシード済PTEおよびその要求タイプとソース・システムを示します。
価格設定取引エンティティ(コード) | ソース・システム | 要求タイプ |
---|---|---|
複雑なMRO(CMRO) | AHL | AHL |
需要計画(DEMAND) | QP | MSD |
会社間取引(INTCOM) | INV、QP | IC |
ロジスティクス(LOGSTX) | FTE | FTE |
オーダー管理(ORDFUL) | AMS、ASO、OKC、OKS、QP | ASO、OKC、OKS、ONT |
調達(PO) | PO | PO |
属性をPTEへリンクする手順
「Oracle Advanced Pricing」>「価格設定取引エンティティ - 属性リンク」ウィンドウにナビゲートします。
「価格設定取引エンティティ - 属性リンク」ウィンドウ
「Oracle Advanced Pricing」 - 「価格設定取引エンティティ - 属性リンク」ウィンドウのエントリをすべて入力します。
「価格設定取引エンティティ」: PTEを選択します。
「コンテキスト・タイプ」: 「価格設定コンテキスト」、「製品コンテキスト」または「クオリファイア・コンテキスト」などのコンテキスト・タイプを選択します。
「リンクしたコンテキストの表示」チェック・ボックス: 「リンクしたコンテキストの表示」ボックスを選択すると、選択したPTEに割り当てられたコンテキストのみが表示されます。選択したPTEおよびコンテキスト・タイプの基準と一致するコンテキストが、「コンテキスト」リージョンに表示されます。
PTEにリンクする属性を持つコンテキストを選択します。「PTEへ割当」ボックスが選択されていない場合、指定されたPTEでそのコンテキストの属性は、作成または選択されていません。
「リンク属性」をクリックして、「リンク属性」ウィンドウを表示します。
「リンク属性」ウィンドウ
「コード」: 属性の短縮名を入力します。
「レベル」: 「受注」、「明細」、または「両方」(受注レベルおよび明細レベル)から属性レベルを選択します。
たとえば、属性の基本契約IDに対するレベルが「受注」の場合、属性マップ済となるのはヘッダー・レベルの基本契約IDのみです。受注明細上の基本契約IDは、属性マップ済となりません。このレベルは、価格設定値リストで価格設定属性/クオリファイアを選択して表示するためにも使用されます。
重要: 価格表明細の価格設定属性は「受注」レベルで指定できません。したがって、価格設定属性(「コンテキスト・タイプ: 価格設定コンテキスト」)の設定時には、「受注」または「両方」でなく「明細」レベルを選択する必要があります。そうでない場合、価格明細表で価格属性を表示または選択できません。
属性マッピング手法: 属性マッピング手法を選択して、属性がその値を導出する方法を定義します。
ただし、シード済属性の「品目数量」および「品目金額」(数量の価格設定コンテキスト)については、マッピング方法をUSER ENTEREDからATTRIBUTE SOURCINGに変更しないでください。
ATTRIBUTE MAPPING: 属性マッピングは必須です。「リンク属性」ウィンドウ内の残りのエントリをすべて入力した後、「属性マッピング」をクリックして、選択した属性に対して属性マッピング・ルールを定義します。
注意: ATTRIBUTE MAPPINGを選択すると、「属性マッピング」ボタンが有効になります。USER ENTEREDまたはCUSTOM SOURCEDが選択されていると、「属性マッピング」ボタンはグレー表示されます。
CUSTOM SOURCED: ユーザーがコードを指定します。詳細は、このマニュアルの「カスタム・ソース属性の使用」を参照してください。
RUNTIME SOURCED: 価格設定エンジンは、カスタムAPIを使用してランタイム・ソースの値を導出します。この方法は、実行時に累積属性をソース指定するために使用します。累積範囲分岐の計算時、価格設定エンジンはランタイム・ソースAPIを呼び出し、属性マッピング設定でRUNTIME SOURCEとして定義されている累積属性の累積値を取得します。累積属性でランタイム・ソースを使用する場合の詳細は、このマニュアルの「累積範囲分岐のランタイム・ソースの設定」を参照してください。
USER ENTERED: この属性値はユーザーが入力します。そのため、属性のマッピングは不要です。ただし、USER ENTEREDが選択されていて、コンテキスト・タイプが「価格設定」の場合は、次のステップを実行してOrder Managementの「受注」パッドでこの属性を表示する必要があります。
i.「フレックスフィールド」ウィンドウにナビゲートします。
ii.「フレックスフィールド定義の確定」ボックスを選択します。
iii.「コンパイル」をクリックしてフレックスフィールドをコンパイルします。
ITEM AMOUNT属性とITEM QUANTITY属性はユーザー入力ですが、価格設定エンジンによって内部的に指定されます。
注意: 「フレックスフィールド」ウィンドウで変更を行い、「コンパイル」ボタンをクリックしても、職責を切り替えるか再ログインするまで、対応する変更は統合アプリケーションのフレックスフィールド・ウィンドウに表示されません。
たとえば、属性マネージャの設定ウィンドウで価格設定属性に対して「必須フラグ」を選択した場合、職責を切り替えるか再度ログインするまで、この属性は、「受注」パッドの「価格設定属性」フレックスフィールド・ウィンドウに必須フィールド(黄色)として表示されません。これは、この情報がキャッシュ情報に基づくためです。したがって、再度ログインするか、職責を切り替えて、キャッシュ情報をリフレッシュし値を更新する必要があります。
「値リスト(値リスト)使用可」: 「LOV使用可」を選択して、「モディファイア」、「クオリファイア」、「価格表」および「算式」の各ウィンドウの値リストに属性を表示します。「LOV使用可」が選択されていない場合、これらのウィンドウで属性は使用できません。ただし、その属性を使用して定義された既存のモディファイアは、同じように動作します。
「LOV使用可」が選択され、「属性マッピング可能」ボックスが選択解除されている場合、その属性を設定に使用できますが、マッピング・ルールは作成されません。したがって、クオリファイア、モディファイア、価格表および算式の各設定ウィンドウで属性が使用されると、エラーが発生します。
すべてのシード済属性について「LOV使用可」を選択すると、シード済属性は「価格表」、「クオリファイア」、「モディファイア」、「算式」各ウィンドウおよびその他の設定ウィンドウで使用可能になります。このボックスは、データ・アップグレード・スクリプトの実行時には、必ずそのままにしておきます。
「価格限度内の使用」ボックス: 「価格限度内の使用」を選択すると、「限度」の設定ウィンドウ(「他の属性」ウィンドウなど)の属性値リストから属性を選択できます。
「属性マッピング可能」ボックス: ATTRIBUTE MAPPINGを属性マッピング手法として選択した場合は、「属性マッピング可能」ボックスを選択すると、コンカレント・プログラムBuild_context APIにより属性は正常にマッピングされます。
このボックスの選択が解除されている場合、属性はマップされません。不要な属性のマッピングを回避するために、すべてのシード済属性について、このボックスの選択は解除されます。
マップされる列の値は、デフォルト値です。
「設定で使用」ボックス: 「設定で使用」ボックスは、有効な価格設定(価格表、モディファイア、算式、クオリファイア、限度など)で属性が使用されているかどうかを示します。「設定で使用」ボックスの設定(選択または選択解除)は、プロファイル・オプション「QP: 属性マッピング・オプションのビルド」および有効ボックス値によって決まります。
「QP: 属性マッピング・オプションのビルド」の設定 | 処理 |
---|---|
Yes(有効な価格設定で使用される属性をマップ) | 有効な価格設定で属性が使用される場合にのみ、「設定で使用」ボックスを「Yes」に設定します。 |
No(すべての属性をマップ) | 有効な価格設定および無効な価格設定の両方で属性が使用される場合は、「設定で使用」ボックスを「Yes」に設定します。 |
No | 無効な価格設定で属性が使用される場合は、「設定で使用」ボックスを「No」に設定します。 |
注意: 属性によっては、「設定で使用」ボックスに属性の現在の使用ステータスが正確に反映されない場合があります。たとえば、属性が削除された後も、「設定で使用」ボックスでの表示は「選択済」のままになっている場合があります。この状態になるのは、ステータスが自動的に更新されないためです。
ただし、コンカレント・プログラム「属性マッピング・ルールのビルド」の実行時に、設定で使用ボックスが更新されて、属性の正確な使用ステータスが反映されます。
「属性マッピング・ステータス」チェック・ボックス: 「属性マッピング・ステータス」チェック・ボックスは、マップされた属性に対してBuild_Contexts APIを生成するコンカレント・プログラムによって、自動的に選択または選択解除されます。次の場合、「属性マッピング・ステータス」チェック・ボックスは選択解除されます。
新規属性に属性マッピングを定義した後(ただし、コンカレント・プログラムが実行されるまでの間)。
属性マッピング・ルールが変更された場合。
「属性マッピング・ステータス」ボックスが選択解除されていて、1)属性マッピング手法がATTRIBUTE MAPPINGであり、2)「属性マッピング可能」が選択されている場合は、コンカレント・プログラムを実行し、Build_Contexts APIを再生成する必要があります。「属性マッピング・ステータス」ボックスは、コンカレント・プログラムが正常に実行されると、選択されます。このフィールドは、ナビゲート不可です。
注意: 属性マッピング手法がATTRIBUTE MAPPINGに指定され、「マッピング・ステータス」ボックスが「No」に指定されている場合に新規属性を使用すると、警告ボックスが表示されます。
新しく作成されたコンテキストは、「価格設定取引エンティティ - 属性リンク」ウィンドウに表示されます。「PTEへ割当」ボックスには、これらの属性がこのPTEに割り当てられていることが示されます。作成した属性は、価格設定ウィンドウで参照できます。
CUSTOM SOURCED属性、RUNTIME SOURCED属性およびUSER ENTERED属性の場合、すべてのエントリを入力すると、属性は価格設定取引エンティティにリンクされます。
ATTRIBUTE MAPPING属性の場合、「属性マッピング」をクリックして、選択した属性に対して属性マッピング・ルールを定義します。
オプションで、「コンテキスト」をクリックして、新規コンテキストを追加するか、既存のコンテキストを更新、有効化または表示します。
関連トピック
この項は、属性マッピング手法がATTRIBUTE MAPPINGに指定された属性にのみ適用されます。
コンテキストおよび属性をPTEにリンクした後は、「属性マッピング」ウィンドウでの属性マッピング処理を完了できます。属性のマッピングにより、価格設定エンジンは、モディファイア、価格表、またはクオリファイアで使用されている属性の値を導出できます。
属性マッピングを行うと、価格設定エンジンの柔軟性が向上します。たとえば、「顧客」リージョンの値は、Order ManagementのOE_ORDER_PUB.G_HDR.sold_to_org_idから導出できます。ただし、この同じ要素はOrder CaptureのASO_PRICING_INT.G_HEADER_REC.cust_account_idからも導出できます
これらのATTRIBUTE MAPPING属性を作成または更新するか、あるいは属性マッピング・ルールを変更するには、「属性マッピング・ルールのビルド」プログラムを実行する必要があります。
注意: USER ENTEREDまたはCUSTOM SOURCEDが属性マッピング手法として指定されている属性の場合、「属性マッピング・ルールのビルド」プログラムを実行する必要はありません。
ATTRIBUTE MAPPINGタイプの属性をマップする手順
「リンク属性」ウィンドウで、「属性マッピング」ボタンをクリックして、「属性マッピング」ウィンドウを表示します。必要に応じて、次のすべてのエントリを入力します。
「属性マッピング」ウィンドウ
「アプリケーション名」: マッピング・ルールを作成したアプリケーション名を選択します。アプリケーション名を選択しない場合、マッピング・ルールの作成者としてOracle Pricingがデフォルト設定されます。
「ヘッダー・レベル」リージョンの次のエントリをすべて入力します。
注意: 「ヘッダー・レベル」リージョンの各フィールドは、属性の属性マッピング・レベル(「属性の割当」ウィンドウで定義済)が「受注」または「両方」の場合にのみ使用できます。レベルが「明細」の場合、これらのリージョンはグレー表示されます。
グローバル・オブジェクト名(表示専用): 「価格設定取引エンティティ - ソース・システムおよび要求タイプ」ウィンドウの「要求タイプ」タブで定義された値にデフォルト設定されます。
シード・ソース・タイプ: レコードがシードされている場合に表示されます。このフィールドは、表示専用で更新できません。シード済のマッピングを変更する場合は、対応するユーザー・ソース・タイプにデータを入力できます。
ユーザー・ソース・タイプ
PL/SQL API: 属性のソースは、指定のソース・システムに定義したグローバル体系から直接指定できます。Oracle Order Managementの場合、すべてのレコード体系は、パッケージOE_ORDER_PUBに定義されています。たとえば、定義してある新規セグメントのソース値として支払条件IDを使用する場合は、機能名にG_LINE.payment_term_idと入力します。2つのレコード体系を使用できます。
OE_ORDER_PUB.G_LINEには、受注明細のすべての有効値が含まれています。
OE_ORDER_PUB.G_HDRには、受注ヘッダーのフィールドが含まれています。Line_rec_typeとheader_rec_typeの構造は、『Oracle Manufacturing Open Interfaces manual』から取得できます(IStore/OCの場合、対応するグローバル体系は、パッケージASO_PRICING_INTに定義されています)。
PL/SQL API複数レコード: 複数の値を戻すカスタムAPI(必ず関数)を記述できます。品目の在庫カテゴリを取得する場合など、関数の出力先に指定できるのは、VARCHAR2の表のみです。詳細は、品目カテゴリまたは顧客区分のシード・ソースを複数値PL/SQL APIの例として、参照してください。
定数値: 一定: 特定の条件で、この属性に常にマップされる定数値を入力します。
アプリケーション・プロファイル: この属性のデフォルト値を取得する先のプロファイル・オプションを選択します。「OE: 品目検証組織」などの有効なプロファイル・オプションのリストが値リストに表示されます。
システム変数: SYSDATEなどの特定の条件で、属性にマップされるシステム変数を入力します。
シード済値文字列フィールドに、レコードのシード済値文字列が表示されます。このフィールドは、表示専用で更新できません。シード済値文字列を変更する場合は、対応するユーザー値文字列にデータを入力できます。
ユーザー値文字列: ユーザー値文字列を入力します。
たとえば、Order Managementから予定出荷日(「予定日」)を取り出すユーザー値文字列は、OE_ORDER_PUB.G_LINE.SCHEDULE_SHIP_DATEです。
「シード済」ボックスは、マッピング・ルールがシード済かどうかを示します。
「使用可」ボックス: 「使用可」ボックスを選択すると、クオリファイア属性、製品属性または価格設定属性の様々な要求タイプに対して、属性マッピング・ルールが使用可能になります。あるいは、「使用可」ボックスの選択を解除して、その価格設定取引エンティティ(PTE)の要求タイプに対して、属性マッピング・ルールを無効にします。
注意: 「使用可」ボックスの選択時または選択解除時には、「属性マッピング・ルールのビルド」プログラムを実行して変更を有効にするように指示するダイアログ・ボックスが表示されます。
「属性の割当」ウィンドウで定義した属性のレベルが「明細」または「両方」の場合、すべてのエントリを「明細レベル」リージョンに入力します。選択された属性レベルが「受注」の場合、このリージョンはグレー表示されます。フィールドの説明は、「ヘッダー・レベル」リージョンで説明したフィールドと同じです。
「属性マッピング」ウィンドウでのすべてのエントリの入力を終了し、「属性マッピング・ルールのビルド」プログラムを実行します。
関連トピック
「属性マッピング・ルールのビルド」プログラムの実行(属性マッピングのみ)
この項は、次の設定基準を持つ属性のみに適用されます。
属性マッピング手法としてATTRIBUTE MAPPINGが指定されている。
「属性マッピング可能」ボックスが選択されている。
注意: USER ENTEREDまたはCUSTOM SOURCEDが属性マッピング手法として指定されている場合、「属性マッピング・ルールのビルド」プログラムを実行する必要はありません。
次の作業を実行するたびに、「属性マッピング・ルールのビルド」コンカレント・プログラムを実行する必要があります(その際、属性マッピング手法には「属性マッピング」を指定し、「属性マッピング可能」チェック・ボックスを選択する必要があります)。
新規属性(他のどのモディファイア、価格表、算式でも使用されていない属性)の作成または更新。
任意の属性マッピング・ルールの変更。
属性のマッピング漏れを防ぐため、プログラムの最終実行後に使用されたすべての新規属性は、動的にマップされます。属性は動的にマップされ、価格設定で使用できますが、パフォーマンスを向上させるために「属性マッピング・ルールのビルド」プログラムを実行する必要があります。
警告: 「属性マッピング・ルールのビルド」プログラムを使用すると、データベース・オブジェクトのステータスが変更されるため、このプログラムはピーク時間外に実行することをお薦めします。
「属性マッピング・ルールのビルド」プログラムの実行時の動作
「属性マッピング・ルールのビルド」コンカレント・プログラムを実行すると、パッケージQP_BUILD_SOURCING_PVTが動的に生成されます。このパッケージには、属性に対して属性マッピング・ルールを作成するための属性マッピング呼出しが含まれています。このパッケージに含まれているのは、実行時にマップ可能な使用された属性(価格設定で使用されたクオリファイアおよび価格設定属性)のルールのみです。
このプログラムでは、「属性マッピング可能」ボックスが選択されているすべての属性について属性マッピング・ルールを生成します。「属性マッピング・ルールのビルド」プログラムが正常に実行された場合は、属性マッピング・ルールが生成された属性の「属性マッピング・ステータス」ボックスが選択されます。
「属性マッピング・ルールのビルド」プログラムには、プログラムが正常に実行されたかどうかを通知するステータス・メッセージが表示されます。ウィンドウでは、「属性マッピング・ルールのビルド」処理が成功したかどうかについて、データベースに自動的に再問合せを行い、フォーカスを「属性マッピング・ステータス」ボックスに移動します。
注意: build_sourcingでエラーが発生すると、新規作成されたすべての属性マッピング・ルールは失敗します。この状態は、エラーが解決されるまで継続します。
実行時における属性マッピングの動作
呼出し側アプリケーションが、QP_Attr_Mapping_PUB.Build_Contextsを呼び出します。この呼出しによって、属性マッピング・ルーチンが開始され、呼出し側アプリケーションに属性が戻されます。
呼出し側アプリケーションはユーザー入力の属性を追加し、この要求に対するクオリファイアを要求します。
さらに、呼出し側アプリケーションは、これらのマップされた属性値を使用して価格設定エンジンを呼び出します。
価格設定エンジンも、内部でマップされたいくつかの属性をこの要求に追加します。
価格設定エンジンは、要求を処理し、その結果を呼出し側アプリケーションに戻します。
PTEは、検索エンジンが評価するデータ範囲の絞込みに役立ちます。検索エンジンによって評価されるのは、そのPTEに定義されているソース・システムによって生成された設定データのみです。また、1つのPTEのコンテキストを、他の価格設定アプリケーション・ファミリが使用できないようにします。
属性マッピング・ルールのビルドのチェックリスト
正常に属性がマッピングされると、属性マッピング・ルールが正常に生成されたことを通知するメッセージが表示されます。ただし、その属性に対する新しい「属性マッピング」ボックスが、選択されている必要があるにもかかわらず、選択解除されたままである場合があります。この状態は、新規属性の作成時に発生することがあります。新規属性をPTEに適切にリンクし、「ツール」メニューの「属性マッピング・ルールのビルド」を使用してマップしてください。
正常なマッピングを確保し、前述のような状態を回避するには、次の条件を満たしていることを確認する必要があります。
「属性マッピング可能」ボックスが、選択されている必要があります。
属性マッピング手法はATTRIBUTE MAPPINGである必要があります。マッピング方法がUSER ENTEREDおよびCUSTOM SOURCEDの属性は、「属性マッピング・ルールのビルド」プログラムによって作成されることはありません。
属性が新規に作成された場合は、その属性がモディファイア、価格表、限度などの有効な価格設定の最低1つに添付されていることを確認する必要があります。
作成されたPTE‐属性リンクに、属性マッピング・ルールが最低1つは含まれていることを確認します。
「属性マッピング・ルールのビルド」プログラムを実行する手順
このタスク・フローは、次の基準を満たす属性に対して使用します。
「属性マッピング可能」ボックスが選択されている。
属性マッピング手法として属性マッピングが指定されている。
「属性マッピング・ステータス」ボックスが選択解除されている。
「属性マッピング・ルールのビルド」プログラムは、実行時に属性マッピングが定義されている新規のクオリファイアまたは価格設定属性のソース・コードを生成し、属性マッピング・ルールが変更された属性のソース・コードを生成します。
注意: このプログラムを使用すると、データベース・オブジェクトのステータスが変更されるため、このプログラムはピーク時間外に実行する必要があります。
この属性が、モディファイアや価格表などの有効な価格設定で使用されていることを確認します。モディファイアを設定し、新たに作成したクオリファイア/価格設定属性を添付します。
たとえば、このクオリファイアをOracle Order Managementでマップする場合は、「属性マッピング・ルールのビルド」プログラムを実行して、属性マッピング・パッケージを再生成する必要があります。
プログラムが正常に終了したかどうかを確認します。
このプログラムは、モディファイアまたは価格表の設定でクオリファイアが初めて使用されるときに、実行する必要があります。たとえば、顧客区分を自分のインストールで初めてクオリファイアとして使用する場合は、このプログラムを実行する必要があります。
「価格設定取引エンティティ - 属性リンク」ウィンドウにナビゲートします。
PTEを検索します。
「コンテキスト・タイプ」フィールドで、値リストからコンテキスト・タイプを選択します。
「ツール」にナビゲートして「属性マッピング・ルールのビルド」を選択し、Build_context APIを実行します。その結果、「属性マッピング可能」ボックスが選択されている属性に対してのみマッピング・ルール・コードが生成されます。
プログラムが正常に終了したかどうかを確認します。正常に完了した場合は、マッピング・ルール・コードが生成された属性に、「属性マッピング・ステータス」ボックスが選択されています。
注意: コンカレント・プログラム「属性マッピング・ルールのビルド」の実行時に、「設定で使用」ボックスは更新され、属性使用のステータスが反映されます。属性が削除されても、「設定で使用」ボックスは選択されたままです。
受注を入力します。
「価格設定エンジン要求ビューワ」ウィンドウを使用して、属性が価格設定エンジンに正常に送信されたことを検証します。価格設定エンジンが価格設定時に正しい属性を使用したかどうかも検証できます。詳細は、「「価格設定エンジン要求ビューワ」ウィンドウ」を参照してください。
注意: 「属性マッピング・ルールのビルド」プログラムの実行前に、プロファイル・オプション「QP: 属性マッピング・オプションのビルド」を目的の値に設定します。
このプロファイル・オプションを「Yes」に設定すると、有効な価格設定で使用される属性に対してマッピング・ルールを生成できます。
「No」に設定すると、有効な設定と無効な設定の両方の属性に対してマッピング・ルールが生成されます。
「属性マッピング・ルール・エラー・レポート」を実行する手順
「属性マッピング・ルールのビルド」プログラムを実行した際に属性マッピング・メッセージが生成された場合は、「属性マッピング・ルール・エラー・レポート」を実行して、無効なすべての属性マッピング・ルールのリストおよび警告を生成できます。その他のステータス・メッセージも出力されます。詳細は、『Oracle Advanced Pricingユーザーズ・ガイド』のレポートおよびコンカレント・プログラムに関する項を参照してください。
「価格設定取引エンティティ - 属性リンク」ウィンドウにナビゲートします。
「ツール」メニューの「属性マッピング・ルールのビルド」を選択して「属性マッピング・ルールのビルド」プログラムを実行します。これにより、価格設定で使用され、「属性マッピング可能」ボックスが選択されている属性に対してのみ、マッピング・ルール・コードが生成されます。
プログラムが正常に実行された場合は、正常にマップされた属性の「属性マッピング・ステータス」ボックスが選択されています。
「ソース・システム」ウィンドウでは、要求タイプおよびソース・システムを表示でき、また、要求タイプとそのソース・システムとの関連を追加または更新できます。要求タイプとは、「受注管理受注」または「会社間請求」など、価格設定の対象となる取引タイプを示します。要求タイプは、Oracle PricingまたはOracle Inventoryなどのソース・アプリケーションに価格設定情報やその他の情報を要求します。ソース・システムによって、Oracle iStore、Oracle Pricing(モディファイアおよび算式を含む価格設定データ)およびOracle Marketingなどの設定データを生成するアプリケーションが定義されます。ビジネス要件に応じて、要求タイプを1つ以上のソース・システムと組み合せることができます。たとえば、要求タイプ「受注管理受注」を、ソース・システムのOracle Marketing、Order CaptureおよびOracle Pricingと関連付けることができます。
要求タイプおよびソース・システムをグループ化してPTEに関連付けることができます。PTEが評価する必要があるのはその価格設定取引エンティティに定義されているソース・システムによって生成された設定データのみであるため、PTEは、検索エンジンによって検査されるデータの絞込みに便利です。同じPTEを使用すると、同一データを共有するアプリケーションでは要求タイプに関係なく常に、1つの品目に対して同じ価格を提示するようになります。同じ価格設定取引エンティティに属するすべてのアプリケーションには、それらのアプリケーションで使用できる同じ属性セットがあります。属性(属性の項を参照)は、1つ以上の価格設定取引エンティティにリンクできます。
価格設定取引エンティティ(PTE)には、同じ設定データと属性を共有する複数アプリケーションのグループが含まれます。たとえば、Oracle iStoreとOracle Order Managementは、同一の価格設定取引エンティティに所属できます。これは、両方ともオーダー管理システムであり、同じ設定データを共有しているためです。反対に、Oracle Transportation Executionは異なる価格設定取引エンティティ内にあって、独自の属性と設定情報を持っています。
PTEの使用により、次のメリットがあります。
評価する必要があるのはそのPTEに定義されているソース・システムによって生成された設定データのみであるため、検索エンジンが評価するデータが削減されます。同じPTEを使用すると、同一データを共有するアプリケーションでは要求タイプに関係なく常に、1つの品目に対して同じ価格を提示するようになります。
同じ価格設定取引エンティティに属するすべてのアプリケーションには、それらのアプリケーションで使用できる同じ属性セットがあります。属性は、1つ以上の価格設定取引エンティティにリンクできます。
重要: プロファイル・オプション「QP: 価格設定取引エンティティ」は、使用している現行のPTEを定義します。価格設定ウィンドウから選択できるのは、現行のPTEに割り当てられたコンテキストと属性のみであるため、価格設定アプリケーションで任意の設定データを作成または問い合せる前に、このプロファイル・オプションを適切な値に設定します。設定データの問合せで表示されるのは、現行のPTEに割り当てられたコンテキストと属性のみです。
Oracle Advanced Pricingには、次のPTEがシードされています。
複雑なMRO(CMRO)
需要計画(DEMAND)
会社間取引(INTCOM)
ロジスティクス(LOGSTX)
オーダー管理(ORDFUL)
調達(PO)
必要に応じて、追加のPTEを作成できます。
新規PTEの定義時期
Oracleによりシード済PTEが提供されていますが、追加のPTEを設定して、ソース・システムおよび要求タイプをグループ化できます。新規要求タイプの作成時(たとえば、新しい受注体系が追加されたとき)、企業では、その要求タイプで、既存のPTEにあるものと同じソース・システムのセットを使用するかどうかを決定する必要があります。新規PTEの作成が必要なのは、新規要求タイプで異なる受注体系および異なるソース・システムのセットを使用する場合のみです。要求タイプは、PTE全体で一意であることが必要です。
PTEの例
次の図は、オーダー管理PTEを示しています。このPTE内部で、Oracle iStoreやOracle Order Managementなどの要求タイプによって価格設定データが評価されます。
価格設定取引エンティティ - オーダー管理
グローバル体系
次の表に、オーダー管理PTEの多様な要求タイプに対する、受注レベルと明細レベルでのグローバル体系の例を示します。
PTE | 要求タイプ | 受注レベルのグローバル体系 | 明細レベルのグローバル体系 |
---|---|---|---|
オーダー管理 | 受注獲得 | ASO_PRICING_INT.G_HEADER_REC | ASO_PRICING_INT.G_LINE_REC |
オーダー管理 | Oracle Contracts Core | OKC_PRICE_PUB.G_CONTRACT_INFO | OKC_PRICE_PUB.G_CONTRACT_INFO |
オーダー管理 | 受注管理受注 | OE_ORDER_PUB.G_HDR | OE_ORDER_PUB.G_LINE |
会社間取引 | 会社間請求 | INV_IC_ORDER_PUB.G_HDR | INV_IC_ORDER_PUB.G_LINE |
新規PTEを作成する手順
「価格設定参照」ウィンドウにナビゲートします。
参照タイプとしてQP_PTE_TYPEを問い合せて、既存のPTEを表示します。
新規PTEのコード(短縮名)、意味および摘要を入力します。
「使用可」を選択します。
レコードを保存します。
「価格設定取引エンティティ - ソース・システムおよび要求タイプ」ウィンドウ
「価格設定取引エンティティ - ソース・システムおよび要求タイプ」ウィンドウにナビゲートして、すべてのエントリを入力します。このウィンドウでは、指定のPTEに対する新規要求タイプ、ソース・システム、および次の機能領域を検討、更新および作成できます。
「名称」: PTEの短縮名を表示します。例: ORDFUL(名前)、オーダー管理(摘要)
「PTEパラメータ」ボタン: 「PTEパラメータ」をクリックして、PTEのパラメータ値を検索および更新します。価格設定パラメータの詳細は、「価格設定パラメータの概要」を参照してください。
「コード」(「ソース・システム」タブ): ソース・システム・アプリケーションの短縮名。
ソース・システムによって、Oracle iStore、Oracle PricingおよびOracle Marketingなどの設定データを生成するアプリケーションが定義されます。「ソース・システム」タブには、選択したPTEの関連ソース・システムがリストされます。
注意: 指定のPTEの設定で使用されているソース・システムは、削除できません。
「要求タイプ」タブ
価格を設定する取引のタイプは、要求タイプによって識別します。たとえば、Oracle Order Managementは、価格設定アプリケーション(ソース)からの価格を要求する要求タイプです。
「ヘッダー構造」または「明細構造」、あるいは「ヘッダー表示」および「明細表示」(あるいはその両方): データをマップするために、要求タイプにグローバル・レコード体系またはビューを定義できます。ヘッダーと明細のグローバル体系またはヘッダーと明細の表示名のいずれかを入力できます。次のフィールドのいずれかにデータを入力すると、このデータに基づいた値リスト(LOV)が「属性マッピング」設定ウィンドウの「値文字列」フィールドに表示されます。次のフィールドのいずれにもデータを入力しない場合、値リストは「「属性マッピング」設定」ウィンドウの「値文字列」フィールドに表示されません。
「ヘッダー構造」: ヘッダーのグローバル体系。
「明細構造」: 明細のグローバル体系。
「ヘッダー表示」名: ヘッダーの表示名。
「明細表示」名: 明細の表示名。
「使用可」: 要求タイプを有効にする場合に選択します。
「要求タイプ」ボタン: クリックすると、選択した要求タイプのパラメータ値を表示または更新します。価格設定パラメータの詳細は、「価格設定パラメータの概要」を参照してください。
注意: 複数のPTEに対して、1つの要求タイプは作成できません。マッピング・ルールが定義された要求タイプは、削除できません。
各PTEには、少なくとも1つの有効な機能領域と関連するカテゴリ・セットが必要です。カテゴリ・セットおよびそれに関連するカテゴリの階層を使用して、価格表明細またはモディファイアを定義できます。たとえば、Order Managementの機能領域に在庫品目のカテゴリ・セットがあった場合、カテゴリ・セット・レベルでモディファイアを定義するか、またはカテゴリ・セット内のカテゴリに対してモディファイアを定義できます。その他のカテゴリ・セットの例に、Oracle Inventoryでの「在庫」、およびOracle Purchasingでの「購買」カテゴリ・セットがあります(それらのカテゴリ・セットを使用可能にするには、これらの製品がインストールされている必要があります)。次の例に、オーダー管理PTEで使用されるAdvanced Pricingソース・システムに対する機能領域とカテゴリの組合せを示します。
機能領域 | カテゴリ・セット |
---|---|
製品レポート | 製品 |
購買管理 | 購買管理 |
受注管理 | Inv. (在庫)品目 |
機能領域: Advanced Pricingでは、PTE内の各ソース・システムに対して、シード済機能領域が提供されています。新規機能領域を追加することもできます。シード済の各機能領域にはシード済カテゴリ・セットが割り当てられ、それらは更新できません。
カテゴリ・セット: 各機能領域に対し、デフォルトのカテゴリ・セットが提供されています。たとえば、機能領域がOrder Managementの場合、デフォルトのカテゴリ・セットは「在庫品目」です。これは、読取り専用の値です。関連の機能領域に対するカテゴリ・セットは、「デフォルト・カテゴリ・セット」ウィンドウから更新できます。
使用可: 「使用可」チェック・ボックスを選択または選択解除して、機能領域を有効または無効にできます。機能領域が無効の場合、価格設定エンジンは無効になっている機能領域の価格設定データを評価しません(この機能領域が複数のソース・システムに接続されている場合を除く)。この機能領域が指定したPTE用の複数のソース・システムに接続されている場合、価格設定エンジンは価格設定データを評価します。
関連トピック
CUSTOM SOURCEDが属性マッピング手法として定義されている属性の場合、属性に対してコード・パッケージ・プロシージャを提供する必要があります。属性はカスタム属性の取得によってソース指定されるため、属性マッピングは必須ではありません。ユーザー・コードは、パッケージ・プロシージャQP_CUSTOM_SOURCE.Get_Custom_Attribute_Valuesに記述されています。プロファイル・オプション「QP_CUSTOM_SOURCED」が「Yes」に設定されている場合、このプロシージャは属性マネージャAPIプログラム(Build_Contexts)によって呼び出され、カスタム・ソース属性が選択されます。QP_CUSTOM_SOURCEに対する入力パラメータは、要求タイプ・コードおよび価格設定タイプです。価格設定エンジンに渡される要求タイプ・コードの一般的な値は、ONT、ASO、OKC、IC、FTEおよびMSDです。ユーザーは、Request_Type_Codeを使用することにより、呼出し側アプリケーションのPTEに基づいて属性のソース指定方法を管理できます。
プロファイル・オプション「QP: カスタム・ソース」が「Yes」に設定されていることを確認します。「コンテキストのビルド」プログラムによって、「属性マッピング・ルールのビルド」プログラムで生成した動的パッケージと顧客が作成したカスタム・パッケージからコンテキストが作成されます。属性は、属性マッピング・ルールを使用せずに、価格設定エンジンに直接渡すこともできます。その場合、属性マネージャAPIによって、カスタムAPIであるQP_CUSTOM_SOURCEが呼び出されます。ここでは、ユーザーが価格設定エンジンに渡す属性を手動で定義し、その値の指定を手動でコーディングしています。
属性マッピング・ルールのレベルを定義する価格設定タイプには、H(ヘッダー)またはL(明細)のいずれかを指定できます。これらの属性および属性値は、属性マッピング・ルールを使用してソース指定された属性と同じ方法で、価格設定エンジンに渡されます。
QP_CUSTOM_SOURCEの使用例
次に、特定のケースでQP_CUSTOM_SOURCEの本体をコーディングできる方法の例を説明します。この場合、それぞれコンテキストCUST_SOURCE_QUAL_CONおよびコンテキストCUST_SOURCE_PRIC_CONに属し、PTE「オーダー管理」にリンクされた2つのセグメント・マッピング列「QUALIFIER_ATTRIBUTE31」および「PRICING_ATTRIBUTE31」では、「受注」および「明細」の属性マッピング・レベルでカスタム・ソース値が「10」として表示されます。ユーザーは、両方のPTEと属性リンクの属性マッピング手法が、「リンク属性」ウィンドウでCUSTOM SOURCEDとなっていることを確認する必要があります。
CREATE or REPLACE PACKAGE body QP_CUSTOM_SOURCE AS
/*Customizable Public Procedure*/
PROCEDURE Get_Custom_Attribute_Values
( p_req_type_code IN VARCHAR2
,p_pricing_type_code IN VARCHAR2
,x_qual_ctxts_result_tbl OUT QP_ATTR_MAPPING_PUB.CONTEXTS_RESULT_TBL_TYPE
,x_price_ctxts_result_tbl OUT QP_ATTR_MAPPING_PUB.CONTEXTS_RESULT_TBL_TYPE
) is
Begin
If p_req_type_code = ‘ONT' and p_pricing_type_code in (‘L','H') then
x_qual_ctxts_result_tbl(1).context_name := 'CUST_SOURCE_QUAL_CON';
x_qual_ctxts_result_tbl(1).attribute_name := 'QUALIFIER_ATTRIBUTE31';
x_qual_ctxts_result_tbl(1).attribute_value := '10';
x_price_ctxts_result_tbl(1).context_name := 'CUST_SOURCE_PRIC_CON';
x_price_ctxts_result_tbl(1).attribute_name := 'PRICING_ATTRIBUTE31';
x_price_ctxts_result_tbl(1).attribute_value := '10';
end if;
end Get_Custom_Attribute_Values;
END QP_CUSTOM_SOURCE;
/
シード済コンテキストはシステム値で、ユーザーが作成する値ではありません。コンテキストの横にある「シード済」チェック・ボックスは、コンテキストがシード済かどうかを示します(チェック・ボックスが選択されている場合、コンテキストはシード済です)。シード済コンテキストを選択すると、「コンテキスト設定」ウィンドウの「名称」フィールドと「摘要」フィールドにシード済値が表示されます。
ただし、これらのフィールドでシード済値を変更すると、新しい値が表示され、オリジナル・シード済値は、非表示の「シード済名」フィールドと非表示の「シード摘要」フィールドに保存されます。
コンテキストのオリジナル・シード済値を復元する場合は、「デフォルトの復元」ボタンをクリックします。「名称」フィールドと「摘要」フィールドには、変更された値ではなく、オリジナル・シード済値が表示されます。
注意: 「デフォルトの復元」ボタンによって、すべてのフィールドの値がシード済値で置換されます。シードされていない属性の場合、およびシードされている属性でシード済値がこれまでにユーザーによって変更されていない場合、「デフォルトの復元」ボタンはグレー表示されます。
デフォルトのシード設定は、次のウィンドウで復元できます。
コンテキスト設定
リンク属性
シード済コンテキストが変更されている場合は、「デフォルトの復元」ボタンをクリックすると、オリジナル・シード済値を復元できます。「名称」フィールドと「摘要」フィールドには、シード済コンテキスト値が表示されます。ただし、シード済値を変更すると、新しい値が表示され、オリジナル・シード済値は、それぞれ非表示の「シード済名」フィールドと非表示の「シード済摘要」フィールドに保存されます。
属性の場合、変更されたすべての値は、「デフォルトの復元」ボタンによって属性のオリジナル・シード済値に復元されます。したがって、シード済属性が変更された場合は、その値を、オリジナル条件に復元できます。「優先」、「名称」、「値セット」、「データ型」ウィンドウのフィールドには、ユーザー入力値ではなく、シード済値が表示されます。
シード済属性の場合は、「優先」、「名称」、「値セット」、「データ型」および「必須」フィールドにそれぞれのシード済値が表示されます。ただし、シード済値を変更すると、これらのフィールドには新規のユーザー入力値が表示されます。シード済値は、シード済優先、シード済名、シード済値セット、シード済データ型などの名称の個別フィールドに保存されます。これらのシード・フィールドは常に非表示です。
注意: このボタンによって、すべてのフィールドの値はシード済値に置換されます。
シード済属性の場合、「属性マッピング手法」列にはそのシード済値が表示されます。ただし、ユーザーが属性マッピング手法を変更すると、このフィールドには、ユーザー入力値が表示され、シード済値はシード済属性マッピング手法などの名称の個別フィールドに保存されます。これらのシード済「属性マッピング手法」フィールドは常に非表示です。
「デフォルトの復元」ボタンによって、属性のオリジナル・シード済属性マッピング手法が復元されます。シード済属性を上書きし、後でシード済値を復元する場合は、このボタンをクリックします。
シードされていない属性の場合、このボタンはグレー表示されます。ユーザー入力の属性マッピング手法がシード済属性マッピング手法と同じ場合、シード済属性に対して、このボタンは引き続きグレー表示のままです。
注意: 属性「合計品目数量」は、Oracle Transportation Execution(FTE)でのみシードされています。ただし、手動で属性をオーダー管理PTEにリンクさせ、「合計品目数量」などの属性に対応するソース・ルールを作成できます。
すべてのシード済属性マッピング・ルールについては、「デフォルトの復元」ボタンによってシード・ソース・タイプとシード済値文字列が、ユーザー・ソース・タイプとユーザー値文字列としてそれぞれ復元されます。シード・ソース・タイプおよびシード済値文字列が、それぞれユーザー・ソース・タイプおよびユーザー値文字列と同じ場合、「デフォルトの復元」ボタンはグレー表示されます。
使用例1
この警告メッセージは、属性マッピング手法がATTRIBUTE MAPPINGで、「属性マッピング可能」フラグが「Y」に設定されていない新規追加属性をユーザーが設定で使用しようとした場合に、設定ウィンドウに表示されます。
メッセージ: 警告: 属性マッピングが使用可でないため、この属性 (コンテキスト: CONTEXT および属性: &ATTRIBUTE)はマップされません。
使用例2
この警告メッセージは、属性マッピング手法がATTRIBUTE MAPPINGで、「属性マッピング・ステータス」フラグが「Y」に設定されていない新規追加属性をユーザーが設定で使用した場合に、設定ウィンドウに表示されます。
メッセージ: 警告: この属性 (コンテキスト: CONTEXT および属性: &ATTRIBUTE)はまだマップされていません。属性マッピング・ルールをビルドしてください。
使用例3
この属性の属性マッピングのレベルは、「両方」と定義されています。このような場合、ユーザーは、属性マッピング・ルールをヘッダー・レベルと明細レベルにそれぞれ1つ入力する必要があります。入力したレベルが1つのみの場合は、価格設定上の不整合が生じます。
メッセージ: 警告 : この属性にはヘッダーおよび明細レベルの両方に属性マッピング・ルールが必要です。
使用例4
指定のPTEについては、そのPTEに属しているすべての要求タイプに対して属性マッピング・ルールを入力する必要があります。すべてに入力しなかった場合、同じPTEの異なる要求タイプでは、同じ価格をフェッチできない場合があります。
メッセージ: 警告 : この属性をすべての要求タイプにマップする必要があります。
使用例1
クオリファイア・ルールのウィンドウ上にあるクオリファイア・ルールの同一クオリファイア・グループ化番号内で、属性レベル「明細」と「受注」の属性を持つクオリファイアの組合せを添付しています。
メッセージ: クォリファイア・ルールのクォリファイア・グループ化番号に、属性レベル 'LINE' のクォリファイア属性は、属性レベル 'ORDER' のクオリファイア属性と混在できません。
使用例2
このエラー・メッセージは、ユーザーが属性レベル「明細」と「受注」を持つクオリファイア属性の組合せを同一クオリファイア・グループ化番号内に添付すると、「モディファイア」ウィンドウの「クオリファイア」タブに表示されます。
メッセージ: リスト明細ID LIST_LINE_ID およびクォリファイア・グループ化番号 &QUALIFIER_GRP_NO に対して、クォリファイア属性レベル 'LINE' および 'ORDER' の混合があります。 与えられたリスト明細IDおよびクォリファイア・グループ化番号について、全クォリファイア属性のレベルが LINE/BOTH または ORDER/BOTH かどうか確認してください。
クオリファイアまたは価格設定の属性を「価格設定の設定」ウィンドウで定義するときに、これらのウィンドウの値リストに表示されるのは、「LOV使用可」ボックスが選択されている属性のみです。基本価格設定がインストールされている場合、様々な「価格設定コンポーネント」設定ウィンドウの値リストに表示されるのは、「AVAILABLE_IN_BASIC」ボックスが選択状態で設定されている属性のみです。ただし、Oracle Advanced Pricingユーザーは、設定されているすべての属性を使用できます。その場合、その他の属性レベルの条件を満たしている必要があります。
価格設定アプリケーションで任意の設定データを作成または問い合せる前に、プロファイル「QP: 価格設定取引エンティティ」を正しい値に設定する必要があります。このプロファイルは頻繁に変更しないでください。これは、価格設定ウィンドウで問合せを行うと、異なるPTEに対して他のコンテキストと属性の組合せが表示されるためです。発生した場合は、内部IDコードが表示されます。
次の項に、統合時または実行時に発生する一般的なトラブルシューティングに対する解答を示します。
質問1
価格設定ウィンドウで定義した価格設定コンテキストと属性が、なぜ表示されないのですか。
解答: 次の条件が満たされている必要があります。
属性管理ウィンドウを使用して定義したコンテキストと属性が、適切なPTEに割り当てられている。
コンテキストと属性が有効である。
システム・プロファイル・オプション「QP: 価格設定取引エンティティ・コード」が、適切な価格設定取引エンティティ・コードを指し示している。
属性レベルが適切である。特定のウィンドウに表示できるのは、特定レベルの属性のみです。
質問2
プロファイル「QP: 価格設定取引エンティティ」を正しく設定しないと、どうなりますか。
解答: このプロファイルは、使用している現行のPTEを示します。設定ウィンドウの値リストで使用できるのは、現行のPTEに割り当てられたコンテキストと属性のみです。
設定データの問合せで表示されるのは、現行のPTEに割り当てられたコンテキストと属性に関する摘要のみです。
質問1
受注明細を受注パッドに入力中に、次のエラーが表示されました。
FND_AS_UNEXPECTED_ERROR (PKG_NAME=oe_order_adj_pvt) (PROCEDURE_NAME=oe_line_adj.calculate_adjustments) (ERROR_TEXT=calculate_adjustments#130 ORA-06508: PL/SQL: could not find program unit being called).
解答: エラーの原因となっている属性マッピングAPIを判断するために、このパッケージのdba_errorsをチェックします。これがカスタムAPIの場合は、APIを訂正します。シードされているAPIの場合は、訂正パッチが使用可能かどうかを判断します。
質問2
正常にマップされた属性のコンテキストが、Order Management受注パッドの価格設定コンテキストの値リストに表示されません。
解答: 次のソリューションのいずれかで、問題を解決できる可能性があります。
「OM受注パッド」ウィンドウに表示されるコンテキストは、ユーザーが入力した属性を最低1つ含むコンテキストのみです。コンテキストに含まれるすべての属性のマッピング方法がATTRIBUTE MAPPINGである場合、このコンテキストは、価格設定コンテキストの値リストには表示されません。
すべての新規属性は、新規属性マネージャの「コンテキストと属性」ウィンドウを使用して作成する必要があります。この方法を使用すると、価格設定属性タイプのすべての属性は、OMフレックスフィールドで作成され、必要に応じて登録されます。その定義は固定されて自動的にコンパイルされます。ただし、この逆は成立しません。「フレックスフィールド」ウィンドウを使用して作成された属性は、属性マネージャの表には作成されません。「フレックスフィールド」ウィンドウで更新された列も、価格設定ではサポートされません。
新規作成した属性のタイプが価格設定属性である場合、システムでは、OMのフレックスフィールド表に同じ属性を作成した後、そのフレックスフィールドをコンパイルします。コンカレント・マネージャの要求をチェックし、その要求が正常として完了したかどうかを確認してください。
マップされる列の値「PRICING_ATTRIBUTE31..100」を持つ属性は登録する必要があります。登録はシステムによって自動的に実行されますが、登録が実行されたことを確認する必要があります。
次の表に、属性管理に関するいくつかの問題とソリューションの概略を示します。
考えられる原因 | デバッグ方法 |
データ属性マッピングの不適切なマッピングが原因で、QP_Attr_Mapping_PUB.Build_Contextsパッケージが無効です。 | エラーの原因となっている属性マッピングAPIを確認するために、このパッケージのdba_errorsをチェックします。これがカスタムAPIの場合は、APIを訂正します。シードされているAPIの場合は、訂正パッチが使用可能かどうかを判断します。 |
「属性マッピング・ルールのビルド」コンカレント・プログラムがエラーで失敗しました。 | 次の文を実行して、出力を検査します。名前がQP_BUILD_SOURCING_PVTの場合は、dba_errorsからテキストを選択します。カスタム・ソースがこのエラーの原因であることを検証します。 |
「属性マッピング・ルールのビルド」コンカレント・プログラムの実行中に、次のエラーが表示されました。ORA-06502: 「PL/SQL: 数値または値のエラーが発生しました」(文字列バッファが小さすぎるため)、ORA-06512: 「APPS.QP_ATTR_MAPPING_PUB行1445」、ORA-20000:ORA-04021: 「timeout occurred while waiting.」。 | このエラーは、コンカレント・プログラムの実行中に別のユーザーが価格設定エンジンの呼出しを実行すると発生します。有効ユーザーが価格設定エンジンを呼び出しているときは、「属性マッピング・ルールのビルド」コンカレント・プログラムを実行しないでください。 |
販売受注パッドで受注明細を入力中に次のエラーが表示されました。END_AS_UNEXPECTED_ERROR (PKG_NAME=oe_order_adj_pvt)(PROCEDURE_NAME=oe_line_adj.calculate_adjustments) (ERROR_TEXT=calculate_adjustments#130 ORA-06508: PL/SQL: could not find program unit being called) | 次の文を実行して、出力を検査します。名前がQP_BUILD_SOURCING_PVTの場合は、dba_errorsからテキストを選択します。カスタム・ソースがこのエラーの原因であるかどうかを確認します。シードされているソース・ルールでこのエラーが発生する場合は、シードされているルールを訂正するパッチが使用可能かどうかを判断します。エラーが「記号"_"が見つかりました。」の場合は、適用できる関連パッチを判断します。 |
11.5.7以前のリリース/パッチGからアップグレードする場合、アップグレード・プログラムでは、次の処理が実行されます。
コンテキストと属性をアップグレードします。
ソース・システムと要求タイプをアップグレードします。
PTEと属性リンクの作成
属性マッピング・ルールをアップグレードします。
既存モディファイアへのPTEの割当
H以前のリリース | H以降のリリース |
---|---|
すべてのアプリケーションに共通の要求タイプとソース・システム。 | PTEによってグループ化される要求タイプとソース・システム。 |
フレックスフィールドで作成および保守されるコンテキストと属性。 | 価格設定表(QP表)で作成および保守されるコンテキストと属性。 |
すべてのアプリケーションが価格設定で使用できるすべての属性。 | PTEに基づいてアプリケーションで使用できる属性。属性は、値リストおよび限度に対して使用可能になりました。 |
属性には、すべての要求タイプが使用する1つのソース・ルールを指定します。 | 属性には、多様な要求タイプに対して1つ以上の属性マッピング・ルールを指定できます。 |
唯一の受注体系(オーダー管理など)。 | 最低4つのシード済PTE、拡張準備中。 |
表のアップグレード
コンテキスト | fnd_descr_flex_contexts | qp_prc_contexts_b |
---|---|---|
コンテキスト | fnd_descr_flex_contexts_tl | qp_prc_contexts_tl |
属性 | fnd_descr_flex_column_usages | qp_segments_b |
属性 | fnd_descr_flex_col_usage_tl | qp_segments_tl |
ソース・システムと要求タイプ | qp_price_req_sources | qp_pte_source_systems |
ソース・システムと要求タイプ | qp_price_req_sources | qp_pte_request_types_b/tl |
属性リンク | oe_def_attr_condns | qp_pte_segments |
属性リンク | ak_object_attributes | qp_pte_segments |
属性リンク | oe_def_condn_elems | qp_pte_segments |
属性マッピング・ルール | oOe_def_attr_def_rules | qp_attribute_sourcing |
この項では、コンテキストと属性を、現行のフレックスフィールド体系から新たに正規化された価格設定表(QP表)のセットにアップグレードする方法について説明します。
コンテキストのアップグレード
コンテキストがクオリファイア・コンテキストと価格設定コンテキストのフレックスフィールドに格納されている場合、アップグレード・プログラムでは、すべてのコンテキストがこれらのフレックスフィールドから新規価格設定表(QP表)にコピーされます。すべてのクオリファイア・コンテキスト・フレックスフィールドのクオリファイアは、クオリファイア・コンテキストとしてコピーされます。
ITEM以外の価格設定属性フレックスフィールドのすべてのクオリファイアは、価格設定属性コンテキストとしてコピーされます。ITEMクオリファイアは、製品コンテキストとしてコピーされます。ユーザー1がフレックスフィールドに作成したすべてのコンテキストは、シード済データとして処理されます。各種言語による名前と摘要、有効フラグなどの他の情報はすべて、フレックスフィールドで使用できます。
属性のアップグレード
新システムでフレックスフィールドから作成されるすべてのコンテキストについては、属性がフレックスフィールド使用表で使用できます。これらの属性は、新システムの対応するコンテキストの下にコピーされます。フレックスフィールド使用表の一部の属性には、値セットがありません。これは、これらの属性がその有効値にキー・フレックスフィールドを使用するためです。名前、マッピング列、優先などの他の情報はすべて、フレックスフィールド使用表で使用できます。
ソース・システムと要求タイプのアップグレード
現在、すべてのソース・システムと要求タイプは、多対多の関連でマップされます。シード要求タイプは、要求タイプ間の関連を追加するために用意されています。
属性管理には、価格設定取引エンティティ機能が使用されます。これは、関連付けられた要求タイプとソース・システムを含む受注体系から構成されます。アップグレード時には、PTEの新規セットがターゲット・システムに作成されます。シード済PTE以外に、顧客独自の要求タイプとソース・システムによっては、さらに多くのPTEが作成できます。
事前決定の処理により、要求タイプとソース・システムをPTEに関連付けることができます。これらの要求タイプおよびその関連は、シード済データとして動作します。シードされた価格設定取引エンティティ、ソース・システムおよび要求タイプに関しては、前の項を参照してください。
次の表に示すように、要求タイプがアップグレード・プログラムによってターゲット・システムに作成されるたびに、デフォルトのグローバル体系がそれに関連付けられます。
要求タイプ | グローバル体系名: ヘッダー・レベル | グローバル体系名: 明細レベル |
---|---|---|
ASO | ASO_PRICING_INT.G_HEADER_REC | ASO_PRICING_INT.G_LINE_REC |
OKC | OKC_PRICE_PUB.G_CONTRACT_INFO | OKC_PRICE_PUB.G_CONTRACT_INFO |
IC | INV_IC_ORDER_PUB.G_HDR | INV_IC_ORDER_PUB.G_LINE |
ONT | OE_ORDER_PUB.G_HDR | OE_ORDER_PUB.G_LINE |
FTE | なし | なし |
MSD | なし | なし |
現在、既存のフレックスフィールドで使用可能なすべての属性は、すでに属性マップ済です。新規データ・モデルでは、属性マッピング・ルールを指定する前に、各属性を1つ以上のPTEにリンクする必要があります。
1)属性マッピングに対応しているか、すでにマップされている属性
このような属性は、デフォルト・ルールに従って、現行システムのソース・システムに関連付けられます。この時点で、アップグレード・プログラムにより、すべてのPTE‐要求タイプ‐ソース・システム間の関連(データとの)がすでにターゲット・システム内に作成されています。アップグレード・プログラムは、このソース・システムに関連付けられているPTEを判別し、必要な数のPTEと属性リンクを新規のPTE‐属性マッピング表に作成します。
たとえば、デフォルト条件テンプレートに従って、セグメント1がQPソース・システムに関連付けられているとします。アップグレード・プログラムは、この属性に3つのリンクを作成します。この3つのリンクは、次の表のように、新規PTE‐属性マッピング表内で3つの行として表示されます。
価格設定取引エンティティ | 属性 |
---|---|
1 未割当 - 2 | セグメント-1 |
2 オーダー管理 | セグメント-1 |
3 会社間取引 | セグメント-1 |
3つの行が作成されたのは、ソース・システムQPがPTEの未シード-2、オーダー管理および会社間取引に添付されているためです。
2)属性がマップされていない属性
一部の属性には、属性マッピング・ルールがありません。この一部の属性とは、価格表、モディファイアおよび算式に取引がない属性です。このような属性は、PTE属性マッピング表で作成済のすべてのPTE(シード済PTEも含む)にリンクされます。
アップグレード時に、現行システムでデフォルトの属性マッピング・ルールが定義されているすべての属性には、新規モデルでも同じ属性マッピング・ルールが再定義されます。PTE属性マッピング表に表示されるすべての属性には、現行システムでの属性の定義方法に基づいて、ヘッダーのみ、明細のみ、またはヘッダーと明細などの受注レベル・マッピングまたは明細レベル・マッピング、あるいはその両方を指定できます。
注意: 次のいずれかの状況で、属性マネージャ・ローダー・プログラムまたは属性マネージャ・アップグレード・プログラムにより既存の属性が検出された場合、その属性のアップロードまたはアップグレードは迂回されます。
シード済属性で使用するものと同じセグメント・マッピング列が、顧客事業所で使用されている(属性マネージャ・ローダー・プログラムの場合)
フレックスフィールドでユーザー属性が作成されている(属性マネージャのアップグレード・プログラムの場合)
ただし、現行システムとは異なり、属性マッピング・ルールを指定するすべての属性には、要求タイプの数と同じ数の属性マッピング・ルールのセットを指定することが理想的です。ここでいう要求タイプとは、PTE属性マッピング表の該当する属性についてPTEに関連付けられている要求タイプを指します。この時点では、アップグレード・プログラムがすべての要求タイプに対してすべての属性マッピング・ルールを作成するとはかぎりません。アップグレード・プログラムでは、属性に応じてその属性を作成したアプリケーションが指定され、要求タイプに対する属性マッピング・ルールが、次の表に示すように作成されます。
ソース・システム | 要求タイプ |
---|---|
QP | ONT |
OKC | OKC |
ASO | ASO |
AMS | ONT、ASO |
デフォルトの属性マッピング・ルールを指定できるのは、基本価格設定で使用するために作成されたPTE属性マッピング表のシード済PTE-属性の組合せのみです。また、デフォルト・ルールを持ちソース・システムFTEに属する属性すべてに、属性マッピング・ルールがあるわけではありません。
属性マッピングでは、それまで使用していたソース・システムに加えて、関連モディファイア・リスト、価格表および算式の作成元であるPTEが識別されます。新規の列PTE_CODEがQP_LIST_HEADERS_B表に追加されました。この列にはPTEが格納されます。アップグレード・プログラムでは、次の論理に基づいて、すべてのモディファイア・リスト、価格表または算式のPTE_CODEを更新します。
アップグレード・プログラムでは、ターゲット・システムですべてのPTE‐要求タイプ‐ソース・システム間の関連(データとの)を作成後、すべてのモディファイアのPTEをそのソース・システムから判別します。ソース・システムが1つのPTEのみに関連している場合、PTE_CODEは、PTEとともに更新されます。ソース・システムが複数のPTEに関連している場合は、他のPTE全体でオーダー管理が選択されます。
サンプル・コード
-- Please note, the cursor cs_item_cost may need to be modified
-- before use in your environment.
CREATE OR REPLACE
PACKAGE MY_CUSTOM_SOURCING AUTHID CURRENT_USER AS
-- please see package body for version, history and notes.
-- Package globals...G_Organization_id NUMBER := FND_PROFILE.VALUE('QP_ORGANIZATION_ID');
-- Cached in and out values for each sourcing routine.
TYPE Item_Info_Rec_Type IS RECORD
( inventory_item_id VARCHAR2(240)
, item_cost NUMBER
);
G_Item_Info Item_Info_Rec_Type;
FUNCTION Get_Item_Cost (p_item_id IN NUMBER) RETURN VARCHAR2;
PRAGMA RESTRICT_REFERENCES (Get_Item_Cost,WNDS);
END MY_CUSTOM_SOURCING;
/
--------------------------------------------------CREATE OR REPLACE
PACKAGE BODY MY_CUSTOM_SOURCING AS
/* Package Body version 1.01 - 30th January 2001 */
-- This is the package body for Simon's example of
-- Advanced pricing 11i's custom sourcing routines used for
-- retrieving additional information from the apps tables into pricing
-- data structures.
-- standard functionality is not feasible.
-- To marginally improve performance on successive pricing calls,
-- we cache the most recent details from the sourcing functions
------------------------------------------------------------
-- so that the cursors are not run every time if the requests
-- are the same. These cached values are stored in package-wide
-- variables.
------------------------------------------------------------
FUNCTION Get_Item_Cost (p_item_id IN NUMBER) RETURN VARCHAR2 IS
-- Function to retrieve an item cost from cst_item_costs
-- note, this returns null is a cost is not found
-- so that the calling app can handle this.
-- Note, Use your own cost type id from cst_cost_types.
-- I've used 1 just for testing.
CURSOR cs_item_cost(cp_item_id IN NUMBER) IS
SELECT cic.item_cost
FROM cst_item_costs cic
AND cic.cost_type_id = 1
AND cic.organization_id = G_organization_id;
v_cost cst_item_costs.item_cost%TYPE := NULL;
BEGIN
IF p_item_id = G_Item_Info.inventory_item_id THEN
-- if the requested item is already cached then do nothing yet.
NULL;
ELSE