変更した属性の復元
学習の目的
この単元を完了すると、次のことができるようになります。
- 変更された属性を元の状態に戻すルールを実装する。
- 評価と適格性のエンティティ検索条件を作成する。
属性を元の状態に戻す。
前の単元で、Infiwave の CPQ 開発者である Eliza は、実行時に「Broadband Cable Service」商品の属性を変更する高度なルールを作成しました。このルールにより、顧客がカートに入れた商品と互換性のない属性を選択してしまうことを防止できます。ですが、彼女はすぐにこの実装に問題があることに気付きました。顧客が属性変更のトリガーとなった商品をカートから削除しても、属性の変更が元の状態に戻らないのです。Eliza は、カートから商品を削除したら属性を元の状態に戻すというルールが必要だと気が付きました。
カウンターアクションルールがない状態ではどうなるか、実際に操作をして見てみましょう。同じ注文を開きます。この注文では「Broadband Cable Service」商品と「Business Video Service」商品がカートの品目として入っています。カートから「Business Video Service」商品を削除します。次に「Broadband Cable Service」商品の設定ペインを開き、[Download Speed (ダウンロード速度)] の選択リスト値を確認します。属性の選択リスト値が変更されたままであることがわかります。[Download Speed (ダウンロード速度)] 属性には、選択可能な値として 200 Mbps しか表示されません。これは、基盤となる JSON 構造が変更されたままであるためです。
ニュートンの第 3 法則に例えるなら、カートで何かを変更するアクションには、同等かつ反対の作用を持つアクションが必要ということです。宇宙の歴史を見ると破壊は創造よりもたやすく、そしてこのケースですら例外ではありません。
商品リレーションを作成する
前述のとおり、Eliza は修正された商品を元の状態に戻すルールを作成する必要があります。彼女は既存の [Business Video Modifies Broadband Cable Attributes (Business Video はブロードバンドケーブル属性を変更)] 商品リレーションをコピーし、それに [Business Video Restores Broadband Cable Attributes (Business Video はブロードバンドケーブル属性を復元)] という名前を付け直します。この新しい商品リレーションは、元のすべての [Download Speed (ダウンロード速度)] 属性値を復元するアクションを実行します。
では、Eliza と一緒に Trailhead Playground で作業を進めましょう。
- Product Relationships ビューから [Business Video Modifies Broadband Cable Attributes (Business Video はブロードバンドケーブル属性を変更)] を選択します。
- [Product Relationship (商品リレーション)] ヘッダーで
をクリックし、[Clone (コピー)] を選択します。
- [New Product Relationship (新規商品リレーション)] ページで以下の詳細を変更します。
- [Product Relationship Name (商品リレーション名)] 項目に
「Restore Broadband Cable Attributes」
(ブロックケーブル属性を復元) と入力します。
- [Product (商品)] で [Broadband Cable Service] を選択します。
-
[Broadband Cable Service] を削除します。
- [Action Parameters (アクションパラメーター)] 項目で、既存のコードにある
exclude
をすべてinclude
に変更します。
- [Product Relationship Name (商品リレーション名)] 項目に
- 変更内容を保存します。
これで「Broadband Cable Service」商品の変更された属性を復元する商品リレーションを作成できました。
エンティティ検索条件を作成する
エンティティ検索条件は、注文品目を絞り込み、定義された条件を検索することでルールの文脈を定義します。エンティティ検索条件は、オブジェクトの項目や属性を評価する 1 つ以上の条件で構成され、条件が True に評価された時点でルールアクションを適用します。このルールアクションには、商品リレーション、マトリックス、計算、または手順があります。ルールには、ビジネスロジックに応じて 1 つまたは複数の検索条件を含めることができます。
たとえば、サービス開始日が 45 日以内の建物を特定する検索条件などです。検索条件は再利用可能であり、複数の条件を積み重ねて使用できます。一度作成すれば、どのルールでも利用可能です。
このセクションでは、評価エンティティ検索条件と適格性エンティティ検索条件の 2 種類の検索条件を扱います。
評価エンティティ検索条件を作成する
新しい商品リレーションを設定した Eliza は、難しいポイントに気付きました。この商品リレーションは、「Business Video Service」商品がカートに存在しない場合にのみトリガーする必要があります。ところが、何かが存在しないことを確認することは、何かが存在することを確認することよりも困難です。この要件を満たすために、彼女は評価エンティティ検索条件と適格性エンティティ検索条件を連鎖させた複合エンティティ検索条件を作成します。
評価エンティティ検索条件はルールで直接使用するのではなく、適格性エンティティ検索条件の内部条件として使用します。その方法はすぐに学習します。これらのエンティティ検索条件は、レコードセットの全部または一部が特定の条件を満たしているか、あるいはまったく満たしていないかを評価します。入力として項目のリストを受け取り、出力として True または False を返します。たとえば、商品の子商品の中に最大数量が 10 未満で最小数量が 2 を超えているものがあれば True と評価されるような評価条件を設定できます。
カートの各品目で「Business Video Service」の有無をテストする評価エンティティ検索条件を作成する手順は、次のとおりです。
- アプリケーションランチャーから [Vlocity Entity Filters (Vlocity 検索条件)] を検索して選択します。
-
[New (新規)] をクリックします。
- [New Vlocity Entity Filter (新規 Vlocity エンティティ検索条件)] ページで以下の詳細を入力します。
- [Entity Filter Name (エンティティ検索条件名)] 項目に
「EVAL Is Business Video a line item」
(Business Video が品目であるかどうかを評価) と入力します。
- [Filter On Object Name (検索対象オブジェクト名)] で [Order Product<OrderItem> (注文商品
)] を選択します。
- [Type (種別)] で [Evaluation (評価)] を選択します。
- [Valid From (有効開始日)] 項目で今日の日付を選択します。
- [Evaluation Criteria (評価基準)] で [None (なし)] を選択します。
- 変更内容を保存します。
- [Entity Filter Name (エンティティ検索条件名)] 項目に
ここでは、検索条件が True を返す基準として [Evaluation Criteria (評価基準)] を [None (なし)] に設定しています。この場合、どの品目も「Business Video Service」でなければ、すべての品目が条件を満たしたと評価され、ルールエンジンに渡すことができます。
次に、新しい評価エンティティ検索条件を適格性エンティティ検索条件に連鎖させます。適格性エンティティ検索条件は、評価する入力項目リストを準備し、条件が True に評価されれば、評価済みの項目リストをルールエンジンに渡します。エンティティ検索条件を定義する手順は、次のとおりです。
- [EVAL Is Business Video a line item (Business Video が品目であるかどうかを評価)] ページで、[Entity Filter Conditions (エンティティ検索条件)] の下にある [Add (追加)] をクリックします。
- [Field/Attribute/Related Object (項目/属性/関連オブジェクト)] 項目で [Select (選択)] をクリックします。
- [Field Selection (項目選択)] ウィンドウで [Price Book Entry ID (価格表エントリ ID)] を選択し、次に [Product Name<Name> (商品名<名前>)]名前> を選択します。
- 変更内容を保存します。
- [Operator/Field (演算子/項目)] で [=] を選択します。
- [Value (値)] 項目に
「Business Video Service」
と入力します。
- 変更内容を保存します。
複合適格性エンティティ検索条件を作成する
複合検索条件は注文品目に作用し、エンティティ検索条件が True であれば、その品目を返します。検索条件は、先ほど作成した評価検索条件です。つまり、この検索条件はカートにある「Business Video Service」という名前の品目のリストを返します。
複合検索条件を作成する手順は、次のとおりです。
- [Vlocity Entity Filters (Vlocity エンティティ検索条件)] ページで [New (新規)] をクリックします。
- [New Vlocity Entity Filter (新規 Vlocity エンティティ検索条件)] ページで以下の詳細を入力します。
- [Entity Filter Name (エンティティ検索条件名)] 項目に
「Check Cart for Business Video」
(カートで Business Video を確認) と入力します。
- [Filter On Object Name (検索対象オブジェクト名)] で [Order Product<OrderItem> (注文商品
)] を選択します。
- [Type (種別)] で [Qualification (適格性)] を選択します。
- [Valid From (有効開始日)] 項目で今日の日付を選択します。
- 変更内容を保存します。
- [Entity Filter Name (エンティティ検索条件名)] 項目に
次に、エンティティ検索条件を作成します。
- [Entity Filter Conditions (エンティティ検索条件)] の下で [Add (追加)] をクリックします。
- [Type (種別)] で [Function (関数)] を選択します。
- [Field/Attribute/Related Object (項目/属性/関連オブジェクト)] で [Items in cart (カート内の項目)] を選択します。
- [Value (値)] に
「EVAL」
と入力し、[EVAL Is Business Video a line item (Business Video が品目であるかどうかを評価)] を選択します。
- 変更内容を保存します。
これで、2 つのエンティティ検索条件を作成できました。
高度なルールを作成してテストする
商品リレーションとエンティティ検索条件を設定しましたので、「Broadband Cable Service」商品の変更された属性を元の状態に戻すための高度なルールを作成し、検索条件と結び付けます。
- アプリケーションランチャーで、[Vlocity Rules (Vlocity ルール)] を見つけて選択します。
-
[New (新規)] をクリックします。
- [New Vlocity Rule (新規 Vlocity ルール)] ページで以下の詳細を入力します。
- [Rule Name (ルール名)] 項目に
「Attribute Reverse Mods Actions Rule」
(属性逆変更アクションルール) と入力します。
- 下の行にある 3 つのドロップダウンで、それぞれ [Configuration (設定)]、[Order Product<OrderItem> (注文商品
)] 、[Active (有効)] を選択します。
- [Rule Name (ルール名)] 項目に
次に、Vlocity ルールビルダーでアクションとして表示される商品リレーションを追加します。
- [Filters And Actions List (検索条件とアクションリスト)] で [Actions (アクション)] をクリックして、すべての商品リレーションを表示します。
- [Restore Broadband Cable Attributes (ブロードバンドケーブル属性を復元)] を見つけて、[Add To Rule Action (ルールアクションに追加)] をクリックします。
- このルールの再利用性を高めるために、[Restore Broadband Cable Attributes (ブロードバンドケーブル属性を復元)] アクションの修飾子として [Check Cart for Business Video (カートで Business Video を確認)] 検索条件を追加します。
- [Filters And Actions List (検索条件およびアクションリスト)] の下で [Filters (検索条件)] をクリックします。
- [FILTERS (検索条件)] の横にある検索ボックスに
「check」
(確認) と入力します。
-
[Check Cart for Business Video (カートで Business Video を確認)] 検索条件をクリックし、[Restore Broadband Cable Attributes (ブロードバンドケーブル属性を復元)] アクションにドラッグします。これで検索条件がアクション修飾子として表示されます。
- [Filters And Actions List (検索条件およびアクションリスト)] の下で [Filters (検索条件)] をクリックします。
- 変更内容を保存します。
検索条件をアクションの修飾子として使用することで、ルールの再利用性が向上します。1 つのルールに複数のアクションを追加でき、各アクションは添付された検索条件によって適格とされたレコードに対してのみトリガーされます。
カートでルールをテストする
高度なルールが想定どおりに動作するかどうかをテストしましょう。ベストプラクティスとして、ルールを作成した後は必要なメンテナンスジョブを実行してください。
- 前の単元で作成した注文を開きます。この注文には「Business Video Service」商品と「Broadband Cable Service」商品が含まれています。
- [Broadband Cable Service] のアクションメニューから [Configure (設定)] を選択します。
-
[Download Speed (ダウンロード速度)] をクリックします。選択リスト値として 200 Mbps のみが表示されます。
- 設定ウィンドウを閉じます。
- カートから「Business Video Service」商品を削除します。
- そして、「Broadband Cable Service」商品の設定ウィンドウを開きます。
[Download Speed (ダウンロード速度)] 属性の選択リスト値がすべて復元されていることを確認してください。これで完了です。
この単元では、評価および適格性エンティティ検索条件を使用して、高度なルールを作成し、属性の変更を元に戻しました。次は、[Auto-Add (自動追加)] リレーション種別を使用した高度なルールを作成します。