색인화된 필드 추가 또는 제거
색인화된 필드는 데이터베이스 검색을 최적화하는 데 사용됩니다. 데이터베이스 테이블의 관련 열에 대한 제약 조건으로 정의됩니다.
색인화된 필드 추가
기존 데이터베이스 테이블에 색인화된 필드를 추가하려면 다음을 수행합니다.
1. 데이터베이스 테이블과 관련된 ThingWorx 엔티티에 대한 적절한 관리자로 이동합니다. 이러한 관리자는 시작 지점 구성 사물(PTC.Factory.C_LaunchPointConfigurationThing_[ReleaseVersion])의 구성 페이지에 있는 ManagerConfigurationSettings 테이블에 지정됩니다. 예를 들어, Operator Advisor 엔티티의 관리자는 PTC.SCA.SCO.DefaultProductionOrderManager입니다.
2. 서비스에서 색인화된 필드를 추가할 엔티티에 대한 Get<entity>DBInfo 서비스를 찾아 재정의합니다. 예를 들어, 작업 지시서에 대한 데이터베이스 테이블에 색인화된 필드를 추가하려면 GetJobOrderDBInfo 서비스를 찾아 재정의합니다.
3. 스크립트 편집기에서 색인화된 필드를 추가하려는 데이터 셰이프의 엔트리로 스크롤합니다.
4. 다음 속성을 사용하여 데이터 셰이프에 대한 indexedFields 배열을 추가합니다.
name – (필수) 열의 이름입니다.
unique - 열에 고유한 값이 있어야 하는지 여부를 지정합니다.
identifier - 데이터베이스의 엔티티 이름입니다. 지정하지 않으면 <table_name>_<column_name>_idx 형식으로 값이 자동으로 생성됩니다. 지정한 경우 값이 지정된 값과 자동으로 생성된 값 모두에 대해 고유해야 합니다. 값의 최대 길이는 데이터베이스에서 식별자에 허용하는 최대 길이입니다.
5. 저장을 클릭하여 변경 내용을 서비스에 저장합니다.
6. PTC.SCA.SCO.DatabaseManager 사물로 이동합니다.
7. Operator Advisor의 데이터베이스 정보를 데이터베이스 스키마와 동기화합니다. 자세한 내용은 데이터베이스 정보 및 데이터베이스 스키마 동기화 항목을 참조하십시오.
색인화된 필드 제거
색인화된 필드를 제거하려면 다음을 수행합니다.
* 
기본으로 정의된 색인화된 필드는 제거하지 마십시오. 이전에 추가한 색인화된 필드만 제거합니다(예: Operator Advisor 엔티티에 사용자 정의 속성 추가 또는 Operator Advisor 데이터 모델에 사용자 정의 엔티티 추가).
1. PTC.SCA.SCO.PostgresDatabase 또는 PTC.SCA.SCO.MSSQLDatabase와 같이 시스템에 대해 구성된 데이터베이스 사물로 이동합니다.
2. 서비스에서 다음 입력을 사용하여 RemoveIndex 서비스를 실행합니다.
dataShapeName - 색인화된 필드 제약 조건을 제거할 데이터베이스 테이블에 대한 데이터 셰이프입니다.
fieldName - 색인화된 필드 제약 조건을 제거할 데이터 셰이프의 필드입니다.
dbInfo - 제거할 색인화된 필드 제약 조건에 대한 JSON 설명입니다. 색인화된 필드가 정의된 Get<entity>DBInfo 서비스에서 지정된 동일한 identifier(있는 경우) 및 name 정보를 제공해야 합니다.
3. 실행을 클릭합니다.
4. 색인화된 필드가 정의된 Get<entity>DBInfo 서비스로 이동하여 서비스에서 색인화된 필드 정의를 제거합니다. 이 색인화된 필드를 제거하지 않을 경우 다음에 동기화 서비스를 실행할 때 외래 키가 데이터베이스에 다시 추가됩니다.
예를 들어, MyObject 데이터 셰이프의 WorkDefinitionUID란 이름의 필드에서 지정된 identifier를 가진 색인화된 필드 제약 조건을 제거하려면 입력 매개 변수에 대해 다음을 지정합니다.
dataShapeName - MyObject
fieldName - WorkDefinitionUID
dbInfo -
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}