ModuleSubstitution 테이블
ModuleSubstitution 테이블은 모듈 데이터베이스의 구성 가능한 필드를 지정하고 각 필드의 구성에 대한 템플릿을 제공합니다. 사용자 또는 통합 도구는 이 테이블을 쿼리하여 수행할 구성 작업을 결정할 수 있습니다. 이 테이블은 대상 데이터베이스에 통합되지 않습니다.
다음 테이블은 구성 가능한 필드를 포함할 수 없으며 이 테이블에 나열되어서는 안 됩니다.
ModuleSubstitution 테이블
ModuleSubstitution 테이블에는 다음과 같은 열이 있습니다.
Column | 형식 | 키 | Nullable |
---|---|---|---|
테이블 | 식별자 | Y | N |
행 | Text | Y | N |
열 | 식별자 | Y | N |
값 | Text | N | Y |
열
-
테이블
-
이 열은 모듈 데이터베이스에서 수정되는 테이블의 이름을 지정합니다.
-
열
-
이 필드는 테이블 열에 있는 테이블의 대상 행의 기본 키를 지정합니다. 여러 개의 기본 키는 세미콜론으로 구분합니다. 대상 테이블을 변경하기 전에 수정을 위해 대상 행을 선택합니다. ModuleSubstitution 테이블의 한 레코드가 대상 행의 기본 키 필드를 변경하는 경우 ModuleSubstitution 테이블의 다른 레코드는 기본 키 대체의 결과가 아니라 원래 기본 키 데이터를 기반으로 적용됩니다. 행 대체의 순서는 정의되지 않습니다.
이 열의 값은 항상 CMSM 특수 서식입니다. 문자에 백슬래시를 접두사로 지정하여 리터럴 세미콜론 (‘;’) 또는 등호(‘=’)를 추가할 수 있습니다. '\'. 키의 null 값은 null 값이 단독, 첫 번째, 중간 또는 마지막 키 열 값인지에 따라 null, 선행 세미콜론, 연속 세미콜론 2개 또는 후행 세미콜론으로 표시됩니다.
-
열
-
이 필드는 행 열에서 이름이 지정된 행의 대상 열을 지정합니다. ModuleSubstitution 테이블의 여러 행이 동일한 대상 행의 서로 다른 열을 변경하는 경우 수정된 행을 데이터베이스에 삽입하기 전에 모든 열 대체가 수행됩니다. 열 대체의 순서는 정의되지 않습니다.
-
값
-
이 열에는 테이블, 행 및 열로 지정된 대상 필드로 대체되는 데이터에 대한 서식 지정 템플릿을 제공하는 문자열이 포함되어 있습니다. [=ItemA] 형식의 대체 문자열이 발견되면 대괄호 문자를 포함한 문자열이 구성 가능한 “ItemA”의 값으로 바뀝니다. 구성 가능한 항목 “ItemA”는 ModuleConfiguration 테이블의 이름 열에 지정되며 해당 값은 통합 도구에서 제공됩니다. 통합 도구가 대체 문자열의 항목에 대한 값을 제공하지 않는 경우 ModuleConfiguration 테이블의 DefaultValue 열에 지정된 기본값이 대체됩니다. 문자열이 ModuleConfiguration 테이블에 없는 항목을 참조하는 경우 통합이 실패합니다.
- 이 열은 CMSM 특수 서식을 사용합니다. 문자에 백슬래시를 접두사로 지정하여 리터럴 세미콜론 (‘;’) 또는 등호(‘=’)를 테이블에 추가할 수 있습니다. '\'.
- 값 필드에는 여러 대체 문자열이 포함될 수 있습니다. 예를 들어 문자열에서 “Food1” 및 “Food2” 항목의 구성: “[=Food1]은 좋지만 [=Food2]는 영양가가 더 높기 때문에 [=Food2]가 더 좋습니다.”
- 대체 문자열은 중첩되어서는 안 됩니다. “[=AB[=CDE]]” 템플릿이 잘못되었습니다.
- 값 필드가 null로 계산되고 대상 필드가 null을 허용하지 않으면 통합이 실패하고 msmErrorBadNullSubstitution 형식의 오류 개체가 만들어지고 오류 목록에 추가됩니다. 자세한 내용은 get_Type 함수에 설명된 오류 유형을 참조하세요.
- 값 필드가 null GUID: {00000000-0000-0000-0000-000000000000}으로 평가되면 행이 모듈에 통합되기 전에 null GUID가 기능 이름으로 바뀝니다. 자세한 내용은 통합 모듈의 기능 참조를 참조하세요.
- 값 필드의 템플릿은 대상 필드에 삽입되기 전에 평가됩니다. 행으로의 대체는 기능을 바꾸기 전에 수행됩니다.
- 값 열이 정수 문자(선택 사항 + 또는 -)만 있는 문자열로 평가되는 경우 문자열은 정수 서식 유형의 대상 필드로 대체되기 전에 정수로 변환됩니다. 템플릿이 정수 문자(및 선택적 + 또는 -)로만 구성되지 않는 문자열로 평가되는 경우 결과를 정수 대상 필드로 대체할 수 없습니다. 정수 필드에 정수 이외의 값을 삽입하려고 하면 통합이 실패하고 msmErrorBadSubstitutionType 오류 개체가 오류 목록에 추가됩니다.
- 테이블 및 열 필드에 지정된 대상 열이 텍스트 서식 유형이고 값 필드 평가 결과가 정수 서식 유형이면 숫자의 10진수 표현이 대상 텍스트 필드에 삽입됩니다.
- 대상 필드가 정수 서식 유형이고 값 필드가 비트 필드 서식의 구분되지 않은 항목의 목록으로 구성된 경우, 대상 필드의 값은 비트 AND 연산자를 항목의 모든 마스크 값의 역 비트 OR 연산자와 함께 사용하여 결합된 다음, 비트 OR 연산자를 해당 마스크 값으로 마스킹될 때 각 정수 또는 비트 필드 항목과 함께 사용하여 결합됩니다. 기본적으로 이렇게 하면 속성의 비트를 제공된 값으로 명시적으로 설정하지만 다른 모든 비트는 셀에만 남습니다.
- 값 필드가 키 서식 유형으로 평가되고 여러 기본 키를 사용하는 테이블의 키인 경우 항목 이름 뒤에는 함께 기본 키를 만드는 값 집합에 대해 1 기반 인덱스를 나타내는 세미콜론과 정수 값이 올 수 있습니다. 정수를 지정하지 않으면 값 1이 사용됩니다. 예를 들어 Control 테이블에는 Dialog_ 및 Control의 두 가지 기본 키 열이 있습니다. Control 테이블의 키인 항목 “Item1”의 값은 “DialogName;ControlName” 형식입니다. 이 형식에서 DialogName은 Dialog_ 테이블의 값이고 ControlName은 Control 열의 값입니다. ControlName만 대체하려면 대체 문자열 [=Item1;2]을 사용해야 합니다.
설명
ModuleSubstition 테이블은 구성 가능한 통합 모듈에서 사용됩니다. 구성 가능한 통합 모듈을 만들려면 Mergemod.dll 버전 2.0 이상이 필요합니다.
2.0 이전 버전의 Mergemod.dll에 대한 호환성을 보장하려면 ModuleConfiguration 테이블 및 ModuleSubstitution 테이블을 모든 모듈의 ModuleIgnoreTable 테이블 테이블에 추가해야 합니다.