オープン状況管理
オープンステートモデルは、Configuration State Model API のプログラムフレームワークであり、セールスと注文管理 の製品コンフィギュレーターに表示される製品オプションのバリエーションをプログラムできます。API フレームワークには、 製品コンフィギュレーター ユーザーインターフェイスのノードの表示方法を制御するための特定の状態とヘルパー API メソッドが用意されています。
開発者は、 オープン状況管理の拡張ポイント を使用して、ロード時または製品の選択が変更されたときに発生するイベントに基づいて、任意のコンフィギュレーターノードで表示専用または編集可能な状況を設定できます。オプションで、ノードのステータスを変更するとともに情報メッセージをスクリプト化することもできます。これらのメッセージは、製品コンフィギュレーターのユーザーインターフェイスにコンテキストに応じて表示されます。任意のノードの状態を読み取って設定するために、さまざまなヘルパー API メソッドを利用できるため、大規模な JSON スクリプティングが不要になります。
注:
エンタイトルメントを確認して、これらの機能にアクセスできるかどうかを確認してください。
構成状況管理のユースケース
次の表は、 製品コンフィギュレーターに表示される製品オプションを制御するさまざまな方法を示しています。
| 製品コンフィギュレーターのユースケース | 例 |
|---|---|
| 顧客の特定のオプションを非表示にする | カリフォルニア州のお客様には、州の安全規制により、商品属性の選択は表示されません。 |
| 顧客の特定のデフォルトオプションの設定 | アップグレードの場合、プレミアムプランをご利用の既存のお客様には、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(value);
- 実装例:
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):行内の特定のコンテキスト変数の値を返します。