데이터 관리 기능 > 부품 구조 관리 > 구성 가능 모듈에 대한 고급 선택 로직 개발 > 고급 선택 로직의 예제 및 모범 사례 > 모듈식 구성 가능 제품 구조 작성 > 모듈 제품 구조 설계
  
모듈 제품 구조 설계
많은 제품에는 고유한 선택적 요소 세트를 가진 여러 하위 시스템이 있습니다. 경우에 따라 각 하위 시스템에 대한 옵션은 시스템에서 논리적인 진행으로 독립적으로 처리됩니다. 그러나 한 하위 시스템에서 사용 가능한 옵션이 다른 하위 시스템에서 선택한 항목의 영향을 받아야 하는 경우도 있습니다.
예를 들어, 다양한 디스플레이, 트림 및 조명 옵션이 있는 여러 모델에서 사용할 수 있는 금속 디스플레이 케이스를 생각해 보십시오. 선택한 디스플레이 케이스 모델에 따라 디스플레이, 트림 및 조명 요소에 사용할 수 있는 옵션이 다를 수 있습니다.
몇 개의 모듈과 제한된 옵션 세트만 있는 단순 제품 구조의 경우, 적절한 구성 가능 제품 구조를 생성하고 테스트하는 것이 상대적으로 쉽습니다. 그러나 제품 구조에 5개의 모듈이 있고 각각 6개의 가능한 옵션이 있는 경우 총 순열 수(이 경우 5 x 6 또는 30)는 처리하기 어렵습니다.
제안된 방식은 다음 그림과 같이 모듈의 제품 구조를 구성 가능 모듈로 구성하는 것입니다.
이 예에서는 다음 테이블과 같이 디스플레이 케이스가 Model_01~Model_05의 5가지 다른 모델에서 사용 가능하고 일부 옵션은 특정 모델에만 적용될 수 있다고 가정합니다.
Display Case 모델
Trim Options
Lighting Options
Display Options
Model_01
Twin Standard
Single Double
Shelf, Ventilated Shelf, Solid
Model_02
Standard Deluxe
Double, Triple
Shelf, Ventilated Shelf, Solid
Model_03
Twin Standard Deluxe
Single Double Triple
Shelf, Ventilated Rack
Model_04
Twin Standard Deluxe
Single Double Triple
Shelf, Ventilated Shelf, Solid Rack
Model_05
Twin Standard Deluxe
Single Double Triple
Shelf, Ventilated Shelf, Solid Rack
다음 단계는 각 옵션 모듈을 독립적으로 테스트한 다음 전체 제품 구조에 통합할 수 있도록 모듈 방식으로 적절한 로직 요소를 설정하는 것입니다. 예를 들어, Trim Options 모듈의 로직을 고려하십시오. 이 모듈에는 다음과 같은 4개의 매개변수가 필요합니다.
askModel
문자열, 입력 매개변수
프롬프트 = "(TRIM OPTIONS) Select the desired display case model"
제약 조건: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
"hide when driven" = true
useStandard
부울, 비입력 매개변수
Bumper, Standard 부품에 대한 Display Case 구성 가능 모듈의 사용 탭에 있는 포함 옵션에 추가됨
useTwin
부울, 비입력 매개변수
Bumper, Twin 부품에 대한 Display Case 구성 가능 모듈의 사용 탭에 있는 포함 옵션에 추가됨
useDeluxe
부울, 비입력 매개변수
Bumper, Deluxe 부품에 대한 Display Case 구성 가능 모듈의 사용 탭에 있는 포함 옵션에 추가됨
다음으로, 다음 테이블과 같이 각 Display Case 모델에 대한 Trim Options의 적용 가능성을 제어하기 위해 pickTrim과 같은 케이스 테이블이 필요합니다.
Display Case 모델
Trim Options
Lighting Options
Display Options
Model_03
TwinStandardDeluxe
SingleDoubleTriple
Shelf, Ventilated Rack
Model_04
TwinStandardDeluxe
SingleDoubleTriple
Shelf, Ventilated Shelf, Solid Rack
Model_05
TwinStandardDeluxe
SingleDoubleTriple
Shelf, Ventilated Shelf, Solid Rack
다음 단계는 각 옵션 모듈을 독립적으로 테스트한 다음 전체 제품 구조에 통합할 수 있도록 모듈 방식으로 적절한 로직 요소를 설정하는 것입니다. 예를 들어, Trim Options 모듈의 로직을 고려하십시오. 이 모듈에는 다음과 같은 4개의 매개변수가 필요합니다.
askModel
문자열, 입력 매개변수
프롬프트 = "(TRIM OPTIONS) Select the desired display case model"
제약 조건: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
"hide when driven" = true
useStandard
부울, 비입력 매개변수
Bumper, Standard 부품에 대한 Display Case 구성 가능 모듈의 사용 탭에 있는 포함 옵션에 추가됨
useTwin
부울, 비입력 매개변수
Bumper, Twin 부품에 대한 Display Case 구성 가능 모듈의 사용 탭에 있는 포함 옵션에 추가됨
useDeluxe
부울, 비입력 매개변수
Bumper, Deluxe 부품에 대한 Display Case 구성 가능 모듈의 사용 탭에 있는 포함 옵션에 추가됨
다음으로, 다음 테이블과 같이 각 Display Case 모델에 대한 Trim Options의 적용 가능성을 제어하기 위해 pickTrim과 같은 케이스 테이블이 필요합니다.
askModel
useStandard
useTwin
useDeluxe
Model_01
yes
yes
no
Model_02
yes
no
yes
Model_03
yes
yes
yes
Model_04
yes
yes
yes
Model_05
yes
yes
yes
이러한 로직 표현식을 사용하면 Trim Options 모듈을 독립적으로 테스트할 수 있으므로 모든 것이 의도한 대로 작동하는지 확인할 수 있습니다.
* 
그러나 각 모듈에 대해 동일한 방식을 사용할 경우, 사용자가 원하는 Display Case 모델을 반복적으로 묻는 메시지가 표시되므로 바람직하지 않습니다. 따라서 각 모듈을 생성하고 제대로 작동하는지 확인한 후 함께 통합해야 합니다.
모듈을 통합하려면 다음을 수행합니다.
1. 다음과 같이 Display Case 구성 가능 모듈 내에서 모델을 결정하기 위해 적절한 매개변수를 생성합니다.
askModel – 문자열, 필수 입력 매개변수
프롬프트 = "Select the desired display case model"
제약 조건: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
2. Display Case 구성 가능 모듈의 askModel과 모든 하위 항목 간에 등가를 설정합니다.
3. 각 옵션 모듈의 각 askModel 매개변수에 대한 제약 조건을 제거합니다.
* 
Display Case의 최상위 구성 가능 모듈과 각 모듈을 구성하는 구성 가능 모듈 간의 충돌을 방지하려면 이러한 제약 조건을 제거해야 합니다.
4. 완성된 구성 가능 제품 구조를 테스트합니다. 각 모듈을 이미 테스트했으므로 사용자가 Display Case의 최상위 구성 가능 모듈에서 입력한 askModel 값이 각 모듈에 올바르게 복사되었는지 확인하기만 하면 됩니다.
* 
구성 창의 매개변수 설정 페이지에서 BOM 트리를 표시하고 적용 버튼을 사용하면 Display Case 구성 가능 모듈의 현재 askModel 값이 각 모듈에 복사되었는지 빠르게 확인할 수 있습니다.