색인화된 필드 추가 또는 제거
색인화된 필드는 데이터베이스 검색을 최적화하는 데 사용됩니다. 데이터베이스 테이블의 관련 열에 대한 제약 조건으로 정의됩니다. 단일 및 복합 색인이 모두 지원됩니다.
색인화된 필드 추가
기존 데이터베이스 테이블에 색인화된 필드를 추가하려면 다음을 수행합니다.
1. 데이터베이스 테이블과 관련된 엔티티에 대한 관리자가 포함된 PTC 빌딩 블록에서 확장되는 새 빌딩 블록을 작성합니다. 이러한 관리자는 PTC.Base.Manager구성 페이지에 있는 DefaultGlobalManagerConfiguration 테이블에 지정되어 있습니다. 예를 들어, 작업 지시서에 색인화된 키를 추가하려면 PTC.JobOrderImpl.Manager 사물로 이동합니다.
자세한 내용은 새 빌딩 블록 작성 항목을 참조하십시오.
2. 새 빌딩 블록에 대한 관리자 사물로 이동합니다.
3. 서비스에서 색인화된 필드를 추가할 엔티티에 대한 GetDBInfo 서비스를 찾아 재정의합니다. 예를 들어, 작업 지시서에 대한 데이터베이스 테이블에 색인화된 필드를 추가하려면 GetJobOrderDBInfo 서비스를 찾아 재정의합니다.
4. 스크립트 편집기에서 색인화된 필드를 추가하려는 데이터 셰이프의 엔트리로 스크롤합니다.
5. 다음 속성을 사용하여 데이터 셰이프에 대한 indexedFields 배열을 추가합니다.
unique - 열에 고유한 값이 있어야 하는지 여부를 지정합니다.
fieldnames - 열 이름을 포함하는 배열입니다. 열이 하나만 지정된 경우 단일 색인이 생성됩니다. 여러 열이 지정된 경우 복합 색인이 생성됩니다.
* 
fieldnames에 단일 값을 지정하는 대신 열 이름인 단일 값으로 name을 지정하여 단일 색인을 생성할 수 있습니다. namefieldnames가 모두 지정된 경우 name은 무시되고 fieldnames 값을 사용하여 색인이 생성됩니다.
identifier - 데이터베이스의 엔티티 이름입니다. 지정하지 않으면 시스템에서 <table_name>_<column_name1>_<column_name2>_<column_nameN>_idx 형식으로 값이 자동으로 생성됩니다. 지정한 경우 값이 지정된 값과 자동으로 생성된 값 모두에 대해 고유해야 합니다. 값의 최대 길이는 데이터베이스에서 식별자에 허용하는 최대 길이입니다.
6. 저장을 클릭하여 변경 내용을 서비스에 저장합니다.
7. PTC.DBConnection.Manager 사물로 이동합니다.
8. 데이터베이스 정보를 데이터베이스 스키마와 동기화합니다. 자세한 내용은 데이터베이스 정보 및 데이터베이스 스키마 동기화 항목을 참조하십시오.
색인화된 필드 제거
색인화된 필드를 제거하려면 다음을 수행합니다.
* 
기본으로 정의된 색인화된 필드는 제거하지 마십시오. 이전에 추가한 색인화된 필드만 제거합니다(예: 데이터 모델 엔티티에 사용자 정의 속성 추가 또는 데이터 모델에 사용자 정의 엔티티 추가).
1. 데이터베이스 테이블과 관련된 엔티티에 대한 관리자가 포함된 PTC 빌딩 블록에서 확장되는 새 빌딩 블록을 작성합니다. 이러한 관리자는 PTC.Base.Manager구성 페이지에 있는 DefaultGlobalManagerConfiguration 테이블에 지정되어 있습니다. 예를 들어 작업 지시서에서 색인화된 필드를 제거하려면 PTC.JobOrderImpl.Manager 사물로 이동합니다.
자세한 내용은 새 빌딩 블록 작성 항목을 참조하십시오.
2. 시스템에 대해 구성된 데이터베이스 사물(예: PTC.DBConnection.MSSQLDatabase)로 이동합니다.
3. 서비스에서 다음 입력을 사용하여 RemoveIndex 서비스를 실행합니다.
dataShapeName - 색인화된 필드 제약 조건을 제거할 데이터베이스 테이블에 대한 데이터 셰이프입니다. 필수 사항입니다.
fieldName - 색인화된 필드 제약 조건을 제거할 데이터 셰이프의 필드입니다. 이 입력은 색인화된 단일 필드를 제거할 때만 필요합니다.
dbInfo - 제거할 색인화된 필드 제약 조건에 대한 JSON 설명입니다. 색인화된 필드가 정의된 GetDBInfo 서비스에서 지정된 동일한 identifier(있는 경우) 및 name 정보를 제공해야 합니다. 이 입력은 복합 색인을 제거할 때 필요합니다.
4. 실행을 클릭합니다.
5. 색인화된 필드가 정의된 GetDBInfo 서비스로 이동하여 서비스에서 색인화된 필드 정의를 제거합니다. 이 색인화된 필드를 제거하지 않을 경우 다음에 동기화 서비스를 실행할 때 외래 키가 데이터베이스에 다시 추가됩니다.
예를 들어, MyObject 데이터 셰이프의 WorkDefinitionUID란 이름의 필드에서 지정된 identifier를 가진 색인화된 필드 제약 조건을 제거하려면 입력 매개 변수에 대해 다음을 지정합니다.
dataShapeName - MyObject
fieldName - WorkDefinitionUID
dbInfo -
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}
도움이 되셨나요?