価格設定アルゴリズム・ステップ
価格設定アルゴリズム・ステップのロジックを設定します。
追加できるステップのタイプを次に示します。
![追加できるステップのタイプ](images/qp_various_graphics_75_20068668.png)
通常は、条件付きアクション、ネストされたアクション、サブアルゴリズムまたはグループを使用します。
条件付きアクション・ステップ
プライマリ・データ・セットが指定した条件を満たす場合、条件付きアクション・ステップはセット内のすべての行に対してアクションを実行します。 条件付きアクション・ステップで使用される構造を次に示します。
If (condition 1) { . . . }
else if (condition 2) { . . . }
else if (condition 3) { . . . }
. . .
else { default }
事前定義済の対象品目手数料の計算アルゴリズムの基準値を候補にコピー・ステップの条件の例を次に示します。
![事前定義済の対象品目手数料の計算アルゴリズムの基準値を候補にコピー・ステップの条件の例。](images/qp_various_graphics_82_20068682.png)
次の例で、構成品目の積上手数料を計算するステップを確認します。 これが機能です。
-
プライマリ・データ・セットの各行を評価します。
-
構成品目のルート品目の手数料と各子品目の手数料を繰り返します。
-
必要に応じて、各手数料定義の積上手数料を作成します。
次に、その機能の詳細を示します。
-
PriceRequestペイロードから料金を取得します。
-
ペイロードにロールアップされた料金が1つ以上含まれていることを示す
Charge.RollupFlag = true
の場合は、ペイロードにRollupCharge変数を作成します。 -
RollupCharge変数に、構成済品目の各子品目に対する積上料金を移入します。
-
このステップでロールアップ料金が正常に作成されたことを示すには、ServiceParamデータ・セットのOutputStatusをSUCCESSに設定します。
条件付きアクションを含むステップを確認します。
-
価格設定管理作業領域に移動します。
-
概要ページで、「タスク」>「アルゴリズムの管理」をクリックします。
-
「アルゴリズムの管理」ページで、「事前価格設定済オーダーの積上手数料の計算」をクリックし、「処理」>「バージョンの作成」をクリックします。
-
名前列で、作成したばかりの事前価格設定済オーダーの積上手数料の計算の新しいバージョンをクリックします。
-
「アルゴリズムの編集」ページで、「積上手数料の作成」ステップをクリックします。
-
ステップ詳細領域の条件ウィンドウで、条件を確認します。
条件
説明
!Charge.RollupFlag && 'LINE' == Charge.ParentEntityCode && ('ROOT' == Line.ItemType || 'COMPONENT' == Line.ItemType)
このステップの終了基準を設定します。
この例では、条件によってServiceParamデータ・セットのOutputStatusがSUCCESSに設定され、ステップでロールアップ・チャージが正常に作成されたことが示されます。
-
ステップ詳細領域で、条件の実行領域の一部を確認します。
部品
説明
ローカル変数
条件付きアクションおよびデフォルト・アクション領域で記述したコードにのみ適用される変数を宣言します。
条件付き処理
価格設定がステップに適用される条件付きロジックを設定します。
デフォルト・アクション
条件付きアクションがtrueに評価されない場合は、デフォルトのアクション・ステップに使用するロジックを設定します。
-
Local Variables領域で、変数を確認します。
変数名
説明
積上
条件付きアクション領域のアクション・ウィンドウで、価格設定がコードを反復したときの各課金を識別します。
RollupChargeCounter
反復回数をカウントします。
-
Conditional Actions(条件付きアクション)領域で、条件を確認します。
True条件
説明
RollupCharge.size() = 0
条件を指定します。
-
条件付きアクション領域で、アクション・ウィンドウのコードを確認します。
このコードは、構成済品目の各子品目に対する料金を取得し、RollupCharge変数に子の積上手数料を移入します。 価格設定では、子品目の価格設定が終了するまで、子品目のコードを繰り返します。
-
「条件の追加」>「True Condition」をクリックします。
PricingでConditional Actions(条件付き処理)領域に新しい条件が追加されたことを確認します。 複数の条件を追加すると、条件付きアクション領域に表示される順序で各条件が評価されます。 順序を変更するには、上に移動または下に移動をクリックします。
-
条件付きアクション領域で、「削除」をクリックします。
-
「アルゴリズムの管理」ページで、価格設定アルゴリズムの進行中バージョン事前価格設定オーダーの積上手数料の計算を削除します。
ネストされたアクション・ステップ
ネストされたアクション・ステップは、データ・セットの各行に対して異なるアクションを実行します。
![ネストされたアクション・ステップは、データ・セットの各行に対して異なるアクションを実行します。](images/qp_various_graphics_83_20068683.png)
ノート
-
ネストされたデータ・セットを使用して、ネストされた処理で処理する行を識別します。
-
アクションの仕組みは次のとおりです。
この行に対する処理
このレコードにアクションを適用
最初の行アクション。
問合せが返す最初のレコード。
行アクションごと。
最初のレコードを含む、問合せが返す各レコード。
最後の行アクション。
問合せが返す最後のレコード。
行アクションがありません。
レコードがありません。 問合せでレコードが返されない場合に適用されます。
ネストされたアクション・ステップで使用される構造を次に示します。
For each Nested Set Row {
If First Row {. . .}
For Each Row {. . .}
If Last Row {. . .}
If No Row {. . .}
}
条件を実装する必要があるとします。
-
1つの販売オーダーの複数の注文ラインが同じ品目を参照している場合は、その品目にディスカウントを適用します。
データ・セットの最初の行にアクションxを適用し、データ・セットの他の行にアクションyを適用する価格設定アルゴリズム・ステップを記述できます。
ネストされた処理を使用して各オーダー明細の各品目の出荷手数料リストで手数料を検索するステップを調べてから、候補者を出力SDOに書き込みます。
-
価格設定管理作業領域に移動します。
-
概要ページで、「タスク」>「アルゴリズムの管理」をクリックします。
-
「アルゴリズムの管理」ページで、「配送料を計算」をクリックし、「処理」>「バージョンの作成」をクリックします。
-
名前列で、作成したばかりの出荷手数料の計算の新しいバージョンをクリックします。
-
「アルゴリズムの編集」ページで、「出荷手数料候補の検索」ステップをクリックします。
-
ステップ詳細領域の条件ウィンドウで、条件を確認します。
条件
説明
'SUCCESS' == ServiceParam.OutputStatus && 'ERROR' != Line.MessageTypeCode && 'ORDER' == Line.LineCategoryCode && ('STANDARD' == Line.ItemType || 'ROOT' == Line.ItemType) && Line.AppliedShippingChargeListId != null && finer(AlgmName + ': finding charge candidates for line ' + Line.LineId + ' (' + Line.InventoryItemId + ')') == null
このステップの終了基準を設定します。
条件は、ServiceParamデータ・セットのOutputStatusをSUCCESSに設定して、このステップが各オーダー明細の各品目の出荷手数料リストで正常に見つかったことを示し、候補者を出力SDOに書き込みます。
-
ネストされたアクション領域で、プライマリ・データ・セット内の行を処理するたびにこのステップで問い合せるデータ・セットを選択できることを確認します。
この例では、ステップには各品目の出荷手数料リストで手数料を検索する必要があるデータ(オーダー明細に使用するPricingStrategyId、オーダー・ヘッダーのSellingBusinessUnitIdなど)が含まれているため、手数料データ・セットを使用するようにステップが事前定義されています。
-
アクション領域で「アクションの追加」をクリックし、問合せが返す行ごとに異なるアクションを指定できることを確認します。
たとえば、最初の行アクションを選択して、このステップが実行するアクションを問合せが返す最初の行のみに追加します。
-
最初の行のActions(処理)領域のActions(処理)ウィンドウで、コードを確認し、最初の行で参照する各品目の出荷手数料リストで手数料が見つかります。
表示を簡略化するには、コードをクリップボードにコピーし、ワープロ・アプリケーションに貼り付けます。
-
行処理なし領域の処理ウィンドウで、コードを確認し、ステップで品目の出荷手数料リストが見つからない状況を処理していることを確認します。
-
「アルゴリズムの管理」ページで、出荷手数料の計算価格設定アルゴリズムの進行中バージョンを削除します。
サブアルゴリズム・ステップ
サブアルゴリズム・ステップでは、別の価格設定アルゴリズムがコールされます。 次に例を示します。
![事前定義済の価格販売トランザクション・アルゴリズムの初期化ステップは、初期値の設定アルゴリズムをコールします。](images/qp_various_graphics_84_20068684.png)
ノート
-
事前定義済の価格販売トランザクション・アルゴリズムの初期化ステップは、初期値の設定アルゴリズムをコールします。
-
サブアルゴリズム領域のアルゴリズム名を使用して、サブアルゴリズムを選択します。
-
入力変数を使用して、コール・アルゴリズムがサブアルゴリズムに送信する値を指定します。
-
出力変数を使用して、サブアルゴリズムがコール・アルゴリズムに送信する値を指定します。
-
ステップ詳細領域には、アルゴリズム名を設定したときにサブアルゴリズムに含まれる変数が追加されます。 さらに必要な場合は、作成してから追加します。
グループ・ステップ
グループ・ステップでは、プライマリ・データ・セット内の行を属性の値に従ってグループ化し、グループごとに異なる処理を処理します。
たとえば、事前定義された積上手数料コンポーネントの集計価格設定アルゴリズムは、顧客が構成品目に対して1つの値を表示できるように料金を積み上げます。 このステップでは、積上手数料の個々の手数料コンポーネントを合計する集計手数料コンポーネントを作成します。
各オーダー明細の各品目の出荷手数料リストで手数料を見つけ、候補者を出力SDOに書き込むステップを確認します。
-
価格設定管理作業領域に移動します。
-
概要ページで、「タスク」>「アルゴリズムの管理」をクリックします。
-
「アルゴリズムの管理」ページで、「積上手数料コンポーネントの集計」をクリックし、「処理」>「バージョンの作成」をクリックします。
-
名前列で、作成したばかりの集計積上手数料コンポーネントの新しいバージョンをクリックします。
-
「アルゴリズムの編集」ページで、「エレメント・コード別の集計手数料コンポーネントの作成」ステップをクリックします。
このステップでは、集計されていない手数料コンポーネントを調べて、各積上手数料の価格要素コードに従って合計します。 次に、対応する集計料金コンポーネントを作成し、コンポーネントのRollupFlagをtrueに設定します。
-
ステップ詳細領域の条件ウィンドウで、条件を確認します。
条件
説明
'SUCCESS' == ServiceParam.OutputStatus && !(Comp.IsPassedIn ?: false) && Rollup != null && !(Rollup.IsPassedIn ?: false) && 'LINE' == Rollup.ParentEntityCode && (PriceElement == null || Comp.PriceElementCode == PriceElement) && !Comp.RollupFlag && Comp.AggregateChargeComponentId == null && Comp.SourceTypeCode!='MANUAL_ADJUSTMENT'
このステップの終了基準を設定します。
条件によって、ServiceParamデータ・セットのOutputStatusがSUCCESSに設定され、ステップで各積上手数料の価格要素コードに従って手数料コンポーネントが正常に追加されたことを示し、対応する集計手数料コンポーネントが作成されました。
-
Group by Attributes(属性別グループ)領域で、事前定義済属性を確認します。 このステップでは、プライマリ・データ・セット内の行をグループに編成するために使用されます。
属性
説明
Rollup.ChargeId
ロールアップ・データ・セットのChargeId属性に従って、プライマリ・データ・セットの行をグループ化します。
Comp.PriceElementCode
プライマリ・データ・セット内の行を、
Comp
データ・セットのPriceElementCode属性に従ってグループ化します。グループ別属性領域に追加する各属性は、プライマリ・データ・セット内の行の個別のグループに対する可能性を追加します。 価格設定では、追加する属性に従って順番に並べられます。
複数の属性を追加すると、グループ化基準属性領域に表示される順序に従ってグループが配置されます。 1つ目のグループを先に、2つ目のグループを1つ目のグループの直後に配置します。 最後のグループの直後に、どのグループにもない行が配置されます。
たとえば:
-
ロールアップ・データ・セットの行2、5および7のChargeId属性は、それぞれ123と等しくなります。
-
Comp
データ・セットの3行目、8行目および9行のPriceElementCode属性は、それぞれ456になります。
この例の
Comp
プライマリ・データ・セットに行を配置するためにステップで使用される順序を次に示します。-
積上データ・セットの2行目
-
ロールアップ・データ・セットの行5
-
ロールアップ・データ・セットの7行目
-
Comp
データ・セットの3行目 -
Comp
データ・セットの8行目 -
Comp
データ・セットの9行目 -
最初のグループまたは2番目のグループにない他のすべての行
-
-
アクション領域で「アクションの追加」をクリックし、グループごとに行に異なるアクションを指定できることを確認します。
アクション
説明
最初の行のグループ化アクション
最初の行のアクションをグループ化します。
各行アクションのグループ化
行ごとにアクションをグループ化します。
グループ最終行のアクション
最後の行のアクションをグループ化します。
-
「アルゴリズムの管理」ページで、積上手数料コンポーネントの集計価格設定アルゴリズムの進行中バージョンを削除します。