Industries CPQ ルールに使用するインターフェース実装について学ぶ
学習の目的
この単元を完了すると、次のことができるようになります。
- コンテキストルールフレームワークで使用される主なインターフェースと実装を挙げる。
- インターフェースと実装が高度なルールでどのように使用されるかを説明する。
Industries CPQ のルールフレームワーク
注文キャプチャプロセスにおいて、ルールは正しい注文を作成するために不可欠です。ルールを使用することで、お客様に提供するすべての商品とサービスを管理し、正しい価格での提供などが可能になります。また、注文の変更およびキャンセルに対する適切なペナルティをビジネス目標に沿って評価することもできます。
Salesforce Industries では、ビジネス目標を達成できるように、コンテキストルールと高度なルールという 2 つのフレームワークを用意しています。この 2 つのフレームワークについて学ぶには、次のインタラクティブな演習を行ってください。各フレームワークをクリックすると詳細が表示されます。
Industries CPQ (設定、価格、見積) 環境では、コンテキストルールフレームワークと高度なルールフレームワークが連携してビジネスルールを実行します。使用するルールを決定する前に、エンドツーエンドのお客様の要件を把握しておくことが重要です。
コンテキストルールと高度なルールについての詳細は、「リソース」セクションを参照してください。
コンテキストルールのインターフェース実装
商品には複数の価格を割り当てることができ、お客様に適用可能な価格は価格設定ルールによって決まります。対象資格を判断する変数は、地域、顧客セグメント、プロモーション割引などたくさんありますが、お客様が複数の価格の対象になっている場合はどうすればよいでしょうか? 最終的には、単一の価格を設定する必要があります。ここで役立つのが、インターフェースと実装です。
このセクションでは、コンテキストルールフレームワークによって使用される主なインターフェースと実装について説明します。さっそく始めましょう。
ContextRuleService
このインターフェースの実装は 1 つのみであり、その実装にも ContextRuleService という名前が付けられています。覚えやすいですね。コンテキストルールを機能させるには、この実装を有効かつデフォルトにします。
[代替テキスト: 使用可能な実装が 1 つある ContextRuleService インターフェース。]
この実装では、プロモーションや商品のようなオブジェクトの対象になるかどうかを判断するルール条件や、ペナルティアクションが発生したときのアクションセットを特定するルール条件を評価します。
ProductAvailabilityOpenInterface
このインターフェースは、お客様が選択する商品のリストをアプリケーションで提供する必要がある場合にコールします。このインターフェースには 2 つの実装があります。
[代替テキスト: 使用可能な実装が表示されている ProductAvailabilityOpenInterface。]
- DefaultAvailabilityOpenImplementation は、コンテキストルールを実行せずに商品のリストを返します。この実装を主に使用するのは、適用するコンテキストルールがない場合です。
- CtxRulesProductsOpenImplementation は、コンテキストルールセットを満たす商品のみを返します。商品にコンテキストルールをデプロイするには、この実装を有効およびデフォルトにします。
プロモーションのコンテキストルールには類似のインターフェースはありません。ContextRuleService の一部として含まれています。
TightestMatchInterface
このインターフェースでは、お客様が複数の評価済み価格リストエントリの対象となる場合に選択される価格リストエントリを決定します。2 つの実装が含まれています。
[代替テキスト: 使用可能な実装が表示されている TightestMatchInterface。]
- TightestMatchServiceImplementation は、選択する価格リストエントリの決定に条件加重を使用するデフォルト実装です。
- FirstMatchImplementation は、その名のとおり、加重を無視し、見つかった最初の一致を選択します。
条件加重のしくみを理解するために、もう少し掘り下げてみましょう。お客様が商品をカートに追加すると、ルールエンジンは設定されたルールに基づいて、すべての評価済みの子価格リストと価格リストエントリを決定します。その後、2x + 2y という数式を使用して、評価済みの各価格リストエントリに加重を割り当てます。
ここで、x は子価格リストルールが使用するコンテキストディメンションに設定された条件加重、y は価格リストエントリルールが使用するコンテキストディメンションに設定された条件加重です。
条件加重は、子価格リストが存在する場合はそのリストと価格リストエントリに割り当てられた各ルール条件のコンテキストディメンションから計算されます。その後、合計加重が各価格リストエントリに割り当てられます。
ルール環境を簡素化するのに適切な方法は、ほとんどのコンテキストディメンションで条件加重プロパティを空白にすることです。こうすればある条件を優先するときに、21=2, 22=4, 23=8 のように、条件の加重がすぐにできるようになります。
「最も厳密な一致」アルゴリズムは次を想定しています。
- コンテキストルールのない価格リストエントリ (PLE) には、条件加重が 0、つまり 20 (= 1) として割り当てられます。
- コンテキストルールの条件加重が null の PLE は、0、または 20 (= 1) として評価されます。
- 条件加重が 60 を超える PLE は、デフォルトで 0、または 20 (=1) となります。
- 親価格リストのコンテキストルールは評価されません。
- 最も高い加重を持つ価格リストエントリが複数ある場合、インターフェースでは最も新しく作成された価格リストエントリが選択され、その価格が品目に適用されます。
条件加重値は、TightestMatchServiceImplementation によって、価格リストエントリの相対加重を計算するために使用されます。この実装は、価格リストエントリまたは子価格リストに割り当てられたルールにのみ使用され、商品およびプロモーションに割り当てられたルールには使用されません。
次は、高度なルールフレームワークによって使用される主なインターフェースと実装について学習します。
高度なルールのインターフェース実装
Salesforce Industries には、高度なルールに使用できる多様なインターフェースとデフォルト実装が用意されています。デフォルト実装によってカートの実行はできますが、ルールの呼び出しは行われません。ルールを適用するには異なる実装を有効にする必要があります。このような実装を使用するか、独自のカスタムまたはハイブリッド実装を作成することができます。それでは、高度なルールフレームワークで使用されるインターフェースと実装をいくつか見てみましょう。
ProductValidationInterface
このインターフェースでは、互換性ルール (設定ルールや検証ルールとも呼ばれる) を実装します。次の実装が含まれています。
[代替テキスト: 使用可能な実装が表示されている ProductValidationInterface。]
- DefaultProductValidationImplementation は、受信した入力をそのまま出力として返します。つまり、検証ルールや互換性ルールは実装されません。
- ValidationRulesImplementation は、商談、注文、見積にすべての商品リレーションと有効な互換性ルールを実行します。
- ProductRelationshipValidationImpl は、現在はサポートされていない旧実装です。
このルールでは、商品間のリレーションを指定します。Industries CPQ の高度なルールでは、ある商品が他の商品を要求、提案、または除外できます。ProductValidationInterface は、商談、注文、見積内の商品の互換性を検証します。ProductValidationInterface は、一般的に、商談、注文、見積で商品の追加、変更、削除が行われたときにトリガーされます。
ProductAvailabilityInterface
このインターフェースでは、使用可能状況ルールを実装します。3 つの実装があります。
[代替テキスト: 使用可能な実装が表示されている ProductAvailabilityInterface。]
- LocaleProductAvailability は、標準の使用可能状況ルールを実行します。
- DefaultProductAvailabilityImplementation は、使用可能状況ルールを実行しません。代わりに、変更を行わずに商品リストを返します。
- FilterAvailabilityImplementation は、ルールの順序が重要でない場合に、高度な使用可能状況ルールを実行します。
ProductAvailabilityInterface が関与するのは、特定の配送先、取引先、取引先属性に使用可能な商品を指定する要求があった場合です。
ProductEligibilityInterface
このインターフェースは、ProductAvailability のインターフェースと実装の直後に関与します。このインターフェースには、3 つの実装があります。
[代替テキスト: 使用可能な実装が表示されている ProductEligibilityInterface。]
- AccountTypeProductEligibility は標準の対象資格ルールを実行します。
- DefaultProductEligibilityImplementation は、対象資格に対する変更を行うことなく入力を返します。
- FilterEligibilityImplementation は、ルールの順序が重要でない場合に、高度な使用可能状況ルールを実行します。
ProductEligibilityInterface では対象資格ルールを実装して特定のロケーションで使用可能な商品を指定しますが、顧客はその対象ではありません。
PricingInterface
価格設定ルールでは、PricingInterface とその 4 つの関連する実装を使用して正しい価格設定を計算します。
[代替テキスト: 使用可能な実装が表示されている PricingInterface。]
PricingInterface とその実装は、商談、注文、見積で商品の追加、削除、変更が行われたときにトリガーされます。このインターフェースを使用して、計算手順をアクションとしてコールする高度なルールを作成できます。
最後に
お疲れさまでした。Industries CPQ のルールフレームワークで使用される主なインターフェースと実装について学習しました。Salesforce Industries のインターフェースと実装を使用し、各インターフェースで有効になっている実装を変更すると、CPQ アプリケーションの動作を変えることができます。これは、カスタムロジックを作成するうえで重要となります。適切なインターフェースと実装を使用して目的の出力を得てください。あなたの会社と顧客は、きっと満足するでしょう。
リソース
- Salesforce ヘルプ: Context Rules and Advanced Rules Frameworks (コンテキストルールと高度なルールのフレームワーク)
- Salesforce ヘルプ: Context Rules or Advanced Rules: What Type to Use? (コンテキストルールか高度なルール: 使用するタイプ)