전문 관리 > 비즈니스 객체 변경 > 유형 및 속성 관리 > 유형 및 속성 관리 명령줄 도구 > TypeAttributeMoveTool 유틸리티 사용
  
TypeAttributeMoveTool 유틸리티 사용
TypeAttributeMoveTool 명령줄 유틸리티를 사용하여 유형과 유형의 모든 하위 유형에 대한 속성 간에 값을 복사할 수 있습니다.
유형의 속성 간에 값을 복사하는 이 기능을 사용하여 속성의 이름을 바꾸거나유형 계층 내 속성을 하위 유형에서 상위 유형으로 또는 상위 유형에서 하위 유형으로 이동할 수도 있습니다. 이러한 특수 사용 사례에 대해서는 이후 단원에서 설명합니다.
소스 속성과 대상 속성은 로컬 속성이거나 글로벌 속성일 수 있으므로, 다음 네 가지 시나리오가 가능합니다.
글로벌 속성에서 로컬 속성으로 값 복사 - 로컬 속성 값이 유형과 다른 데이터베이스 테이블이 아니라 동일한 테이블에 있기 때문에 성능이 향상됩니다.
글로벌 속성에서 글로벌 속성으로 값 복사 - 속성을 결합하거나 분리합니다.
로컬 속성에서 로컬 속성으로 값 복사 - 속성을 결합하거나 분리합니다. 또는 테이블 열 간에 데이터를 이동합니다.
로컬 속성에서 글로벌 속성으로 값 복사 - 속성에 여러 값과 글로벌 범위가 있을 수 있습니다.
유틸리티를 실행하기 전에
지정된 유형과 소스 및 대상 속성이 모두 시스템에 있어야 합니다.
두 속성 모두 동일한 유형에 대한 속성이고, 데이터 유형도 같아야 합니다.
계산된 속성이나 파생된 제약 조건 등의 원본 소스 속성에 대한 참조는 대상 속성을 참조하도록 변경해야 합니다.
도구를 실행하면 지정된 유형의 모든 인스턴스에 대해
대상 속성의 현재 값이 모두 삭제됩니다.
소스 속성의 모든 값이 대상 속성으로 복사됩니다.
이 복사 과정에서 다중 값 속성이 발견될 경우 특정 값만 복사됩니다.
다중 값 글로벌 속성에서 로컬 속성으로 복사할 경우 여러 글로벌 속성 값 중 하나만 복사됩니다.
복사가 수행된 후 객체 정보 페이지에서 속성을 보고 원하는 속성 값이 복사되었는지 확인해야 합니다.
다중 값 글로벌 속성에서 다른 글로벌 속성으로 복사할 경우 다중 값이 모두 복사됩니다.
새로운 인스턴스가 작성되거나 기존 인스턴스가 변경되지 않도록 소스 속성에 불변 제약 조건이 설정됩니다.
도구를 실행한 다음 유형 및 속성 관리 유틸리티를 사용하여 시스템에서 원본 소스 속성을 삭제합니다. 그러면 소스 속성의 기존 인스턴스와 해당 값이 모두 삭제됩니다.
* 
대상 속성의 기존 값이 영구적으로 삭제되므로 이 유틸리티는 신중하게 사용해야 합니다.
유틸리티 실행 구문은 다음과 같습니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool <typeName> <sourceAttributeName> <targetAttributeName> -u <userID> -p <password>
여기서
<typeName>은 유형의 내부 이름입니다.
<sourceAttributeName>은 소스 속성의 내부 이름입니다.
<targetAttributeName>은 대상 속성의 내부 이름입니다.
<userID>는 사이트 관리자 사용자의 사용자 이름입니다.
<password>는 사이트 관리자 사용자의 암호입니다.
* 
로컬 속성은 기본 객체 클래스의 열에 직접 저장됩니다. 클래스에서 새 로컬 속성에 사용할 수 있는 추가 열이 없는 경우 새 로컬 속성의 작성을 완료하려고 하면 오류 메시지가 표시됩니다. 기본적으로 객체 클래스에는 로컬 속성에 대한 추가 열이 없습니다.
로컬 속성의 열 추가에 대한 자세한 내용은 유형에 열 추가를 참조하십시오.
속성 이름 바꾸기
속성의 내부 이름은 변경할 수 없지만 TypeAttributeMoveTool 유틸리티를 통해 이전 내부 이름을 가진 속성에서 원하는 내부 이름을 가진 다른 속성으로 값을 이동하면 동일한 결과를 얻을 수 있습니다.
예를 들어, 내부 이름이 "ABC"인 속성이 있고 이름을 "XYZ"로 변경하려는 경우 다음 절차를 따르면 됩니다.
1. 유형 및 속성 관리 유틸리티에서 내부 이름이 "ABC"인 속성과 동일한 유형에 동일한 데이터 유형으로 내부 이름이 "XYZ"인 속성을 작성합니다.
2. Windchill 셸에서 TypeAttributeMoveTool 유틸리티를 실행합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool <typeName> "ABC" "XYZ" -u <userID> -p <password>
그러면 내부 이름이 "ABC"인 속성에서 내부 이름이 "XYZ"인 속성으로 모든 속성 값 인스턴스가 복사됩니다.
3. 내부 이름이 "XYZ"인 속성의 인스턴스 값이 올바른지 확인한 후 내부 이름이 "ABC"인 속성을 삭제할 수 있습니다.
속성을 하위 유형에서 상위 유형으로 또는 상위 유형에서 하위 유형으로 이동
속성을 한 유형에서 다른 유형으로 이동할 수는 없지만 TypeAttributeMoveTool 유틸리티를 사용하여 유형 계층 내에서 하위 유형에 생성된 속성의 값을 상위 유형에서 상속된 속성으로 이동하거나, 상위 유형에서 상속된 속성의 값을 하위 유형에 생성된 속성으로 이동하여 같은 결과를 얻을 수 있습니다.
유형 계층에서 속성 정의를 하위 유형에서 상위 유형으로 위로 이동하려면 다음 단계를 완료하십시오.
1. 유형 및 속성 관리 유틸리티에서 하위 유형의 속성과 동일한 데이터 유형으로 상위 또는 다른 조상 유형에 새 속성을 작성합니다. 이제 하위 유형이 상위 유형에서 이 새로운 속성을 상속합니다.
2. 속성 이름 바꾸기에 설명된 대로 TypeAttributeMoveTool을 사용하여 하위 유형의 속성 값을 상위 유형에서 상속된 속성으로 이동합니다.
3. 결과가 예상과 같은지 확인합니다.
4. 하위 유형에서 속성을 삭제합니다.
유형 계층에서 속성 정의를 상위 유형에서 하위 유형으로 아래로 이동하려면 다음 단계를 완료하십시오.
1. 유형 및 속성 관리 유틸리티에서 하위 유형에 상위 유형의 속성과 동일한 데이터 유형을 가진 새 속성을 작성합니다. 이제 하위 유형에 새로 작성된 속성과 상위 유형에서 이미 상속된 속성이 모두 있습니다.
2. 속성 이름 바꾸기에 설명된 대로 TypeAttributeMoveTool을 사용하여 상위 유형에서 상속된 속성의 값을 하위 유형에 새로 작성된 속성으로 이동합니다.
3. 결과가 예상과 같은지 확인합니다.
4. 상위 유형에서 속성을 삭제합니다.
* 
속성의 내부 이름은 유형의 모든 하위 유형과 상위 유형에서 고유해야 합니다. 원래 유형의 속성 내부 이름을 속성이 이동할 대상 유형의 속성 내부 이름으로 사용하려는 경우 먼저 대상 유형에 임시 속성을 작성합니다. 앞에 설명된 속성 정의를 유형 계층에서 위로 또는 아래로 이동하는 단계에 따라 속성 값을 대상 유형의 임시 속성으로 이동합니다.
원래 속성이 삭제되면 원하는 내부 이름을 가진 새 속성을 대상 유형에 작성할 수 있으며, 속성 이름 바꾸기에 설명된 대로 임시 속성에서 새로 작성된 속성으로 속성 인스턴스 값을 이동할 수 있습니다.
자세한 내용은 다음에 나오는 자세한 예를 참조하십시오.
로컬 속성 정의를 유형 계층에서 아래로 이동
로컬 속성 정의를 유형 계층에서 위로 이동
글로벌 속성 정의를 유형 계층에서 아래로 이동
글로벌 속성 정의를 유형 계층에서 위로 이동
속성의 다른 유형을 유형 계층에서 아래로 또는 위로 이동
* 
여기에 나오는 예에서는 모든 유형 및 속성의 내부 이름에 해당 표시 이름과 동일한 값을 사용합니다.
로컬 속성 정의를 유형 계층에서 아래로 이동
Nigel의 회사에서 Part 유형의 하위 유형인 MyPart를 작성했으며 MyPart에는 MySubPart라는 하위 유형이 있습니다. 현재 MyPart 하위 유형에는 Color라는 로컬 속성이 정의되어 있으며 이 속성은 MySubPart 유형에 상속됩니다. MyPartMySubPart 둘 다에 Color 속성 값이 있지만 이제 회사의 결정에 따라 MySubPart 유형에만 색상이 지정되어야 합니다. 따라서 Nigel은 Color 속성 정의를 MyPart 하위 유형에서 유형 계층의 아래에 있는 MySubPart 하위 유형으로 이동하여 MySubPart 하위 유형에 Color 속성을 정의하고 MySubPartColor 속성에 대해 이미 정의된 값을 유지하려고 합니다.
* 
MyPart 유형에 MySubPart 하위 유형의 하위가 아니라 피어인 다른 하위 유형이 있는 경우, 이 프로세스가 끝날 때 원래 Color 속성이 삭제되면 MyPart 유형에 정의되고 이 유형에서 상속된 원래 Color 속성에 대해 지정된 모든 값이 삭제됩니다.
Nigel은 다음 단계를 완료하여 이 작업을 수행합니다.
1. 유형 및 속성 관리 유틸리티에서 Nigel은 데이터 유형을 포함하여 MyPart 하위 유형에 정의된 Color 속성의 세부내용을 주의 깊게 기록합니다.
2. MyPart 하위 유형에 ColorCopy라는 새 로컬 속성을 작성합니다. 이 새 로컬 속성은 원래 Color 속성과 동일합니다. 이제 ColorCopy 속성이 MySubPart 하위 유형에도 상속됩니다.
3. Windchill 셸에서 다음 명령을 실행하여 Color 속성의 값을 MyPart 하위 유형의 ColorCopy 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MyPart Color ColorCopy
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
MySubPart 하위 유형은 MyPart 하위 유형에서 Color 속성을 상속하므로 MySubPart 하위 유형의 모든 Color 속성 값도 상속된 ColorCopy 속성에 복사됩니다.
4. 유형 및 속성 관리 유틸리티로 돌아가 MyPart 하위 유형에서 Color 속성을 삭제합니다. 속성 값을 포함하여 속성의 모든 인스턴스도 삭제됩니다.
5. 이제 MySubPart 하위 유형에 Color라는 새 로컬 속성을 작성합니다. 이 새 로컬 속성은 원래 Color 속성과 동일합니다.
6. Windchill 셸에서 다음 명령을 실행하여 상속된 ColorCopy 속성의 값을 이제 MySubPart 하위 유형에 정의된 Color 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MySubPart ColorCopy Color
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
7. 유형 및 속성 관리 유틸리티로 돌아가 MyPart 하위 유형에서 ColorCopy 속성을 삭제합니다.
로컬 속성 정의를 유형 계층에서 위로 이동
MySubPart 하위 유형에 Size라는 로컬 속성이 있으며 Nigel은 이 속성을 유형 계층에서 위에 있는 MyPart 하위 유형으로 이동하여 MySubPart 하위 유형 및 MyPart의 모든 다른 하위 유형에 이 속성이 상속되도록 하려고 합니다. MySubPart 하위 유형의 Size 속성에 대한 값이 이미 있으며 Size 속성을 MyPart 하위 유형으로 위로 이동했을 때 이러한 값을 그대로 유지하려고 합니다.
Nigel은 다음 단계를 완료하여 이 작업을 수행합니다.
1. 유형 및 속성 관리 유틸리티에서 Nigel은 데이터 유형을 포함하여 MySubPart 하위 유형에 정의된 Size 속성의 세부내용을 주의 깊게 기록합니다.
2. MyPart 하위 유형에 SizeCopy라는 새 로컬 속성을 작성합니다. 이 새 로컬 속성은 MySubPart 하위 유형의 원래 Size 속성과 동일합니다. 이제 MySubPart 하위 유형에 SizeCopy 속성이 상속됩니다.
3. Windchill 셸에서 다음 명령을 실행하여 Size 속성의 값을 MySubPart 하위 유형의 상속된 SizeCopy 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MySubPart Size SizeCopy
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
4. 유형 및 속성 관리 유틸리티로 돌아가 MySubPart 하위 유형에서 Size 속성을 삭제합니다.
5. MyPart 하위 유형에 Size라는 새 로컬 속성을 작성합니다. 이 새 로컬 속성은 원래 Size 속성과 동일합니다. 이제 MySubPart 하위 유형이 MyPart 하위 유형의 Size 속성을 상속합니다.
6. Windchill 셸에서 다음 명령을 실행하여 상속된 SizeCopy 속성의 값을 MyPart 하위 유형의 새 Size 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MyPart SizeCopy Size
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
7. 유형 및 속성 관리 유틸리티로 돌아가 MyPart 하위 유형에서 SizeCopy 속성을 삭제합니다.
글로벌 속성 정의를 유형 계층에서 아래로 이동
MyPart 하위 유형에 Shape라는 글로벌 속성이 정의되어 있으며 이 글로벌 속성은 MySubPart 하위 유형에 상속됩니다. MyPartMySubPart 하위 유형 둘 다에 Shape 속성 값이 있지만 이제 회사의 결정에 따라 MySubPart 유형에만 형태가 지정되어야 합니다. 따라서 Nigel은 Shape 속성 정의를 MyPart 하위 유형에서 유형 계층의 아래에 있는 MySubPart 하위 유형으로 이동하여 MySubPart 하위 유형에 Shape 속성을 정의하고 MySubPartShape 속성에 대해 이미 정의된 값만 유지하려고 합니다.
* 
MyPart 유형에 MySubPart 하위 유형의 하위가 아니라 피어인 다른 하위 유형이 있는 경우, 이 프로세스가 끝날 때 원래 Shape 속성이 삭제되면 MyPart 유형에 정의되고 이 유형에서 상속된 원래 Shape 속성에 대해 지정된 모든 값이 삭제됩니다.
Nigel은 다음 단계를 완료하여 이 작업을 수행합니다.
1. 유형 및 속성 관리 유틸리티에서 Nigel은 MyPart 하위 유형에 정의된 Shape 속성의 세부내용을 주의 깊게 기록합니다.
2. MyPart 하위 유형에 ShapeCopy라는 새 글로벌 속성을 작성합니다. 이 새 글로벌 속성은 한 가지를 제외하고 원래 Shape 속성과 동일합니다. 제공된 유형 계층 내에서 글로벌 속성 하나만 특정 재사용 가능 속성을 참조할 수 있습니다. 따라서 새 ShapeCopy 속성은 Shape 속성이 아니라 다른 재사용 가능 속성을 기반으로 해야 합니다. 두 재사용 가능 속성의 데이터 유형이 동일해야 이동 작업이 성공합니다.
이제 ShapeCopy 속성이 MySubPart 하위 유형에도 상속됩니다.
3. Windchill 셸에서 다음 명령을 실행하여 Shape 속성의 값을 MyPart 하위 유형의 ShapeCopy 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MyPart Shape ShapeCopy
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
MySubPart 하위 유형은 MyPart 하위 유형에서 Shape 속성을 상속하므로 MySubPart 하위 유형의 모든 Shape 속성 값도 상속된 ShapeCopy 속성에 복사됩니다.
4. 유형 및 속성 관리 유틸리티로 돌아가 MyPart 하위 유형에서 Shape 속성을 삭제합니다. 속성 값을 포함하여 속성의 모든 인스턴스도 삭제됩니다.
5. 이제 MySubPart 하위 유형에 Shape라는 새 글로벌 속성을 작성합니다. 이 새 글로벌 속성은 원래 Shape 속성과 동일한 재사용 가능 속성을 참조하는 것을 비롯하여 원래 Shape 속성과 동일합니다.
6. Windchill 셸에서 다음 명령을 실행하여 상속된 ShapeCopy 속성의 값을 이제 MySubPart 하위 유형에 정의된 Shape 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MySubPart ShapeCopy Shape
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
7. 유형 및 속성 관리 유틸리티로 돌아가 MySubPart 하위 유형에서 ShapeCopy 속성을 삭제합니다.
글로벌 속성 정의를 유형 계층에서 위로 이동
MySubPart 하위 유형에 Material이라는 글로벌 속성이 있으며 Nigel은 이 속성을 유형 계층에서 위에 있는 MyPart 하위 유형으로 이동하여 MySubPart 하위 유형 및 MyPart의 모든 다른 하위 유형에 이 속성이 상속되도록 하려고 합니다. MySubPart 하위 유형의 Material 속성에 대한 값이 이미 있으며 Material 속성을 MyPart 하위 유형으로 위로 이동했을 때 이러한 값을 그대로 유지하려고 합니다.
Nigel은 다음 단계를 완료하여 이 작업을 수행합니다.
1. 유형 및 속성 관리 유틸리티에서 Nigel은 MySubPart 하위 유형에 정의된 Material 속성의 세부내용을 주의 깊게 기록합니다.
2. MyPart 하위 유형에 MaterialCopy라는 새 글로벌 속성을 작성합니다. 이 새 글로벌 속성은 한 가지를 제외하고 MySubPart 하위 유형의 원래 Material 속성과 동일합니다. 제공된 유형 계층 내에서 글로벌 속성 하나만 특정 재사용 가능 속성을 참조할 수 있습니다. 따라서 새 MaterialCopy 속성은 Material 속성이 아니라 다른 재사용 가능 속성을 기반으로 해야 합니다. 두 재사용 가능 속성의 데이터 유형이 동일해야 이동 작업이 성공합니다.
3. Windchill 셸에서 다음 명령을 실행하여 Material 속성의 값을 MySubPart 하위 유형의 상속된 MaterialCopy 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MySubPart Material MaterialCopy
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
4. 유형 및 속성 관리 유틸리티로 돌아가 MySubPart 하위 유형에서 Material 속성을 삭제합니다.
5. 이제 MyPart 하위 유형에 Material이라는 새 글로벌 속성을 작성합니다. 이 새 글로벌 속성은 원래 Material 속성과 동일한 재사용 가능 속성을 참조하는 것을 비롯하여 원래 Material 속성과 동일합니다.
6. Windchill 셸에서 다음 명령을 실행하여 MySubPart 하위 유형의 MaterialCopy 속성 값을 이제 MyPart 하위 유형에서 상속된 새 Material 속성에 복사합니다.
windchill com.ptc.core.lwc.server.TypeAttributeMoveTool MySubPart MaterialCopy Material
메시지가 표시되면 관리 사용자 이름 및 암호를 입력합니다.
7. 유형 및 속성 관리 유틸리티로 돌아가 MyPart 하위 유형에서 MaterialCopy 속성을 삭제합니다.
속성의 다른 유형을 유형 계층에서 아래로 또는 위로 이동
유형 및 속성 관리 유틸리티에서 직접 조작을 통해 별칭, 계산된 텍스트 속성 및 번역된 텍스트 속성을 유형 계층 내 한 레벨에서 다른 레벨로 이동할 수 있습니다. 별칭, 계산된 텍스트 속성 또는 번역된 텍스트 속성에 대한 인스턴스 데이터가 없으므로 삭제하고 원하는 위치에 다시 작성하더라도 인스턴스 데이터가 손실되지 않습니다.
별칭, 계산된 텍스트 속성 또는 번역된 텍스트 속성을 유형 계층 내에서 위로 또는 아래로 이동하려면 다음 단계를 완료하십시오.
1. 별칭, 계산된 텍스트 속성 또는 번역된 텍스트 속성이 현재 정의되어 있는 방식을 정확하게 기록합니다.
2. 속성을 삭제합니다.
3. 유형 계층 내의 원하는 유형에 속성을 다시 작성합니다.