Windchill 사용자 정의 속성 지원하기
Windchill MPMLink에서 기본 제공 작업 지침 빌딩 블록 변환 프로세스의 일부로 가져오지 않은 값을 가져오려면 추가 구성이 필요합니다. 이러한 값은 작업 지침 빌딩 블록 데이터 모델에 이미 매핑되지 않은 Windchill 속성 또는 소프트 속성이라고도 하는 사용자 정의 Windchill 속성을 포함할 수 있습니다.
다음 예에서는 Windchill MPMLink 작업에 대한 STRING 문자열 데이터 유형의 사용자 정의 속성인 MyCustomAttribute 값을 가져옵니다.
1. 속성 값이 REST 호출에서 반환되고 있는지 확인합니다. MPMLink OData 커넥터 사물(PTC.SCA.SCO.MPMLink_ODataConnector)을 사용하거나 REST 클라이언트를 직접 사용하여 Windchill MPMLink REST 서비스에 대해 다음 명령을 실행하고 MyCustomAttribute가 반환되는지 확인합니다.
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. 관련 <Operator_Advisor_object>_AP 데이터 셰이프를 업데이트합니다. 데이터 셰이프에 추가된 속성은 매핑되려는 Windchill 속성에 대한 적절한 데이터 유형이어야 합니다.
자세한 내용은 데이터 모델 엔티티에 사용자 정의 속성 추가 항목을 참조하십시오.
이 예에서는 MyCustomAttribute 값을 MyCustomProperty라고 하는 PTC.SCA.SCO.WorkDefinition_AP 데이터 셰이프의 새 STRING 데이터 유형 속성에 추가합니다.
3. 기본 데이터 셰이프와 관련된 Get서비스를 실행하여 데이터베이스에서 새 속성에 대한 열을 사용할 수 있는지 확인합니다. 이 예에서는 PTC.SCA.SCO.DefaultProductionOrderManager 사물의 GetWorkDefinition 서비스를 실행하고 그 결과에 MyCustomProperty 열이 포함되는지 확인합니다.
4. 사용자 정의 매핑 사물(PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings)에서 작업 지침 빌딩 블록 데이터 셰이프에 대한 사용자 정의 매핑 서비스와 속성을 매핑할 Windchill 정보를 찾아 재정의합니다. 이 예에서는 MapWorkDefinitionPropertiesForOperationHolder 서비스를 찾아 재정의합니다. 제공되는 사용자 정의 매핑 서비스 목록은 사용자 정의 매핑 서비스를 참조하십시오.
5. <Operator_Advisor_object>_AP 데이터 셰이프에 추가된 사용자 정의 속성과 서비스 코드의 설명에 표시된 Windchill 속성 간의 매핑을 지정합니다. 이 예에서는 다음을 추가합니다.
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
sourceJson은 서비스에 대한 입력으로 제공되는 REST 호출의 일부입니다. 서비스에 의해 매핑된 Windchill 객체 유형에 적용되는 REST 호출 부분만 서비스 입력으로 제공됩니다. Windchill 속성 값의 경우 1단계의 REST 호출에 표시된 대로 속성 이름을 사용합니다. Windchill에 나타나는 속성의 내부 이름을 사용하지 마십시오.
복잡한 속성 매핑 시나리오에 대한 자세한 내용은 실수(단위 포함) 데이터 유형의 Windchill 속성 매핑, 다중 값 Windchill 속성 매핑Windchill 목록 속성 매핑 항목을 참조하십시오.
* 
작업 지침 빌딩 블록에 정의된 매핑은 사용자 정의 매핑 서비스를 사용하여 사용자 정의할 수도 있습니다. 예를 들어, Windchill MPMLink의 작업에 대한 Description 속성을 Description 속성 대신 작업 지침 빌딩 블록의 작업 정의에 대한 LongDescription 속성에 매핑하려면 MapWorkDefinitionPropertiesForOperationHolderCustom 서비스에 다음을 추가합니다.
result["LongDescription"] = sourceJson["OperationHolder"]["Description"];
작업 지침 빌딩 블록에서 정의된 매핑을 사용자 정의하는 경우, 작업 지침 빌딩 블록의 새 버전으로 업그레이드한 후에도 사용자 정의된 매핑이 예상한 대로 계속 변환되고 있는지 확인합니다.
이제 Windchill MPMLink 작업의 MyCustomAttribute 속성에 대한 값은 Windchill MPMLink에서 공정 계획 정보를 가져와서 작업 정의 및 관련 정보로 변환할 때 포함됩니다.
실수(단위 포함) 데이터 유형의 Windchill 속성 매핑
실수(단위 포함)의 데이터 유형이 있는 Windchill 속성은 REST 호출에서 단일 속성 값 쌍이 아니라 여러 값이 포함된 JSON 객체로 가져옵니다. 예를 들면 다음과 같습니다.
"Attribute2": {
"Value": 123.45,
"Unit": "m/s2",
"Precision": 5,
"Display": "123.45 m/s2"
}
값 중 하나에 대한 매핑을 지정하거나 전체 JSON 객체를 작업 지침 빌딩 블록의 STRING 유형 속성 값으로 매핑할 수 있습니다.
속성 값 중 하나를 매핑하려면 매핑할 속성 이름과 값을 모두 지정합니다.
result["MyCustomProperty"] = sourceJson["Attribute2"]["Value"]
모든 값을 포함하여 전체 JSON 객체를 작업 지침 빌딩 블록 STRING 유형 속성의 값으로 매핑하려면 속성 이름만 지정합니다.
result["MyCustomProperty"] = sourceJson["Attribute2"]
다중 값 Windchill 속성 매핑
Windchill의 다중 값 속성은 단일 값 제약 조건이 제거된 속성입니다. 전역 속성만 다중 값이 될 수 있습니다.
Windchill의 다중 값 속성은 다음과 유사하게 REST 호출에 표시되고 값이 JSON 배열에 나열됩니다.
"MultiValuedAttribute": [
"Attribute value 1",
"Attribute value 2",
"Attribute value 3"
]
단일 값에 대한 매핑을 지정하거나 속성 값의 전체 JSON 배열을 작업 지침 빌딩 블록에서 STRING 유형 속성의 값으로 매핑할 수 있습니다.
다중 값 속성에서 특정 값을 매핑하려면 값 순서(0부터 시작)대로 속성 이름과 값의 위치를 지정합니다.
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"][1]
속성 값의 전체 JSON 배열을 작업 지침 빌딩 블록 STRING 유형 속성의 값으로 매핑하려면 속성 이름만 지정합니다.
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"]
Windchill 목록 속성 매핑
Windchill의 목록 속성은 열거 값 목록, 적합한 값 목록 또는 제안된 값 목록 등의 목록 제약 조건 중 하나가 적용된 속성입니다. 목록 속성은 전역 속성이거나 로컬 속성일 수 있습니다.
Windchill의 목록 속성은 REST 호출에서 단일 속성 값 쌍이 아니라 여러 값이 있는 JSON 객체로 표시됩니다. 예를 들면, 다음과 같습니다.
"ListAttribute": [
{
"Value": "Test 1",
"Display": "Test 1"
},
}
값 중 하나에 대한 매핑을 지정하거나 전체 JSON 객체를 작업 지침 빌딩 블록의 STRING 유형 속성 값으로 매핑할 수 있습니다.
속성 값 중 하나를 매핑하려면 매핑할 속성 이름과 값을 모두 지정합니다.
result["MyCustomProperty"] = sourceJson["ListAttribute"]["Value"]
모든 값을 포함하여 전체 JSON 객체를 작업 지침 빌딩 블록 STRING 유형 속성의 값으로 매핑하려면 속성 이름만 지정합니다.
result["MyCustomProperty"] = sourceJson["ListAttribute"]
도움이 되셨나요?