ルールへの条件を追加する
学習の目的
この単元を完了すると、次のことができるようになります。
- 商品ルールにおけるエラー条件レコードの役割について説明する。
- 入力規則の商品ルールレコードを作成する。
- 項目の値をテストするエラー条件を作成する。
- CPQ 以外のデータを見積に含めてエラー条件をテストする方法を説明する。
- AND/OR ロジックを使用して詳細条件を作成する。
正しい条件を定義する
商品ルールの目的は、営業担当が正確な見積書を作成できるようにすることです。そのための 1 つの方法は、ミスを防ぐことです。たとえば、AW Computing 社が Cloud Storage という名前の商品を販売しているとします。(AW Computing 社は、Trailhead の他の CPQ 関連モジュールにも登場した架空の会社です。)Cloud Storage は HIPAA に準拠していないため、AW Computing 社の営業担当は、ヘルスケア業界の取引先への Cloud Storage の販売を禁止されています。営業担当がこのルールを破ろうとした場合、見積品目エディターで [Save (保存)] をクリックした時点でエラーメッセージが表示されます。
取引先がヘルスケア業界の企業ではないか、見積に Cloud Storage が含まれていない場合は、エラーメッセージは表示されません。つまり、条件が正しければルールは実行されません。では、CPQ は条件が正しいかどうかをどのように判断するのでしょうか? 簡単です。エラー条件を確認するだけです。
エラー条件とは、基本的に合格か不合格を見るテストです。あるデータ (見積行の商品コードなど) を見て、他のデータ (「CLOUDSTORAGE」という文字列など) と比較します。この例では、それらが等しいかどうかをチェックします。等しければテストは合格で、ルールは実行に 1 歩近づきます。
このヘルスケア業種の例のように、商品ルールによっては、複数のエラー条件をチェックして実行すべきかどうかを判断します。チェックする条件はいくつでも必要なだけ設定できます。ただし、複数のエラー条件を設定する場合には、ルールを実行するために合格する必要がある条件の数を CPQ に伝える必要があります。たとえば、いずれかのテストに合格すれば実行できるように指定することも、すべてのテストに合格しなければ実行できないように指定することもできます。
実行するために合格する必要があるテストが「いずれか」または「すべて」のどちらであるかは、商品ルールレコードの [Conditions Met (一致条件)] 項目で指定します。
この項目の [Custom (カスタム)] 値を使用すると、より複雑なロジックを定義できます。詳細条件の使い方は、この単元の最後に学習します。
まず、ヘルスケアルールに必要な 3 つのレコードのうち、最初のレコードである商品ルールレコードを作成しましょう。
- CPQ が有効になっている組織をまだ開いていない場合は、「Challenge」セクションまでスクロールダウンし、[Launch (起動)] をクリックして開きます。
- 組織内でアプリケーションランチャー () をクリックして、[Salesforce CPQ] タイルをクリックします。
- ナビゲーションバーで、[Product Rules (商品ルール)] をクリックします。
-
[New (新規)] をクリックします。
- [Product Rule Name (商品ルール名)] に
No cloud storage for healthcare industry
(ヘルスケア業界への Cloud Storage の販売は禁止) と入力します。
- [Type (種別)] で [Validation (入力規則)] を選択します。
- [Evaluation Event (評価イベント)] で [Always (常に)] を選択します。
[Evaluation Event (評価イベント)] については次の単元で学習するため、ここではそのままにしておきます。
-
[有効] チェックボックスをオンにします。
- [Conditions Met (一致条件)] で [All (すべて)] を選択します。
- [Message (メッセージ)] に
Cloud Storage may not be sold to accounts in the healthcare industry
(ヘルスケア業界の取引先には Cloud Storage を販売することはできません) と入力します。
-
[Save (保存)] をクリックします。
あといくつかのエラー条件レコードを設定すればルールは完成です。
最初のエラー条件を作成する
エラー条件とは、要は 2 つのデータを比較するものです。最初のエラー条件を作成するときには、どのデータをどのように比較するかを CPQ に指示する必要があります。この演習では、見積品目の商品コードを参照して、CLOUDSTORAGE というテキストと比較して等しいかどうかをテストする必要があります。
- [Error Condition (エラー条件)] 関連リストで、[New (新規)] をクリックします。
- [Tested Object (テスト対象オブジェクト)] で [Quote Line (見積品目)] を選択します。
- [Tested Field (テスト対象項目)] で SBQQ__ProductCode__c を選択します。
テスト対象オブジェクトと項目の組み合わせを選択することで、CPQ に 1 つのデータのソースを参照させたことになります。[Tested Field (テスト対象項目)] 選択リストの値として API 参照名が表示されるのは正常です。項目の表示ラベルが変更されることがあっても API 参照名が変更されることはまずないため、項目を識別するには API 参照名が最適です。
- [Operator (演算子)] で、[equals (次の文字列と一致する)] を選択します。
演算子は、2 つのデータを比較する方法を CPQ に指示します。
- [Filter Type (検索条件種別)] で [Value (値)] を選択します。
この項目は、商品コードの比較対象とするデータの種別を CPQ に指示します。[Value (値)] は静的な値と比較することを意味し、[Variable (変数)] はサマリー変数を参照する必要があることを意味します。
- [Filter Value (検索条件値)] に
CLOUDSTORAGE
と入力します。
ご推察の通り、値は正確に入力することが重要です。商品コードのスペルを間違えると、ルールは正しく発動しません。
-
[Save (保存)] をクリックします。
エラー条件が 1 つ完成しました。あと 1 つです。
テスト可能なオブジェクトにデータを取り込む
2 つ目のエラー条件では、顧客の業種が「ヘルスケア」であるかどうかをチェックする必要があります。このデータは取引先レコードにあります。ですが、取引先オブジェクトは、[Tested Object (テスト対象オブジェクト)] 選択リストから選択できる 6 つのオブジェクトの中にはありません。
- 見積
- 見積品目
- 見積品目グループ
- 商品オプション
- 設定属性
- アップグレードされた納入商品
テストするデータは、これらのオブジェクトのいずれかに存在しなければなりません。どうすればよいでしょうか? この場合の回避策は、業種値を取引先レコードから取得してテキストとして出力する数式項目を見積オブジェクトで作成することです。時間を節約するために、すでに Trailhead チームは CPQ が有効になっている組織でこのカスタム項目を作成し、API 参照名を AccountIndustry__c に設定してあります。
また、新しいカスタム項目の API 参照名は [Tested Field (テスト対象項目)] 選択リストに追加してありますので、2 つ目のエラー条件を作成するときに選択できるようになっています。
[Tested Field (テスト対象項目)] は連動選択リストである点に注意してください。このリストに表示される値は、このリストを制御する [Tested Object (テスト対象オブジェクト)] 項目の設定に連動します。たとえば、AccountIndustry__c が表示されるのは、[Tested Object (テスト対象オブジェクト)] が [Quote (見積)] に設定されている場合のみです。カスタム項目を [Tested Field (テスト対象項目)] に追加した場合は、[Tested Object (テスト対象オブジェクト)] の項目連動関係も忘れずに更新してください。
では、2 つ目のエラー条件を作成しましょう。
- [Error Condition (エラー条件)] 関連リストで、[New (新規)] をクリックします。
- [Tested Object (テスト対象オブジェクト)] で [Quote (見積)] を選択します。
- [Tested Field (テスト対象項目)] で [AccountIndustry__c] を選択します。
- [Operator (演算子)] で、[equals (次の文字列と一致する)] を選択します。
- [Filter Type (検索条件種別)] で [Value (値)] を選択します。
- [Filter Value (検索条件値)] に
Healthcare
(ヘルスケア) と入力します。
-
[Save (保存)] をクリックします。
これで最初の商品ルールが完成しました。では、AW Computing 社のヘルスケア業界の顧客用に作成してある見積で商品ルールをテストしましょう。
- ナビゲーションバーで、[Quotes (見積)] をクリックし、[All (すべて)] リストビューを選択します。
-
[Q-00038] をクリックします。
[Account Industry (取引先業種)] 項目の値は [Healthcare (ヘルスケア)] になっています。
-
[Edit Lines (品目の編集)] をクリックします。
このページを初めて読み込む場合、数分かかることがあります。それ以降はさほど時間がかかりません。
-
[Add Products (商品を追加)] をクリックします。
-
[Cloud Storage 1GB] のチェックボックスをオンにします。
-
[選択] をクリックします。
-
[Save (保存)] をクリックします。
ルールの両方の条件と一致したため、この時点で CPQ が停止してエラーメッセージを表示するはずです。現実の世界なら、見積に Cloud Storage が含まれていないか、または顧客の業種がヘルスケアではない場合には見積を保存できるようにしたいと考えるでしょう。このような「否定テスト」の実行には責任が伴い、ここでは行いません。
詳細条件
作成した商品ルールは、AW Computing 社の営業担当がヘルスケア業界には Cloud Storage を販売できなくすることを目的としています。では、この商品の銀行業界への販売も禁止するとしたら、どうすればよいでしょうか? この場合は 3 つのテストを考慮する必要があります。
- Product (商品) = Cloud Storage
- Industry (業種) = Healthcare (ヘルスケア)
- Industry (業種) = Banking (銀行)
ただし、今回はすべてのテストに合格する必要はありません。業種がヘルスケアまたは銀行のどちらかであればよいのです。
CPQ では、詳細条件によってこのようなシナリオを容易に扱うことができます。この新しい要件を満たすために、どのように製品ルールを改良すればよいのかを見てみましょう。まず、既存のエラー条件を後で識別できるようにするため、エラー条件にインデックス値を追加します。
- ナビゲーションバーで、[Product Rules (商品ルール)] をクリックします。
-
[No cloud storage for healthcare industry (ヘルスケア業界への Cloud Storage の販売は禁止)] をクリックします。
- [Error Conditions (エラー条件)] 関連リストで、最初の条件のドロップダウンメニューを展開して [Edit (編集)] をクリックします。
- [Index (インデックス)] に
10
と入力します。
ここで入力する数字は、「Product (商品) = Cloud Storage」条件のシリアル番号のようなものです。このルールに関連する他のエラー条件と重複しなければ、どのような数字でも構いません。
-
[Save (保存)] をクリックします。
- [Error Conditions (エラー条件)] 関連リストで、2 つ目の条件のドロップダウンメニューを展開して [Edit (編集)] をクリックします。
- [Index (インデックス)] に
20
と入力します。
-
[Save (保存)] をクリックします。
これで「Industry (業種) = Healthcare (ヘルスケア)」条件にインデックス番号の 20 が割り当てられました。最後に、業種が銀行であるかどうかをチェックするための新しい条件を作成します。
- [Error Condition (エラー条件)] 関連リストで、[New (新規)] をクリックします。
- [Index (インデックス)] に
30
と入力します。
- [Tested Object (テスト対象オブジェクト)] で [Quote (見積)] を選択します。
- [Tested Field (テスト対象項目)] で [AccountIndustry__c] を選択します。
- [Operator (演算子)] で、[equals (次の文字列と一致する)] を選択します。
- [Filter Type (検索条件種別)] で [Value (値)] を選択します。
- [Filter Value (検索条件値)] に
Banking
(銀行) と入力します。
-
[Save (保存)] をクリックします。
もう少しで完成です。これで、インデックス値が 10、20、30 の 3 つのエラー条件が完成しました。次は CPQ にこれらの使い方を指示します。
- 商品ルールレコードで、[Edit (編集)] をクリックします。
- [Conditions Met (一致条件)] で [Custom (カスタム)] を選択します。
[Custom (カスタム)] を選択した場合は [Advanced Condition (詳細条件)] 項目への入力も必要になります。
- [Advanced Condition (詳細条件)] に
10 AND (20 OR 30)
と入力します。
これは、ルールを発動するためには、常にインデックス 10 の Cloud Storage のテストに合格する必要があることを意味します。また、括弧内の業種のテストのどちらかに合格する必要があることも意味します。
-
[Save (保存)] をクリックします。
これで、この商品ルールは Cloud Storage を 2 つの異なる業種に販売することを禁止するようになりました。完了です。現実の世界であれば、ここでルール名やメッセージも変更したいところですか、今は行いません。
詳細条件で AND、OR、そして括弧を使用することで、想定されている条件でのみルールが実行されるようにするための高度なテストを実現できます。次の単元では、特定のタイミングでのみチェックを実行するためのルールの設定方法を学習します。
リソース