ModuleSubstitution 테이블
ModuleSubstitution 테이블은 모듈 데이터베이스의 구성 가능한 필드를 지정하고 각 필드의 구성에 대한 템플릿을 제공합니다. 사용자 또는 병합 도구는 이 테이블을 쿼리하여 수행할 구성 작업을 결정할 수 있습니다. 이 테이블은 대상 데이터베이스에 병합되지 않습니다.
다음 표에는 구성 가능한 필드가 포함될 수 없으며 이 표에 나열되지 않아야 합니다.
ModuleSubstitution 테이블
ModuleSubstitution 테이블에는 다음 열이 있습니다.
열 | 형 | 열쇠 | Nullable |
---|---|---|---|
테이블 | 식별자 | Y | N |
행 | 텍스트 | Y | N |
열 | 식별자 | Y | N |
값 | 텍스트 | 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 Function설명된 오류 유형을 참조하세요.
- 값 필드가 null GUID({00000000-0000-0000-0000-000000000000})로 평가되면 행이 모듈에 병합되기 전에 null GUID가 기능 이름으로 바뀝니다. 자세한 내용은 병합 모듈 참조 기능을 참조하세요.
- 값 필드의 템플릿은 대상 필드에 삽입되기 전에 평가됩니다. 행으로의 대체는 기능을 바꾸기 전에 수행됩니다.
- 값 열이 정수 문자(선택 사항 + 또는 -)만 있는 문자열로 계산되는 경우 문자열은 정수 형식 대상 필드로 대체되기 전에 정수로 변환됩니다. 템플릿이 정수 문자(및 선택적 + 또는 -)로만 구성되지 않는 문자열로 평가되는 경우 결과를 정수 대상 필드로 대체할 수 없습니다. 정수가 아닌 필드를 정수 필드에 삽입하려고 하면 병합이 실패하고 msmErrorBadSubstitutionType 오류 개체가 오류 목록에 추가됩니다.
- 테이블 및 열 필드에 지정된 대상 열이 텍스트 서식 형식값 필드를 계산하면 정수 형식 형식이경우 숫자의 10진수 표현이 대상 텍스트 필드에 삽입됩니다.
- 대상 필드가 정수 형식 형식값 필드이고 값 필드가 Bitfield Format있는 항목의 구분되지 않은 목록으로 구성된 경우 대상 필드의 값은 비트 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 테이블 포함되어야 합니다.