ルール
動的な構成エクスペリエンスを提供するためのルールを作成および管理する方法について説明します。フィールドの表示または非表示、メッセージの表示、値の計算、部品表 (BOM) の生成を行うための条件とアクションを定義します。可視化、メッセージ、包含、除外、決定、製品アクションなどのルールタイプを調べて、インテリジェントで応答性の高い構成を効率的にビルドします。
エンドユーザーが構成エクスペリエンス内を移動して情報を入力すると、ルールによって、コンテンツの表示と非表示、値の計算、推奨事項とメッセージの配信、部品表 (BOM) の作成など、動的な要素が提供されます。
この記事では、管理ユーザーインターフェイスでのルールの管理に焦点を当て、ルールの 2 つのコンポーネントである条件とアクション、および CPQ で使用できる 6 つのアクションタイプについて説明します。アプリケーションの他の要素と同様に、UI は少数のルールを追加または編集するのに適した場所です。多くのルールの操作が必要な場合は、マトリクスローダーを使用することをお勧めします。詳細については、「マトリクスローダー:CSV ルールのアップロード」を参照してください。
管理 UI では、ルールには次の 2 つの方法でアクセスできます。
- グローバルルール:ナビゲーションペインで、[ ルール] をクリックします。ルールリスト管理ページには、環境で定義されているすべてのルールが表示されます。タスクが新しいルールの追加である場合、アドミン UI で新しいルールを開始できるのはここだけです。
- 1 つの詳細計画に関連付けられたルール: [詳細計画] をクリックし、詳細計画をクリックします。[ルール] タブをクリックしてルールを表示します。ルールをクリックして開きます。
条件
CPQ ルール条件は論理式で構成されます。式が true と評価された場合、実行時にルールエンジンがルールを実行します。
アドミニストレーターは、いくつかの種類の条件を定義できます。
- いずれかの条件が満たされている場合:定義された論理式を OR で指定します。
- すべての条件が満たされている場合:および定義された論理式。
- 常時 (アクション入力の変更):エンドユーザーが関連する入力を変更するたびにルールを実行します。
- カスタムロジックが満たされている:アドミニストレーターは式の中で AND や OR などのカスタムロジックを定義できます。
- 高度な機能:アドミニストレーターは、ルール条件を定義するスクリプトを作成できます。
アクション
ルールのアクションセクションでは、ルールの実行時 (条件が true と評価されたとき) にルールが実行するタスクを定義します。 CPQは、他のエンジンとは異なり、1 つの条件下で複数のアクションとアクションタイプを許可します。これは、同じシナリオで実行する必要があるすべてのタスクを 1 つのルールに統合する便利な組織機能です。複数のタスクを 1 つの条件に統合することで、ルールエンジンがタスクを評価して実行する効率も向上します。効率の向上は、エンドユーザーが確認できるパフォーマンスにつながります。
ルール管理ページで、サマリーと条件の領域の下にある [アクション] セクションを確認します。
- アクションのリスト:このルールで定義されたアクション。入力をフィルタリングすると、特に多数のアクションが定義されている場合に、アクションをすばやく見つけることができます。
- アクションエディターペイン:アドミンは、アクションのリストで選択されたアクションを確認および編集できます。
- [新しいアクションを追加] ボタン:このルールの新しいアクションを定義します。6 つの利用可能なアクションタイプがアクションエディターペインに表示されます。
アクションを非表示にする
アクションを非表示にすると、エンドユーザーの表示からフィールド全体が非表示になります。非表示アクションを使用してエンドユーザーの注意を集中させ、構成するソリューションに関連するフィールドのみを表示します。非表示のフィールドはその値を保持します。
メッセージアクション
メッセージアクションは、エンドユーザーが構成を処理する際にコンテキスト情報を提供します。メッセージは、レイアウト内の指定されたフィールドに関連して配置されます。4 つのメッセージタイプが利用可能です。
| メッセージタイプ | 例 | メモ |
|---|---|---|
| 情報 | メッセージ以外の構成エクスペリエンスへの影響はありません | |
| 警告 | メッセージ以外の構成エクスペリエンスへの影響はありません | |
| エラー | [見積もり] ボタンを無効にして、エラーステータスが緩和されるまでユーザーが先に進むことがないようにします。 | |
| カスタム | 外観はユーザーによって決定される | ユーザーは、[見積もり] ボタンを無効にしてエラーステータスが緩和されるまで先に進まないようにするメッセージ以外の、構成エクスペリエンスに影響しないかどうかを制御できます。 |
包含/除外アクション
包含アクションと除外アクションを使用して、選択リストフィールドのオプションを制御します。この 2 つのアクションタイプにより、アドミニストレーターはフィールドオプションのセットを最も便利な方法で定義できます。包含ルールと除外ルールの両方が同じ選択リストフィールドで動作できます。選択リストの場合、表示されるオプションは次のように決定されます。
- 包含ルールは、選択リストフィールドで定義された一連のオプションに適用されます。フィールドに包含ルールが定義されていない場合、すべての選択リストオプションはこのステップを過ぎても続行します。このステップの結果は、含まれる選択リストオプションのセットです。
- 次に、含まれているセットが、適用される除外ルールに照らして評価されます。結果はオプションの「表示セット」です。
包含/除外アクションの結果として削除された選択リストオプションは、エンドユーザーに表示されるオプションの選択リストメニューから削除または無効にすることができます。
実行時に選択リストオプションが (エンドユーザーまたは決定アクションを介して) 選択されたが、後で包含/除外ルールによってそれが無効なオプションであると判断された場合、ユーザーは現在選択されているオプションが除外された場合の動作を指定できます。ユーザーは、選択内容を変更せずにするか、選択内容の選択を解除するか、選択内容を選択解除して最初の有効なオプションを選択するかを選択できます。エンドユーザーがこのエラーステータスを修正するまで、[見積もり] ボタンは無効です。
決定アクション
決定アクションは、プログラムによってフィールドの値を設定します。アドミニストレーターは、決定された値がソフトセットか読み取り専用 (forceset) かを選択できます。
決定ルールによってソフトセットされたフィールドの値をエンドユーザーが変更すると、推奨値をリマインドするメッセージ CPQ ユーザーに表示されます。このメッセージは、ユーザーが構成を引用することを制限するものではありません。情報提供のみを目的としています。ユーザーがフィールドの値を決定推奨値に戻すと、メッセージは消えます。アドミンは、このメッセージを表示しないように選択できます。
製品アクション
製品アクションは、部品表 (BOM) に追加をもたらします。BOM タイプが [営業] に設定されている場合、単純な製品アクションでは、製品が買い物かごの線としてユーザーに表示されます。これらの販売 BOM アイテムは、構成が見積されるときに Salesforce 見積明細行エディター (SFDC QLE) に転送されます。BOM タイプが [製造] に設定されている場合、アドミニストレーターは通常、買い物かご内のこれらの行をエンドユーザーに表示しません。ただし、製造 BOM アイテムは記録され、ERP との通信および下流のプロビジョニングアプリケーションのために SFDC 構成明細オブジェクトに転送されます。
| 入力 | メモ |
|---|---|
| 製品 |
BOM タイプ = 販売の場合、製品の値は 01t5f0000001tElAAI の形式の 15 〜 18 桁 <SFDC 製品 2 ID> にすることができます。 CPQ 環境の [製品 ID] フィールドの設定に応じて、SFDC 製品 2 レコード、<SFDC 製品 2 製品コード>または外部 ID から製品コード、説明、および価格をプルします。 BOM タイプ = 製造の場合、次の 4 つのオプションを使用できます。
|
| 数量 | <正の整数> |
| BOM タイプ |
売上:買い物かごに表示されます。見積もりは、アイテムを SFDC QLE オブジェクトと構成品目オブジェクトにプッシュします。 製造:通常、エンドユーザーには表示されません。見積もりは、アイテムを SFDC 構成品目オブジェクトにプッシュします。 すべて:すべての BOM タイプが買い物かごに表示されます。見積もりは、販売品目と製造品目を構成品目オブジェクトに、営業を SFDC QLE オブジェクトにプッシュします。 |
| 必須 |
TRUE:エンドユーザーは買い物かごからアイテムを削除できません。 FALSE:エンドユーザーは買い物かごからアイテムを削除できます。 |
詳細な製品アクション
ユースケースでマルチレベルの部品表 (BOM)、動的数量の設定、または単純な製品アクションで使用できる以上の製品属性が必要な場合は、高度な製品アクションが必要です。詳細な製品アクションを使用すると、レコードを ProductList オブジェクトに出力するスクリプトを記述できます。
次のマトリックスでは、利用可能な ProductList アトリビューションについて説明します。
| ProductList です。<param> | 要求オプト | 有効な値 | メモ |
|---|---|---|---|
| BOM タイプ | R | 営業、製造、すべて | Salesforce 統合ユースケースでは、製造アイテムはLGK__Configurat ionLineItem__cにのみ書き込まれます。販売品目は QLE と LGK__Configurat ionLineItem__c に書き込まれます |
| description | O | <テキスト> | |
| 拡張済み | O | <JSON オブジェクト>はキーと値のペアで構成されます (注 1 を参照) | 入力された場合、この情報は、ユーザーが [見積もり] ボタンをクリックした後に、Salesforce の構成品目オブジェクトのLGK_Extended_I nformation__cに転送されます |
| ID | R | SF 統合ユースケースかつ bomType = Sales... | |
| Product2.Id、Product2.ProductCode、または外部 ID | 注 2 を参照してください | ||
| ヘッドレス/e コマース AND bomType = Sales... | |||
| ProductId または ProductCode | 注 2 を参照してください | ||
| SF 統合 AND bomType = Manufacturing... | |||
|
<text>、Product2.Id、Product2.ProductCode、または外部 ID |
アドミニストレーターは、Product2 に保存されていないアイテムを追加できます。Product2 に格納されているレコードを参照する場合、注 2 が適用されます | ||
| ヘッドレス/e コマース AND bomType = Manufacturing... | |||
| <text>、ProductId、または ProductCode | アドミンは、製品オブジェクトに保存されていないアイテムを追加できます。製品に保存されているレコードを参照する場合は、注 2 が適用されます | ||
| level | O | <整数> | オプション。管理者の参照用。アプリロジックを駆動しない |
| notes | O | <テキスト> | |
| orderNumber | O | <整数> |
このパラメーターには、行のシーケンス番号を決定する数値を入力します。注意:ProductList オブジェクトには、詳細計画でトリガーされるすべての製品アクションが入力されます。28 桁に制限されています。 |
| 親製品 | O | <テキスト> |
設定する場合、親品目の uniqueIdentifier と一致する必要があります。SF 統合ユースケースでは、最上位の親製品は構成可能製品です。この値を構成可能な製品の Product2.Id または Product2.ProductCode に設定します。 |
| 価格 | O | <float> | 負の値とゼロが許可されます。アサインされていない場合、 CPQ は製品マスターから基本価格を取得します。 |
| 数量 | O | <float> | 負の値とゼロが許可されます。アサインされていない場合、デフォルトは 1 です。 |
| 選択タイプ | O | 必須、オプション | 未入力のままにすると、デフォルトは [必須] になります |
| uniqueIdentifier | R | <一意のテキスト> | この構成セッションでこの行を他の行から一意に識別する文字列 (以下の一意の識別子属性セクションを参照) |
| UOM | O | <テキスト> | 測定単位 |
- ProductList.extended パラメーターは、浅い JSON オブジェクトを取ることができます。例:
{ "key1": "val1", "key2": "val2" }また、管理者は JavaScript を使用して ProductList レコードの拡張キー:値ペアを定義できます。例:ProductList.extended["key"] = "val";ProductList.extended.key = "val"; - テスト環境と本番環境間の製品データの移行を簡素化するために、特に SF 統合環境では、アドミニストレーターは製品アクションに ProductId ではなく ProductCode または外部 ID を参照するように要求できます。CPQ アドミンで、ナビゲーション ウィンドウの [ユーティリティ] メニューに移動し、[設定] をクリックします。その後、[製品 ID] フィールドを [製品コード]、[パートナー ID]、または [外部 ID] に設定できます。本番稼働後に ProductId から ProductCode への移行を検討する場合は、製品アクションで参照される値、および定義した選択リスト拡張データの暗黙的な製品アクションを使用して設定の変更を調整する必要があります。
一意の識別子属性
CPQCPQ内の製品の一意の識別子を Salesforce の見積品目の [一意の明細行 ID] フィールドに渡し、ユーザーが特定の Salesforce 見積品目に一意の ID を割り当てられるようにします。
製品階層に parentProduct 属性と uniqueIdentifier 属性を使用する場合、2 つの子製品が同じ親製品と製品 ID を持っているが、BOM で別々に表示する必要がある場合、それぞれに一意の「uniqueIdentifier」が必要です。これにより、UI でリスティング時に一意の製品として扱われるようになります。
次のサンプルスクリプトを参照して、アイテム階層、uniqueIdentifier、bomTypes による親アイテムの区別、および ProductList レコードの反復がどのように機能するかを確認します。 詳細製品アクション:階層 BOM のサンプル。