いくつかのオプションのセットからの 1 つのオプションの選択
ユーザーの応答に基づいて、いくつかの可能なオプションのセットから 1 つのオプションを選択できます。ただし、オプションが多すぎて、1 つのケーステーブルでオプションごとにコラムを割り当てると、整理や管理が困難になることがあります。
たとえば、木製のテーブル天板には、Oak Veneer、Solid Oak、Solid Oak with Maple Trim、Maple Veneer、Solid Maple、Solid Maple with Oak Trim、Cherry Veneer、Solid Cherry、Solid Cherry with Maple Trim など、材料と仕上げの組み合わせが多数あります。
この情報を管理しやすくするため、追加するオプションのサブアセンブリを決定するブールパラメータにケーステーブルを接続する中間パラメータを導入できます。このアプローチでは、ユーザーのリクエストが入力パラメータに取り込まれ、有効なオプションのケーステーブルによって評価されます。ケーステーブルの結果 (出力) は単一のパラメータに取り込まれます。最後に、この中間パラメータを評価することによって各ブールの値が決まります。
いくつかのオプションのセットから 1 つのオプションを選択するには、次の操作を行います。
1. コンフィギュレーション可能モジュールを作成します。
2. 関連する仕上げオプションそれぞれに子部品を関連付けます。
3. コンフィギュレーション可能モジュールに文字列入力パラメータを追加します (例: askFinish)。
この文字列パラメータに適切なプロンプト値を定義します。
この文字列パラメータに、次の値から成るリスト制約を定義します。
Oak Veneer
Solid Oak
Solid Oak with Maple Trim
4. ユーザーの応答を正しいサブアセンブリに対応付けるために使用する、pickFinish などの文字列非入力パラメータを定義します。このパラメータは、ケーステーブルとブールパラメータの間の中間パラメータとして機能します。
5. 関連する各オプションのコンフィギュレーション可能モジュールにブール非入力パラメータを追加します。以下に例を示します。
useOakVeneer - オークベニヤ材を使用します。
useSolidOak - オークソリッド材を使用します。
useSolidOakMaple - カエデ材のトリムが付いたオークソリッド材を使用します。
6. 各ブールパラメータに中間パラメータを評価するデフォルト定義式を追加します。以下に例を示します。
pickFinish.equals(“OakVeneer”) - オークベニヤのブール
pickFinish.equals(“SolidOak”) - オークソリッドのブール
pickFinish.equals(“SolidOakMaple”) - カエデ材のトリムが付いたオークソリッドのブール
7. このコンフィギュレーション可能モジュールの各オプションに対応する関連子部品の「挿入オプション」に、次のようなブールパラメータを設定します。
useOakVeneer - オークベニヤ仕上げのサブアセンブリ
useSolidOak - オークソリッド仕上げのサブアセンブリ
useSolidOakMaple - カエデ材のトリムが付いたオークソリッド仕上げのサブアセンブリ
8. ユーザーの応答を中間パラメータの正しい値にマッピングするケーステーブル制約を設定します。たとえば、ケーステーブル制約 pickFinish について考えてみます。
askFinish
pickFinish
Oak Veneer
Oak Veneer
Solid Oak
Solid Oak
Solid Oak with Maple Trim
SolidOakMaple
Maple Veneer
Maple Veneer
Solid Maple
Solid Maple
Solid Maple with Oak Trim
SolidMapleOak
* 
このアプローチが適切に機能するためには、ケーステーブルの pickFinish コラムのすべての値が一意である必要があります。
このアプローチでは、ユーザーが Oak Veneer などの特定の値を選択すると、ケーステーブルによって値 OakVeneer がパラメータ pickFinish に割り当てられます。ブールパラメータ useOakVeneer は、そのデフォルト定義式 {pickFinish.equals(“OakVeneer”)} を真として評価し、オークベニヤのサブアセンブリがバリエーション製品構造に追加されます。
これは役に立ちましたか?