オープン状況管理
オープン状況モデルは、構成状況モデル API のプログラムによるフレームワークであり、セールスカスタマーリレーションシップマネジメント の従来の製品コンフィギュレーターに表示される製品オプションのバリエーションをプログラムできます。API フレームワークには、従来の 製品コンフィギュレーター ユーザーインターフェイスのノードの表示方法を制御するための特定の状況とヘルパー API メソッドが用意されています。
開発者は、 オープン状況管理の拡張ポイント を使用して、ロード時または製品選択の変更時に発生するイベントに基づいて、任意のコンフィギュレーターノードで表示専用または編集可能な状況を設定できます。オプションで、ノードのステータスの変更とともに情報メッセージをスクリプト化することもできます。これらのメッセージは、製品コンフィギュレーターのユーザーインターフェイスにコンテキストに応じて表示されます。任意のノードの状態の読み取りと設定にさまざまなヘルパー API メソッドを使用できるため、大規模な JSON スクリプティングが不要になります。
注:
エンタイトルメントを確認して、これらの機能にアクセスできるかどうかを判断します。
構成状況管理のユースケース
次の表は、従来の 製品コンフィギュレーターに表示される製品オプションを制御するさまざまな方法を示しています。
| 製品コンフィギュレーターのユースケース | 例 |
|---|---|
| 顧客の特定のオプションを非表示にする | 州の安全規制により、カリフォルニア州の顧客に対して製品属性の選択は表示されません。 |
| 顧客の特定のデフォルトオプションの設定 | アップグレードの場合、Premium プランに加入している既存の顧客に対しては Ultimate プランのみが表示されます。 |
| 他の属性オプションに基づいて特定のオプションのみを選択できるようにします | ラップトップなどの特定の製品では、13 インチ、15 インチ、17 インチのすべてのサイズを表示しますが、タッチスクリーン機能のみが必要な場合は 15 インチと 17 インチのラップトップのみを表示します。 |
| 製品の数量の設定を許可 | 一部の製品のデフォルト数量値が異なる場合があります。値がその製品に許可されている最小数量と最大数量の範囲内である限り、エージェントが数量を設定できるようにします。 |
| 特定の特性のみの選択を許可 | 特定の製品選択では、特定の特性値を選択する必要があります。たとえば、究極のインターネット プランを選択すると、選択できる接続速度は 5G です。 |
構成状況モデル API フレームワークを使用して、従来の 製品コンフィギュレーター でのオプションの表示を管理できます。
ノード状況
従来の製品コンフィギュレーターのノードには、製品リレーションシップグループ、子製品、および特性オプションが表示されます。ノードの状況は次のとおりです。
- 表示:[はい] (ノードを表示可能にする) または [いいえ] (ノードを非表示にする)
- 従来の製品コンフィギュレーターでエージェントに表示されるまたは表示されない構成。エージェントが行った他の選択と互換性がない場合、オプションが表示されないことがあります。たとえば、特定の車のホイールサイズでは、互換性のないタイヤオプションは表示されません。
- 編集可能:[はい] (ノードを表示して選択可能にする) または [いいえ] (ノードを表示するが選択不可にする)
- 従来の製品コンフィギュレーターでエージェントが編集できる、または編集できない構成。エージェントは、製品に必要な制約を維持しながら、製品の特定の側面をカスタマイズできます。たとえば、特定の車種では、互換性のある外装色のみが編集可能です。
- 数量:表示 (はい/いいえ)、編集可能 (はい/いいえ)
- 製品の数量を設定し、数量に関連するルールを強制し、適切なノードで数量に関連する情報メッセージとエラーメッセージを表示する構成。
- オン:[はい] (ノード選択を表示) または [いいえ] (ノード選択を非表示にする)
- コンテキストに基づいて選択するための構成オプションを表示する構成。
- 値:表示 (はい/いいえ)、編集可能 (はい/いいえ)
- 特性の値を設定し、特性に関連するルールを強制し、適切なノードに関連する情報メッセージまたはエラーメッセージを表示する構成。
注:
エージェントは、ステータス変更の理由を提供するためにノードレベルでメッセージを設定することを選択できます。
イベント
構成状況モデル API フレームワークを使用してノード状況を管理します。構成ステータスモデルのイベントフレームワークで次の 2 つのイベントを使用して、これらの状況をアクティブ化します。
- ロード時:各ノードの状態 (可視化、編集可能性) は、最初は [はい] (true) に設定されます。ロード時にオープンステータスが呼び出されます。
- 変更時:この関数は、従来の 製品コンフィギュレーター ユーザーインターフェイスでノードの値が変更されるたびに呼び出されます。ただし、従来の 製品コンフィギュレーターで数量の変更が発生した場合、このステータスは呼び出されません。これらの状態は、ロード時、選択中、またはインスタンスがトランザクションに同期される直前のいずれかの方法でプログラムで設定できます
ヘルパー API メソッド
次のヘルパー API メソッドを使用して、任意のノードの状態を読み取って設定できます。
- 適用ステータス
- Getter メソッドと Setter メソッドを使用して、製品リレーションシップグループ、製品特性、および製品特性オプションの表示可能および編集可能なステータスを設定し、構成モデルのステータスを読み取って変更します。
- Getter メソッド
- 任意の構成ノードのステータスとともにノードパスを取得します。
- getAllNodes():ノードパス (コードへの参照) と、すべてのステータスを含むそれぞれの相対パスを含む JSON を返します。
- getNode(nodePath):指定されたノードパスのノードの javascript オブジェクトを返します (存在する場合)。
- getNodeDetails(nodePath:指定されたノードパスのすべてのステータスを返します (存在する場合)。
- セッターメソッド
-
- 製品リレーションシップグループ、製品特性、および製品特性オプションの表示可能および編集可能なステータスを設定します。
- setVisible:すべてのレベルで True/False
- setVisible(True/False)
- setEditable:すべてのレベルで True/False
- setEditable(True)
- 実装例:
var newHandler = configInstance.getNode(nodePath); newHandler.setVisible(true, “This is a sample message for setVisible”); newHandler.setEditable(false, “This is a sample message for setEditable”);
- オファーと仕様の数量を設定します。nodePath は製品を決定し、値は設定する数量です。
- setQuantity(値);
- 実装例:
var newHandler = configInstance.getNode(nodePath); newHandler.setQuantity(value, “This is a sample message for setQuantity”);
- 構成オプションを設定して、選択されている内容を確認します。
- setChecked (値);True/False
- 実装例:
var nodePath = “QUADPLAYHO1/OPTIONALPRODUCTS/CONNECTEDC2/CONNECTEDC1/VIN” var newHandler = configInstance.getNode(nodePath); var newHandler.setChecked(true, “This is a sample message for setChecked”)
- 入力タイプが 1 行のテキストである特性ノードの値を設定します。
- setValue(値);
- 実装例:
var nodePath = “QUADPLAYHO1/OPTIONALPRODUCTS/CONNECTEDC2/CONNECTEDC1/VIN” var newHandler = configInstance.getNode(nodePath); newHandler.setValue(“9TKN332”, “This is a sample message for setValue”);
- 製品リレーションシップグループ、製品特性、および製品特性オプションの表示可能および編集可能なステータスを設定します。
- ゲッターコンテキスト変数メソッド
- レガシー 製品コンフィギュレーター ユーザーインターフェイス内のコンテキスト変数を取得します。
- getHeaderContextVariables():すべてのヘッダーコンテキスト変数のリストを返します。
- getHeaderContextVariableValue(contextVariable):ヘッダー内の特定のコンテキスト変数の値と表示値を返します。
- getLineContextVariables():すべての行コンテキスト変数のリストを返します。
- getLineContextVariableValue(nodePath, contextVariable):行内の特定のコンテキスト変数の値を返します。