ルール内の選択リストと選択リスト拡張
ルールで選択リスト拡張 (PLE) を効果的に使用する方法について説明します。フィルタリング、包含、および除外がどのように相互作用するかを理解し、単一選択および複数選択の選択リストに equals や contains などの正しい演算子を適用して、詳細構成でルールが正確に動作するようにします。
Picklist 拡張機能 (PLE) は、エンドユーザーが必要なものを正確に選択できるようにしながら、管理者が製品に関するできるだけ多くの情報を表示するための強力な方法です。ただし、フロントエンドのシンプルさは、バックエンドの複雑さを覆い隠すことができます。この記事では、管理者がルールと高度な関数で PLE を正しく使用する方法を示し、いくつかの重要な注意点について説明します。
- 最初に [フィルターオプション] と [製品情報] を使用してみてください。
- PLE には包含ルールを使用しないでください。PLE フィルタリングは包含ルールと同様に機能するため、それ以上のオプションを削除するにはでは、ユーザーは除外ルールを使用する必要があります。
- [次の値を含む] と [次の値に等しい] は、複数選択の選択リストでは動作が異なります。
Array.includes()と==も異なる動作をします。
シンプルなルール
選択リスト拡張付きのルールは使用しないことをお勧めします。PLE は、ルールを記述せずにオプションをフィルタリングし、部品表にデータを送信できるように設計されています。したがって、包含、除外、および製品ルールを使用する理由のほとんどは、PLE には存在しません。ルールの作成を続行する前に、一般的な PLE 機能ではユースケースを完了できないことを確認してください。
PLE で選択を使用してアクションを駆動する場合は、Equals 演算子と Contains 演算子の違いに注意してください。
- [Equals] は、PLE の選択が条件の値と完全に一致するかどうかをチェックします。
- 単一選択と複数選択の両方の選択リストで使用できますが、ユーザーが通常想像する機能に最も近いため、単一選択の PLE で使用することをお勧めします。
- 条件で複数選択を使用している場合、ユーザーが複数選択した場合、等しいを使用すると条件は満たされません。
- [包含] は、PLE の選択に説明された値が含まれているかどうかを確認します。これは、複数選択の PLE フィールドに推奨される演算子です。
例:ユーザーが 4 つのオプションを含む複数選択の選択リストフィールドを作成します。
複数選択フィールドが複数オプション 4 と等しい場合にルールの条件 (この場合は決定アクション) が実行されるように設定されているとします。
エンドユーザーが複数オプション 4 のみを選択すると、ルールが発生します。
エンドユーザーが複数オプション 3 と複数オプション 4 を選択した場合、ルールは実行されません。
一方、複数選択フィールドにオプション 4 が含まれている場合に条件が実行されるように設定されている場合は、両方のインスタンスで実行されます。
PLE フィルターが除外ルールとやり取りする方法
選択リスト拡張フィルターは、単純な包含ルールと同じように動作します。ただし、定義されたフィルターフィールドが空の場合、単純な包含ルールが実行されていないときにすべてのオプションを含めるのではなく、オプションを含めない点が異なります。
PLE でフィルターとして定義されておらず、PLE フィールドのオプションを制限するフィールドが必要な場合は、包含ルールを使用すると PLE フィルターに含まれる固有の包含と組み合わされ、すべてのフィールド オプションが使用可能なままになるため、これらのフィールド オプションをさらに制限するために単純な除外ルールを使用する必要があります。
詳細ルール
高度なルールで選択リストを使用する場合は、 cfg オブジェクトを使用して参照したときにこれらのフィールドがどのように表示されるかを知っておくことが重要です。単一選択の選択リストの場合、フィールドにはオプションのテキストが含まれますが、複数選択の選択リストの場合、フィールドはアレイ内に表示されます。 この違いにより、高度な機能を構築するときに不一致が生じることがよくあります。
「等しい」と「次を含む」の単純な条件の違いと似ていますが、単一選択ピックリストは「if」ステートメントで次のように参照できます。
1 if (cfg.field == "option") {
2 //code
3 }
複数選択の選択リストでは、関数「Array.includes()」を使用して、次のいずれかのオプションが選択されているかどうかを確認する必要があります。
1 if (cfg.field.includes("option")) {
2 //code
3 }
この関数はアレイに作用し、入力された値がアレイに含まれているかどうかに応じて true または false を返します。
詳細関数で複数選択選択リストの選択を決定するには、 .push() 関数を使用してオプションを追加します。選択リストのフィールドで定義されていないオプションを追加すると、エラーが発生します。
詳細機能の複数選択選択リストアレイを使用したその他の操作については、[ヘルプ] メニューのアレイ機能を参照してください。包含アクションと除外アクションが競合する場合、除外アクションが優先されます。
追加資料
選択リスト拡張機能の概要については、「 Picklist 拡張」を参照してください。
バックエンドと PLE の表示方法の詳細については、「 レイアウト上に選択リスト拡張を表示する」を参照してください。
Picklist Extension の価格拡張機能の概要については、「 Picklist 拡張価格の拡張」を参照してください。