Order Managementの価格設定合計の変更
Order Management作業領域に表示される価格設定合計を変更します。
合計原価と合計マージンを価格内訳に追加し、各返品明細の手数料金額を税金合計に含める必要があるとします。
返品明細のみを含む販売オーダーの価格設定を含む例を次に示します。
![返品明細のみを含む販売オーダーの価格設定を含む例](images/qp_various_graphics_10_20071046.png)
設定のサマリー
-
新しい合計を設定します。
-
売上合計の計算価格設定アルゴリズムを設定します。
-
使用合計価格設定の識別アルゴリズムを設定します。
-
単純な合計のコンピュート価格設定アルゴリズムを設定します。
-
設定をテストします。
新規合計の設定
-
管理権限でOracle Order Managementにサインインします。
-
「設定および保守」作業領域に移動してから、タスクに移動します。
-
オファリング: オーダー管理
-
機能領域: 価格設定
-
タスク: 価格設定合計の管理
-
-
「価格設定合計の管理」ページで、「処理」>「行の追加」を使用して新しい合計を作成します。
合計
名前
説明
TOTAL_COST
合計原価
オーダー明細の価格および出荷手数料の合計原価です。
TOTAL_MARGIN
合計マージン
オーダー明細の価格および出荷手数料のマージンの合計です。
合計を追加するときは、必ずこれらのオプションを有効にしてください。
-
トランザクション可能
-
戻り値がNULLではありません
プロセス名属性は空のままにします。
-
-
「保存」をクリックします。
売上合計の計算価格設定アルゴリズムの設定
売上合計を計算し、それらを価格内訳で表示する方法を指定するアルゴリズムを設定します。
-
サインアウトし、価格設定の管理に必要な権限でOracle Applicationsにサインインします。
-
価格設定管理作業領域に移動し、「タスク」>「アルゴリズムの管理」をクリックします。
-
「アルゴリズムの管理」ページで、「例による問合せ」をクリックし、売上合計の計算の名前列を検索します。
-
バージョン列の最高値を含む「行」をクリックし、「処理」>「バージョンの作成」をクリックします。
-
「アルゴリズムの編集」ページで、「後処理合計」ステップをクリックします。
-
条件付きアクション領域で、合計ごとにTotalAnnotationプロパティを確認します。
注釈では、ドット表記法を使用して、価格内訳での各合計の表示方法を指定します。
section.sequence.font
説明
-
section
は、価格内訳のセクションを指定します。 -
sequence
は、価格ブレークダウンの明細の上から下の順序で合計を表示する場所を指定 -
font
は、フォント・スタイルを指定します。 太字でないフォントには0 (ゼロ)を使用し、太字には1を使用します。
たとえば:
この条件が真の場合
このアクションを実行
'QP_TOTAL_PAY_NOW' == Total.TotalCode
Total.TotalAnnotation = '3.7.1'
この条件では、Pay Nowの合計額を3番目のセクション、合計の7番目のセクション、および太字フォントを使用するように指定します。
簡潔にするために、画面印刷にPrimaryFlagは含まれません。 行を追加する場合は、必ずTotal.TotalAnnotationの下にPrimaryFlagを追加してください。 即時支払以外のすべての行でfalseに設定します。 Pay Now(即時支払)にtrueを設定します。
-
-
条件付きアクション領域で、「行の追加」をクリックし、値を設定して、「保存してクローズ」をクリックします。
この条件が真の場合
次のアクションを実行
'TOTAL_COST' == Total.TotalCode
Total.TotalAnnotation = '3.8.0'
Total.PrimaryFlag =false
'TOTAL_MARGIN' == Total.TotalCode
Total.TotalAnnotation = '4.9.0'
Total.PrimaryFlag =false
-
「アルゴリズムの管理」ページで、編集したアルゴリズムを含む「行」をクリックし、「処理」>「公開」をクリックします。
-
行のステータスが公開済に変わることを確認します。
使用合計の識別価格設定アルゴリズムの設定
販売オーダーの価格内訳に表示する使用合計を識別するアルゴリズムを設定します。
-
「アルゴリズムの管理」ページで、「例による問合せ」をクリックし、名前列で使用合計の識別を検索します。
-
バージョン列の最高値を含む「行」をクリックし、「処理」>「バージョンの作成」をクリックします。
-
「アルゴリズムの編集」ページで、「使用合計エンティティの作成」ステップをクリックします。
-
条件付きアクション領域で、新しい合計にアクションを追加します。
'ORA_SALES_ORDER' == Header.TotalUsageCode
条件を含む行にこれらを追加します。太字のコードを追加します。
この条件が真の場合
次のアクションを実行
'ORA_SALES_ORDER' == Header.TotalUsageCode
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_LIST_PRICE', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_DISCOUNT', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_NET_PRICE', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_SHIP_CHARGE', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_TAX', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_CREDIT', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'QP_TOTAL_PAY_NOW', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage: 'TOTAL_COST', HeaderId:Header.HeaderId])
UsageTotal.insert([TotalCodeForUsage:'TOTAL_MARGIN', HeaderId:Header.HeaderId])
-
「保存して閉じる」をクリックします
-
「アルゴリズムの管理」ページで、編集したアルゴリズムを含む「行」をクリックし、「処理」>「公開」をクリックします。
単純合計のコンピュート価格設定アルゴリズムの設定
販売オーダーの価格内訳に表示する使用合計を識別するアルゴリズムを設定します。
-
「アルゴリズムの管理」ページで、「例による問合せ」をクリックし、Compute Simple Totalsの名前列を検索します。
-
バージョン列の最高値を含む行をクリックし、「処理」>「バージョンの作成」をクリックします。
このステップでは、オーダー・ヘッダーごとにChargeComponentsを繰り返します。
-
変数を宣言します。
-
Local Variables領域まで下にスクロールします。
-
Local Variables領域で、変数を追加します。 「行の追加」をクリックして、各変数を追加します。
変数名
デフォルト
MarginTotalCode
'TOTAL_MARGIN'
一重引用符を含める必要があります。
RunningMarginSum
0.0
MarginTotal
空のままにします
-
-
合計を計算するコードを追加します。
-
ステップ領域で、「合計のコンピュート」ステップをクリックします。
-
Group Each Row Actions領域にコードを追加します。
//TotalMargin totalUsage = TotalUsage.locate([TotalCodeForUsage: MarginTotalCode]) if ('ORDER' == Line.LineCategoryCode && Charge.ChargeAppliesTo in ['PRICE', 'SHIPPING'] && ChargeComp.PriceElementCode == 'QP_MARGIN' && null != totalUsage) { if (null == MarginTotal) { MarginTotal = Total.locate([TotalCode: MarginTotalCode, HeaderId: Header.HeaderId]) TotalDef = getTotalDefinitionFromInternal(TotalDefinition, MarginTotalCode) if (TotalDef ? .TransactionEnabledFlag) { TotalId = getNextId() MarginTotal = Total.insert([TotalId: TotalId, TotalCode: MarginTotalCode, EstimatedFlag: IsEstimated, CurrencyCode: Header.AppliedCurrencyCode, HeaderId: Header.HeaderId, ParentEntityId: Header.HeaderId, ParentEntityCode: 'ORA_HEADER']) TotalAmount = MarginTotal.createDataObject('TotalAmount') TotalAmount.CurrencyCode = MarginTotal.CurrencyCode TotalAmount.Value = 0.0 } } if (null != MarginTotal) { RunningMarginSum += ChargeComp.HeaderCurrencyExtendedAmount.Value TotalComp.insert([TotalComponentId: getNextId(), TotalId: MarginTotal.TotalId, ChargeComponentId: ChargeComp.ChargeComponentId]) } }
ここに説明があります。
-
グループ最終行処理領域にコードを追加します。 このコードは、新しい合計を検索し、計算された合計値を割り当てます。
if (null == MarginTotal) MarginTotal = Total.locate([TotalCode: MarginTotalCode, HeaderId: Header.HeaderId]) if (MarginTotal != null) { MarginTotal.TotalAmount.Value = RunningMarginSum }
-
-
合計が空である状況を処理するコードを追加します。
-
ステップ領域で、「空の合計を書き込み」ステップをクリックします。
-
デフォルト・アクション領域にコードを追加します。
//Empty TotalPayNow TotalCode = 'TOTAL_MARGIN' CheckTotal = Total.locate([TotalCode: TotalCode]) totalUsage = TotalUsage.locate([TotalCodeForUsage: TotalCode]) TotalDef = getTotalDefinitionFromInternal(TotalDefinition, TotalCode) if (null != totalUsage && null == CheckTotal && TotalDef ? .ReturnNullTotalFlag && TotalDef ? .TransactionEnabledFlag) { CheckTotal = Total.insert([TotalCode: TotalCode, TotalId: getNextId(), CurrencyCode: Header.AppliedCurrencyCode, EstimatedFlag: IsEstimated ]) TotalAmount = CheckTotal.createDataObject('TotalAmount') TotalAmount.CurrencyCode = CheckTotal.CurrencyCode TotalAmount.Value = 0.0 }
-
-
「保存して閉じる」をクリックします
-
「アルゴリズムの管理」ページで、編集したアルゴリズムを含む「行」をクリックし、「処理」>「公開」をクリックします。
設定のテスト
-
別のブラウザ・アプリケーションをオープンし、Order Managementにサインインします。
-
販売オーダーを作成し、オーダー明細を追加します。
-
オーダーの上部にある「合計」をクリックし、価格内訳に新しい合計が含まれ、値が正しく計算されていることを確認します。