여러 옵션 세트에서 하나의 옵션 선택
사용자의 응답에 따라 여러 가지 가능한 옵션 세트에서 단일 옵션을 선택할 수 있습니다. 그러나 옵션이 너무 많아 각 옵션에 대해 열이 할당된 단일 케이스 테이블을 구성하거나 유지하기 어려울 수 있습니다.
예를 들어, 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. 구성 가능 모듈을 생성합니다.
2. 각 관련 마감재 옵션에 대해 하위 부품을 첨부합니다.
3. 구성 가능 모듈에 문자열 입력 매개변수를 추가합니다(예: askFinish).
◦ 문자열 매개변수에 대해 적절한 프롬프트 값을 정의합니다.
◦ 다음 값을 사용하여 문자열 매개변수에 대한 목록 제약 조건을 정의합니다.
▪ Oak Veneer
▪ Solid Oak
▪ Solid Oak with Maple Trim
4. 사용자의 응답을 올바른 서브어셈블리와 일치시키는 데 사용되는 문자열 비입력 매개변수를 정의합니다(예: pickFinish). 이 매개변수는 케이스 테이블과 부울 매개변수 사이의 중간 역할을 합니다.
5. 관련 옵션 각각에 대한 구성 가능 모듈에 부울 비입력 매개변수를 추가합니다. 예를 들면 다음과 같습니다.
◦ useOakVeneer - oak veneer 재료의 사용을 나타냄
◦ useSolidOak - solid oak 재료의 사용을 나타냄
◦ useSolidOakMaple - solid oak with maple trim 재료의 사용을 나타냄
6. 중간 매개변수를 평가하는 각 부울 매개변수에 기본 표현식을 추가합니다. 예를 들면 다음과 같습니다.
◦ pickFinish.equals(“OakVeneer”) - oak veneer 부울
◦ pickFinish.equals(“SolidOak”) - solid oak 부울
◦ pickFinish.equals(“SolidOakMaple”) - solid oak with maple trim 부울
7. 다음과 같이 각 옵션의 관련 하위 부품에 대한 이 구성 가능 모듈의 포함 옵션에 부울 매개변수를 추가합니다.
◦ useOakVeneer - oak veneer 마감재 서브어셈블리
◦ useSolidOak - solid oak 마감재 서브어셈블리
◦ useSolidOakMaple - solid oak with maple trim 마감재 서브어셈블리
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와 같은 특정 값을 선택하면 케이스 테이블에서 매개변수 pickFinish에 값 OakVeneer를 할당합니다. 부울 매개변수 useOakVeneer는 기본 표현식 {pickFinish.equals(“OakVeneer”)}를 true로 평가하고 oak veneer 서브어셈블리가 파생 제품 구조에 포함됩니다.