Структура детали
"Структура детали" - это предопределенная конфигурация компонента "Список элементов". Структура детали содержит дерево структуры, отображающее иерархическую взаимосвязь между деталью или CAD-документом и их потомками. Для каждого элемента в дереве структура детали отображает атрибуты, которые можно выбрать в данной конфигурации. Атрибуты по умолчанию: "Обозначение", "Наименование" и "Состояние".
Можно сконфигурировать структуру детали, чтобы задать начальный уровень развертывания дерева. По умолчанию для начального уровня развертывания задано значение 3. Пользователи могут развертывать и свертываться элементы в дереве.
Дерево структуры детали содержит отступ для визуального отображения уровня структуры. В конфигурации можно определить, какой столбец должен отображаться первым в таблице. По умолчанию первым отображается столбец "Обозначение".
Для структуры детали существуют те же возможности экспорта, что и для компонента "Список элементов". Экспортируемый файл содержит столбец, показывающий числовое значение уровня каждого элемента в структуре, и отступ для отображения уровня структуры.
На приведенном ниже изображении показана предопределенная конфигурация структуры детали.
* 
Если у пользователя, просматривающего дерево структуры, нет прав доступа к какому-либо элементу в структуре, этот элемент не отображается, а отображается следующее сообщение: "Некоторые элементы скрыты, потому что у вас нет прав доступа к ним".
Свойства привязки 
Дополнительные сведения о привязке структуры детали см. в разделе компонента Список элементов.
* 
Для структуры детали входное свойство привязки поддерживает типы объектов PTC.ProdMgmt.Part и PTC.CADDocumentMgmt.CADDocument.
Выходные данные свойства привязки selectedItems содержат элементы с типами объектов PTC.ProdMgmt.PartStructureItem и PTC.CADDocumentMgmt.CADStructure.
Свойства конфигурации 
Список всех доступных свойств конфигурации для "Структуры детали" см. в таблице свойств конфигурации для компонента Список элементов. В следующей таблице приведена дополнительная информация о свойствах конфигурации, специфичная для "Структуры детали".
Дополнительные сведения о структуре конфигурации см. в разделе Структура конфигурации компонента.
Дополнительные сведения о подсвойствах см. в разделе Подсвойства и ключи контейнера.
Имя свойства
Описание
Тип свойства
Значение по умолчанию
Обязательное или необязательное
attributes
Дополнительные сведения см. в разделе Список элементов.
Принимает атрибуты с типом объекта PTC.ProdMgmt.PartStructureItem и PTC.CADDocumentMgmt.CADStructure.
По умолчанию дерево структуры детали сортируется по первому атрибуту, т. е. атрибуту с наименьшим неотрицательным значением порядкового номеров.
Н/Д
Обязательное
Пример конфигурации 
{
"attributes":{
"inTailoring":true,
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"Part|Number",
"ordinal":0
},
{
"id":"Part|Name",
"ordinal":1
},
{
"id":"Part|State#Display",
"ordinal":2
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
},
{
"items":[
{
"id":"CADDocument|Number",
"ordinal":0
},
{
"id":"CADDocument|Name",
"ordinal":1
},
{
"id":"CADDocument|State#Display",
"ordinal":2
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
"defaultExpansionLevel":{
"selectedKey":[
"3"
],
"inTailoring":true
},
"label":{
"value":""
},
"selectionType":{
"selectedKey":"multi"
},
"showExportAction":{
"additionalData":{
"itemListExportDefinition":{
"exportTypes":{
"selected":[
{
"key":"exportToCsv"
},
{
"key":"exportToExcel"
}
]
},
"exportUnFilteredData":{
"value":true
}
}
},
"value":true
},
"waitForInput":{
"value":true
},
"baseConfigurationVersion":{
"value":"nav.3"
},
"implementationConfigurationVersion":{
"value":"nav.1"
}
}
Сервисы настройки 
В дополнение к конфигурации каждый компонент поддерживает расширение бизнес-логики для настройки компонента. Бизнес-логика каждого компонента включает в себя переопределяемые сервисы в шаблоне вещи, которые можно расширять и переопределять. Переопределяемые сервисы для этого компонента подробно описаны в следующей таблице.
Примеры возвращаемых значений и параметров для каждого сервиса приведены в разделе Примеры ввода/вывода для сервисов настройки.
Наименование
Описание
ComputeMessages
Вычисляет требуемые сообщения для отображения в структуре детали. Получает текущие сообщения JSON и предлагаемые сообщения JSON, а также возвращает уведомления в виде сообщения JSON, которые содержат сообщения для отображения в списке элементов.
Параметры:
getItemsResponse (Требуется) - объект JSON в формате CCO, содержащий элементы, возвращенные из сервиса getItems.
currentMessages (Требуется) - объект JSON, содержащий текущие сообщения с уведомлениями, отображаемыми в интерфейсе пользователя.
suggestedMessages (Требуется) - объект JSON, содержащий набор предлагаемых сообщений. Рекомендуется использовать предлагаемые сообщения.
input (Необязательно) - JSON в формате CCO, который включает идентификатор входных данных для элемента в корне структуры.
configuration (Необязательно) - JSON с конфигурацией.
scope (Необязательно) - JSON, который указывает контекстную область данных в getItemsResponse. Объект JSON содержит ключ scope, который принимает значения root и child. Относится к иерархическим данным. Пример:
{
"scope": "root"
}
Возвращает объект JSON, содержащий сообщения для отображения в сетке списка элементов. Пример:
"INFO":{
{
"messages":[
"[[PTC.Nav.ItemList.HiddenItemsBecauseAccessRightMessage]]"
]
}
}
DefHookAttributesTypesInfo
Возвращает JSON-массив, содержащий информацию об адаптере и типы объектов атрибутов, поддерживаемые компонентом "Структура детали".
Параметры: нет
Возвращает: JSON-массив
GetChildren
Получает деталь или CAD-документ и возвращает JSON в формате CCO, содержащий потомки этого элемента, то есть все элементы, которые на один уровень ниже этой детали или CAD-документа в иерархической структуре данных. Возвращенный JSON содержит потомки в виде простого списка, а не иерархических данных.
Параметры:
input (Необязательно) - JSON в формате CCO, который включает идентификатор входных данных для детали или CAD-документа в корне структуры.
configuration (Требуется) - JSON с конфигурацией.
item (Требуется) - JSON, содержащий родительский элемент, дочерние элементы которого должны быть возвращены.
Возвращает: JSON в формате CCO
GetConfigurations
Возвращает доступные конфигурации для структуры детали.
Параметры: нет
Возвращает: JSON
GetImplementationSettings
Возвращает данные настроек реализации структуры детали. Реализации могут переопределять этот сервис, чтобы предоставить свои собственные настройки. Дополнительные сведения см. в разделе Дополнительная информация о сервисе GetImplementationSettings для списка элементов.
Параметры: нет
Возвращает: объект JSON.
GetItems
Возвращает структуру для детали или CAD-документа, указанных во входных данных.
Параметры:
input (обязательный) - JSON в формате CCO, содержащий идентификатор входных данных, которые нужно вызвать из серверной системы, и информацию об адаптере для серверной системы.
configuration (обязательный) - JSON с окончательной объединенной конфигурацией, полученной из ресурса диспетчера настройки.
Возвращает: JSON в формате CCO
GetItemsByExpansionPath
Возвращает иерархическую структуру CCO, которая содержит все элементы на пути от корня до запрошенного элемента, включая все запрошенные атрибуты, itemIdentifierKeys и itemExpansionKeys. Иерархическая структура CCO включает все одноуровневые элементы на пути.
Сервис вызывается, когда свойство привязки selectedItems получает входные данные, указывающие элемент, который не загружен.
Параметры:
input (Необязательно) - JSON в формате CCO, который включает идентификатор входных данных для детали или CAD-документа в корне структуры.
configuration (Требуется) - JSON с конфигурацией.
itemExpansionValues (Требуется) - массив JSON, который содержит itemExpansionKeys детали или CAD-документа, для которых запрашивается расширение. Значения массива упорядочены согласно пути в дереве, начиная с корневой детали или CAD-документа.
Возвращает: JSON в формате CCO
GetStructureSkeleton
Возвращает все уровни иерархической структуры в формате CCO, где каждая деталь или CAD-документ в структуре включает одновременно itemIdentifierKeys и itemExpansionKeys, как определено в сервисе GetImplementationSettings.
Параметры:
input (Необязательно) - JSON в формате CCO, который включает идентификатор входных данных для детали или CAD-документа в корне структуры.
configuration (Требуется) - JSON с конфигурацией.
Возвращает: JSON в формате CCO
MapItemToInputObject
Сопоставляет элемент структуры детали или CAD-документа с входными данными детали или CAD-документа, которые затем могут использоваться сервисом GetItems.
Параметры:
input (Необязательно) - JSON в формате CCO, который включает идентификатор входных данных для детали или CAD-документа в корне структуры.
item (Требуется) - JSON, содержащий деталь или CAD-документ для сопоставления.
Возвращает: JSON в формате CCO с единственными деталью или CAD-документом, содержащими только атрибут id.
Определение реализации 
{
"array": [
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"directDefinition": [
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Textbox"
},
"mandatory": false,
"key": "actionBarConfigurationJSON"
}
]
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.DefinitionGroup"
},
"mandatory": false,
"key": "actionBarConfiguration"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"additionalDefinition": [
{
"directDefinition": [
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Textbox"
},
"mandatory": false,
"key": "fieldTitleOverride"
}
],
"key": "itemListAttributesDefinition"
},
{
"directDefinition": [],
"key": "implementationAttributesDefinition"
}
],
"updateServiceName": "",
"minimumSelectedAttributes": null,
"supportedTypes": {
"data": [
{
"itemListsData": [
{
"selectionGroupIds": [
"PSI"
],
"objectType": "PTC.ProdMgmt.PartStructureItem"
},
{
"selectionGroupIds": [
"CS"
],
"objectType": "PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
],
"allowSubsetForTailoring": false
},
"addServiceName": "",
"maximumSelectedAttributes": null
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.AttributesSelector"
},
"mandatory": true,
"key": "attributes"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"options": [
{
"label": "-1",
"key": "-1"
},
{
"label": "1",
"key": "1"
},
{
"label": "2",
"key": "2"
},
{
"label": "3",
"key": "3"
},
{
"label": "4",
"key": "4"
},
{
"label": "5",
"key": "5"
},
{
"label": "6",
"key": "6"
},
{
"label": "7",
"key": "7"
},
{
"label": "8",
"key": "8"
},
{
"label": "9",
"key": "9"
}
],
"updateServiceName": null,
"addServiceName": null
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Dropdown"
},
"mandatory": false,
"key": "defaultExpansionLevel"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"additionalDefinition": [
{
"directDefinition": [
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"options": [
{
"description": "Sort column in ascending order",
"label": "[[PTC.Nav.ItemList.SortOrder.Asc]]",
"key": "asc"
},
{
"description": "Sort column in descending order",
"label": "[[PTC.Nav.ItemList.SortOrder.Dsc]]",
"key": "dsc"
}
],
"updateServiceName": null,
"addServiceName": null
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.RadioButton"
},
"mandatory": false,
"key": "defaultSortDirection"
}
],
"key": "itemListDefaultSortFieldDefinition"
}
],
"updateServiceName": "",
"minimumSelectedAttributes": null,
"supportedTypes": {
"data": [
{
"itemListsData": [
{
"selectionGroupIds": [
"PSI"
],
"objectType": "PTC.ProdMgmt.PartStructureItem"
},
{
"selectionGroupIds": [
"CS"
],
"objectType": "PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
],
"allowSubsetForTailoring": false
},
"addServiceName": "",
"maximumSelectedAttributes": null
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.AttributesSelector"
},
"mandatory": false,
"key": "defaultSortFields"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"default": true,
"true": {
"additionalDefinition": [
{
"directDefinition": [
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Textbox"
},
"mandatory": false,
"key": "searchHintText"
}
],
"key": "itemListSearchDefinition"
}
],
"label": "[[PTC.Nav.Yes]]"
},
"false": {
"additionalDefinition": [],
"label": "[[PTC.Nav.No]]"
}
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Toggle"
},
"mandatory": false,
"key": "enableSearch"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"additionalDefinition": [
{
"directDefinition": [
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"dynamicallySetTypeServiceName": "GetFilterTypeDefinitionForFilterField",
"type": {
"enum": {
"options": [],
"updateServiceName": null,
"dynamicallySetOptionsServiceName": null,
"addServiceName": null,
"multiSelect": null
}
}
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.FieldFilter"
},
"mandatory": false,
"key": "defaultSelectedFilterValues"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Textbox"
},
"mandatory": false,
"key": "filterLabelOverride"
}
],
"key": "itemListFilterFieldDefinition"
}
],
"updateServiceName": "",
"minimumSelectedAttributes": 0,
"supportedTypes": {
"data": [
{
"itemListsData": [
{
"selectionGroupIds": [
"PSI"
],
"objectType": "PTC.ProdMgmt.PartStructureItem"
},
{
"selectionGroupIds": [
"CS"
],
"objectType": "PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
],
"allowSubsetForTailoring": false
},
"addServiceName": "",
"maximumSelectedAttributes": 1
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.AttributesSelector"
},
"mandatory": false,
"key": "filterFields"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.DefinitionGroup"
},
"mandatory": false,
"key": "implementationConfiguration"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Textbox"
},
"mandatory": false,
"key": "label"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"minValue": 50,
"default": 500,
"maxValue": 10000,
"step": 50
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Number"
},
"mandatory": false,
"key": "maxNumberOfRowsInGrid"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"options": [
{
"description": "Disallow items selection",
"label": "[[PTC.Nav.ItemList.SelectionType.None]]",
"key": "none"
},
{
"description": "Allow single item selection",
"label": "[[PTC.Nav.ItemList.SelectionType.Single]]",
"key": "single"
},
{
"description": "Allow multiple items selection",
"label": "[[PTC.Nav.ItemList.SelectionType.Multiple]]",
"key": "multi"
}
],
"updateServiceName": null,
"addServiceName": null
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.RadioButton"
},
"mandatory": false,
"key": "selectionType"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"default": true,
"true": {
"additionalDefinition": [
{
"directDefinition": [
{
"property": {
"options": [
[
{
"label": "[[PTC.Nav.ItemList.ExportCSVActionLabel]]",
"key": "exportToCsv"
},
{
"label": "[[PTC.Nav.ItemList.ExportCSVAsExcelActionLabel]]",
"key": "exportToExcel"
}
]
]
},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"default": "",
"overflow": null,
"minimumSelectedItems": null,
"options": [],
"updateServiceName": null,
"addServiceName": null,
"constraints": {}
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.CheckboxArray"
},
"mandatory": false,
"key": "exportTypes"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"default": false,
"true": {
"additionalDefinition": [],
"label": null
},
"false": {
"additionalDefinition": [],
"label": null
}
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Toggle"
},
"mandatory": false,
"key": "exportUnFilteredData"
}
],
"key": "itemListExportDefinition"
}
],
"label": "[[PTC.Nav.Yes]]"
},
"false": {
"additionalDefinition": [],
"label": "[[PTC.Nav.No]]"
}
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Toggle"
},
"mandatory": false,
"key": "showExportAction"
},
{
"property": {},
"value": {
"initializationData": {
"version": "1.0.0",
"constraints": {},
"properties": {
"default": false,
"true": {
"additionalDefinition": [],
"label": "[[PTC.Nav.Yes]]"
},
"false": {
"additionalDefinition": [],
"label": "[[PTC.Nav.No]]"
}
}
},
"elementVersion": "1.0.0",
"elementName": "PTC.Nav.DynamicForm.Toggle"
},
"mandatory": false,
"key": "waitForInput"
}
]
}
Было ли это полезно?