Поддержка пользовательских атрибутов Windchill
Для импорта значений из Windchill MPMLink, которые не импортируются как часть стандартного процесса преобразования компоновочного блока рабочих инструкций, необходимы дополнительные конфигурации. Эти значения могут включать в себя атрибуты Windchill, еще не сопоставленные с моделью данных компоновочного блока или пользовательскими атрибутами Windchill, также известными как динамические атрибуты.
В следующем примере выполняется импорт значений MyCustomAttribute, являющихся атрибутами по умолчанию для данных типа STRING в операции Windchill MPMLink.
1. Убедитесь, что значения атрибутов возвращены в вызовах REST. Выполните следующую команду для сервисов Windchill MPMLink REST, используя вещь соединителя OData MPMLink (PTC.SCA.SCO.MPMLink_ODataConnector) или клиент REST напрямую, и подтвердите возвращение MyCustomAttribute:
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. Обновите связанный профиль данных <Operator_Advisor_object>_AP. Добавленное в профиль данных свойство должно обладать соответствующим типом данных для атрибута Windchill, с которым оно будет сопоставлено.
В этом примере значения из MyCustomAttribute добавляются в новое поле с типом данных STRING в профиле данных PTC.SCA.SCO.WorkDefinition_AP, вызвавшим MyCustomProperty.
3. Убедитесь, что столбец для нового свойства является доступным в базе данных, выполнив связанный с основным профилем данных сервис Get. В этом примере выполните сервис GetWorkDefinition вещи PTC.SCA.SCO.DefaultProductionOrderManager и убедитесь, что столбец MyCustomProperty есть в результатах.
4. В вещи пользовательского сопоставления (PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings) найдите и переопределите сервис пользовательского сопоставления для профиля данных компоновочного блока рабочих инструкций и сведений Windchill, на основе которых необходимо сопоставить атрибут. Для этого примера найдите и переопределите сервис MapWorkDefinitionPropertiesForOperationHolder. Список предоставленных пользовательских сервисов сопоставления см. в Сервисы пользовательского сопоставления.
5. Укажите сопоставление для пользовательского свойства, добавленного в профиль данных <Operator_Advisor_object>_AP и атрибута Windchill, как показано в комментариях к коду сервиса. Для этого примера добавьте:
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
sourceJson является частью вызова REST, предоставленного в качестве входных данных для сервиса. Только часть вызова REST применима для сопоставленных сервисом объектов типа Windchill, предоставленных в качестве входных данных для сервиса. В качестве значения атрибута Windchill используйте наименование атрибута, как показано на 1 этапе при вызове REST. Не используйте внутреннее наименование атрибута, отображаемое в Windchill.
* 
Пользовательскую настройку сопоставлений, установленных компоновочным блоком рабочих инструкций, так же можно настроить, используя пользовательские сервисы сопоставления. Например, для того, чтобы сопоставить атрибут Description для операции в Windchill MPMLink со свойством LongDescription для определения работы в компоновочном блоке рабочих инструкций, вместо свойства Description, добавьте в сервис 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"]
Было ли это полезно?