Oracle Costingでコストと価格設定を行う
Oracle Pricingを設定して、Oracle Costingから原価詳細を取得します。
設定の概要
- 「Oracle Costingからの原価詳細の取得」で説明されている設定を行います。
-
価格設定アルゴリズムを作成します。
-
事前定義済価格設定アルゴリズムを変更します。
1. 価格設定アルゴリズムの作成
コスト・サービスから価格設定を取得する価格設定アルゴリズムを作成します。
-
アルゴリズムをダウンロードします。
-
価格設定例をサポートするファイルという名前の添付をダウンロードします。
-
添付ファイルを開き、GetPricefromExternalApplicationCustom.zipファイルをコンピュータに保存します。
-
管理権限でOracle Pricingにサインインします。
-
価格設定管理作業領域に移動し、「タスク」>「アルゴリズムの管理」をクリック
-
「アルゴリズムの管理」ページで、「処理」>「インポート」をクリックします。
-
表示されたダイアログで、保存したファイルGetPricefromExternalApplicationCustom.zipを参照し、OKをクリックします。
-
「アルゴリズムの管理」ページで、外部アプリケーション・カスタムから価格を取得アルゴリズムを問い合せてから、編集のために開きます。
-
「アルゴリズムの編集」ページで、アルゴリズムに3つのステップが含まれていることを確認します。
ステップ
値
原価計算入力の作成
ChargeCandidate変数を反復して、コストが必要な候補を識別します。
これには、ChargeCandidateのデータ・セットと各候補行が含まれます。 データ・セットは必要に応じて追加できますが、事前定義済データはほとんどの要件を満たす必要があります。
デフォルトのアクションでは、InventoryItemIdを使用して、コスト加算計算が必要な品目ごとにCostingInput変数にエントリを作成します。 また、ChargeCandidateの行からInventoryOrganizationIdも使用します。
ウェアハウスに従って価格を設定する必要がある場合は、InventoryOrganizationIdを削除し、ShipFromPartyIdに置き換えます。
原価計算サービスの起動
このステップの事前定義済スクリプトは、ほとんどの要件を満たす必要があります。
必要に応じて変更できます。
executeSOAPService('QP_FUSION_COSTING_ICS_SERVICE', //Service Name CostingInput, //input [operation:'retrieveItemCost', inContext:'Sales.retrieveItemCost_Custom', outContext:'Sales.retrieveItemCost_Custom'])
変更時に接続を作成するには、セクションD Oracle Applicationsのコネクタの設定で設定したコネクタを使用します。 詳細は、「Oracle Costingからの原価詳細の取得」を参照してください。
次に、このスクリプトは原価計算サービスから出力を取得します。
CostingOutput = serviceOutputMap.get("outputSDO")
統合では、外部アプリケーション・カスタム価格設定アルゴリズムからの価格の取得をコールすると、CostingInputエンティティおよびCostingOutputエンティティが自動的に追加されることに注意してください。
プロセス原価計算出力
コストが必要なChargeCandidateエントリを反復します。
CostOutputデータ・セットは、行の品目に対応します。
アクションによって、サービスがコストを正常に返したかどうかが判断され、ChargeCandidateのCostValueが更新されます。
オプションとして、サービスで品目のコストが返されない場合は、PricingMessageを使用して、対応する行をエラーとしてマークします。
-
「テスト」をクリックし、「処理」>「行の追加」をクリックしてテスト・ケースを追加します。
-
テスト「入力」タブで、テスト・ケースにPriceRequest変数の行と変数値列のコードが含まれていることを確認します。
コードには値が含まれないため、値の例を含むコードに置き換えます。
-
変数値列で、「鉛筆」をクリックします。
-
「変数の編集」ダイアログで、すべてのコードを削除し、このコードをダイアログに貼り付け、OKをクリックします。
< ? xml version = "1.0" encoding = "UTF-8" ? > < PriceRequestInternal : PriceRequestInternalType xmlns: ns0 = "http://xmlns.oracle.com/adf/svc/types/" xmlns: PriceRequestInternal = "http://xmlns.oracle.com/apps/scm/pricing/priceExecution/pricingProcesses/pricingInternal/PricingInternal" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: type = "PriceRequestInternal:PriceRequestInternalType" > < PriceRequestInternal: Header > < PriceRequestInternal: CustomerId > 1000 < /PriceRequestInternal:CustomerId> < PriceRequestInternal: HeaderId > 1 < /PriceRequestInternal:HeaderId><PriceRequestInternal:CalculatePricingChargesFlag>true</PriceRequestInternal: CalculatePricingChargesFlag > < PriceRequestInternal: CalculateShippingChargesFlag > false < /PriceRequestInternal:CalculateShippingChargesFlag> < PriceRequestInternal: CalculateTaxFlag > false < /PriceRequestInternal:CalculateTaxFlag> < PriceRequestInternal: SellingBusinessUnitId > 204 < /PriceRequestInternal:SellingBusinessUnitId> < PriceRequestInternal: SellingLegalEntityId > 204 < /PriceRequestInternal:SellingLegalEntityId> < PriceRequestInternal: TransactionTypeCode > ORA_SALES_ORDER < /PriceRequestInternal:TransactionTypeCode> < /PriceRequestInternal:Header> < PriceRequestInternal: PricingServiceParameter > < PriceRequestInternal: PricingContext > SALES < /PriceRequestInternal:PricingContext> < /PriceRequestInternal:PricingServiceParameter> < PriceRequestInternal: Line > < PriceRequestInternal: ShipFromPartyId > 300000037424187 < /PriceRequestInternal:ShipFromPartyId> < PriceRequestInternal: HeaderId > 1 < /PriceRequestInternal:HeaderId> < PriceRequestInternal: InventoryItemId > 100000001582379 < /PriceRequestInternal:InventoryItemId> < PriceRequestInternal: InventoryOrganizationId > 300000037424187 < /PriceRequestInternal:InventoryOrganizationId> < PriceRequestInternal: LineId > 1 < /PriceRequestInternal:LineId> < PriceRequestInternal: LineCategoryCode > ORDER < /PriceRequestInternal:LineCategoryCode> < PriceRequestInternal: LineQuantity unitCode = "Ea" xmlns: tns = "http://xmlns.oracle.com/adf/svc/errors/" > 2 < /PriceRequestInternal:LineQuantity> < PriceRequestInternal: LineQuantityUOMCode > Ea < /PriceRequestInternal:LineQuantityUOMCode> < PriceRequestInternal: LineTypeCode > ORA_BUY < /PriceRequestInternal:LineTypeCode> < /PriceRequestInternal:Line> < PriceRequestInternal: ChargeCandidate > < PriceRequestInternal: BasePrice > < /PriceRequestInternal:BasePrice> < PriceRequestInternal: CalculateMarginFlag > Y < /PriceRequestInternal:CalculateMarginFlag> < PriceRequestInternal: CalculationMethod > COST < /PriceRequestInternal:CalculationMethod> < PriceRequestInternal: CalculationTypeCode > MARKUP_PERCENT < /PriceRequestInternal:CalculationTypeCode> < PriceRequestInternal: CostCalculationAmount > 30 < /PriceRequestInternal:CostCalculationAmount> < PriceRequestInternal: CanAdjustFlag > Y < /PriceRequestInternal:CanAdjustFlag> < PriceRequestInternal: ChargeAppliesTo > PRICE < /PriceRequestInternal:ChargeAppliesTo> < PriceRequestInternal: ChargeDefinitionCode > QP_SALE_PRICE < /PriceRequestInternal:ChargeDefinitionCode> < PriceRequestInternal: ChargeDefinitionId > 300100070841552 < /PriceRequestInternal:ChargeDefinitionId> < PriceRequestInternal: ChargeId > 1 < /PriceRequestInternal:ChargeId> < PriceRequestInternal: ChargeSubtypeCode > ORA_PRICE < /PriceRequestInternal:ChargeSubtypeCode> < PriceRequestInternal: ChargeTypeCode > ORA_SALE < /PriceRequestInternal:ChargeTypeCode> < PriceRequestInternal: CurrencyCode > USD < /PriceRequestInternal:CurrencyCode> < PriceRequestInternal: DenormDistanceNum xsi: nil = "true" / > < PriceRequestInternal: ItemId > 149 < /PriceRequestInternal:ItemId> < PriceRequestInternal: ItemLevelCode > ITEM < /PriceRequestInternal:ItemLevelCode> < PriceRequestInternal: ItemLevelPrecedence > 1 < /PriceRequestInternal:ItemLevelPrecedence> < PriceRequestInternal: ItemType > STANDARD < /PriceRequestInternal:ItemType> < PriceRequestInternal: LineTypeCode > ORA_BUY < /PriceRequestInternal:LineTypeCode> < PriceRequestInternal: ParentEntityCode > LINE < /PriceRequestInternal:ParentEntityCode> < PriceRequestInternal: ParentEntityId > 1 < /PriceRequestInternal:ParentEntityId> < PriceRequestInternal: PriceListChargeId > 300100071623860 < /PriceRequestInternal:PriceListChargeId> < PriceRequestInternal: PriceTypeCode > ONE_TIME < /PriceRequestInternal:PriceTypeCode> < PriceRequestInternal: PricingUomCode > Ea < /PriceRequestInternal:PricingUomCode> < PriceRequestInternal: PrimaryPricingUomFlag > Y < /PriceRequestInternal:PrimaryPricingUomFlag> < PriceRequestInternal: StartDate > 2009 - 01 - 01 T09: 00: 00.0 Z < /PriceRequestInternal:StartDate> < PriceRequestInternal: Type > SEGMENT_PRICE < /PriceRequestInternal:Type> < PriceRequestInternal: NeedsCost > true < /PriceRequestInternal:NeedsCost> < /PriceRequestInternal:ChargeCandidate> < PriceRequestInternal: ChangeSummary logging = "false" xmlns: sdo = "commonj.sdo" / > < /PriceRequestInternal:PriceRequestInternalType>
- 明細の品目に従ってコストを直接取得するため、原価計算入力の作成ステップおよび原価計算出力の処理ステップでChargeCandidateへの参照を削除します。 プライマリ・セットが明細であることを確認します。
-
「保存」をクリックします。
-
「テストの実行」をクリックし、テストがエラーなしで終了することを確認します。
Order Managementでは、販売オーダーの「発行」をクリックするまで、販売オーダーの実際の倉庫は決定されません。 そのため、ShipFromPartyIdを使用して倉庫に応じた原価を取得する場合は、オーダー・ヘッダーとオーダー明細に倉庫のデフォルト値を設定するデフォルト・ルールを設定する必要があります。 デフォルト・ルールがない場合、価格設定では原価は計算されません。 詳細は、「オーダー管理でのビジネス・ルールの使用の概要」を参照してください。
-
「保存して閉じる」をクリックします
-
「アルゴリズムの管理」ページで、「処理」>「公開」をクリックし、ステータス属性に外部アプリケーションから価格を取得カスタム・アルゴリズムの公開済が含まれていることを確認します。
2. 事前定義済価格設定アルゴリズムの変更
物品サービスの基本定価の取得アルゴリズムを変更します。 このアルゴリズムは、原価加算価格設定を計算します。
![物品サービスの基本定価の取得アルゴリズムを変更します。](images/qp_various_graphics_166_20072530.png)
演習
-
編集する必要がある価格設定アルゴリズムのバージョンを作成します。
-
「タスク」>「アルゴリズムの管理」をクリックします。
-
「アルゴリズムの管理」ページで、価格設定アルゴリズムを検索します。
属性
値
名前
商品およびサービスの基本定価の取得
-
「処理」>「バージョンの作成」をクリックし、このステータスのバージョンを見つけて、編集のために開きます。
属性
値
ステータス
進行中
-
-
原価加算価格設定を処理するかどうかを決定するために使用するテストを変更します。
-
「アルゴリズムの編集」ページの順序列で、ツリーのステップ15を展開し、コストと価格設定ステップを展開して、値を持つステップをクリックします。
属性
値
名前
原価に価格設定加算の場合
-
条件ウィンドウでコンテンツを削除し、このコードで置き換えます。
属性
値
条件
false && NeedsCostPlus && finer('==== Invoking Cost-Plus Pricing ====') == null
-
「保存」をクリックします。
-
-
原価加算価格を変更します。
-
原価加算価格設定ステップをクリックします。
-
「ステップの追加>コンポジット・ステップ> If」をクリックします。
-
追加した新しいステップをクリックし、値を設定します。
属性
値
名前
外部原価計算と価格設定の場合
条件
NeedsCostPlus && finer('==== Invoking Cost-Plus Pricing ====') == null
-
「保存」をクリックします。
-
-
サブアルゴリズムを追加します。
-
ツリーで、追加したステップ(External Costing Plus Pricingの場合)の三角形をクリックします。
これは、追加するサブアルゴリズムがIf External Costing Plus Pricingの子であることを確認するのに役立ちます。
-
「ステップの追加>サブアルゴリズム」をクリックします。
-
ステップ詳細領域で、値を設定します。
属性
値
名前
外部システムからのコストのコンピュート
アルゴリズム名
外部アプリケーション・カスタムからの価格の取得
これは、このトピックの前の項で作成したアルゴリズムです。
-
入力変数領域で値を設定します。
属性
値
変数
PriceRequest
割当値
PriceRequest
-
出力変数領域で値を設定します。
属性
値
変数
PriceRequest
割当値
PriceRequest
-
-
「保存してクローズ」をクリックし、商品およびサービスの基本定価の取得の最高バージョンを公開します。
ノート
-
原価計算サービスからの出力を処理する場合は、原価値を使用して、アルゴリズムで正常に計算される各品目の原価手数料コンポーネントを作成します。 例として、コストの計算アルゴリズムのコストの書込みステップを使用します。
-
構成可能品目の価格を設定する場合は、積上および集計料金コンポーネント・サブアルゴリズムをコールして原価を積み上げて集計します。 コストを計算するアルゴリズムから作成した新しいカスタム・アルゴリズムをコールします。
Oracleの一部であるシステムによるコスト・プラス価格設定の実装
このトピックの前の項で説明したステップを実行すると、価格設定アルゴリズムによってChargeComponentsでコストがすでに計算されています。 実行する必要がある手順を次に示します。
-
原価を計算するアルゴリズムの新しいバージョンを作成します。
-
Oracle Pricingで原価リストから原価を取得するステップを使用不可にします。
-
コストとマークアップが必要なChargeCandidateエントリを繰り返すステップを追加します。 ChargeCandidateからCostValueを取得し、原価手数料コンポーネントを作成します。
-
原価手数料コンポーネントを作成する例として、原価の計算アルゴリズムまたはマージンの計算アルゴリズムの原価の書込みアルゴリズム・ステップを使用します。
-
構成可能品目の価格を設定する場合は、積上および集計料金コンポーネント・サブアルゴリズムをコールして原価を積み上げて集計します。
-
変更を保存して公開します。
マージンの計算
オプションとして、Oracle Costingの原価に従ってマージンを計算できます。
原価の計算価格設定アルゴリズムによって原価が計算され、価格設定手数料の計算アルゴリズムのマージンの計算ステップによってマージンが計算されます。 このセクションでは、このユースケースで従うことができるいくつかのガイドラインについて説明します。