Дополнительная информация о сервисе GetImplementationSettings для списка элементов
В этом разделе описан сервис GetImplementationSettings, представляющий собой сервис настройки, доступный для списка элементов. Этот сервис обычно используется при отображении данных списка элементов в дереве структуры, а не в простом списке. Например, этот сервис используется в предопределенных конфигурациях "Структура детали" и "Структура документа" списка элементов.
Кроме того, этот сервис должен быть реализован, если нужно включить входное свойство привязки selectedItems. Свойство selectedItems позволяет предварительно выбрать элемент в списке элементов.
Сервис GetImplementationSettings может содержать следующие три свойства. Каждое свойство может содержать один или несколько атрибутов для каждого элемента, если для каждого типа объекта существует только один атрибут.
itemIdentifierKeys
Этот необходимый ключ содержит для каждого входного элемента атрибут, с помощью которого можно выбрать этот элемент. Любые другие атрибуты, заданные во вводных данных selectedItems, будут игнорироваться. Учитывается только первый указанный атрибут; любые дополнительные атрибуты игнорируются.
Если значения атрибутов уникальны для каждого элемента, то при использовании selectedItems выбирается только один элемент. Если они не являются уникальными, то выбираются все элементы с таким значением для этого атрибута.
itemExpansionKeys
Этот дополнительный ключ существенен только в случае, когда в списке элементов отображаются иерархические данные. Он поддерживает развертывание элементов, которые первоначально свернуты (например, из-за уровня развертывания по умолчанию) в дереве структуры при выборе свернутого элемента с помощью опции selectedItems. Атрибуты в itemExpansionKeys используются для идентификации любых элементов, отсутствующих в структуре. Поскольку значения атрибутов используются для идентификации элементов, значения атрибутов должны быть уникальными для каждого элемента.
В реализации по умолчанию следующих сервисов используются настройки itemExpansionKeys: GetChildren, MapItemToInputObject, GetItemsByExpansionPath, GetStructureSkeleton. Дополнительные сведения см. в подразделе Сервисы настройки раздела Список элементов.
hasChildrenKeys
Этот дополнительный ключ существенен только в случае, когда в списке элементов отображаются иерархические данные. hasChildrenKeys содержит наименование атрибута для каждого элемента, которое используется для определения наличия подэлементов у этого элемента. Если этот атрибут отсутствует для элемента или атрибут имеет значение false, предполагается, что у этого элемента нет подэлементов. Если опция hasChildrenKeys не включена, то для отображения древовидной структуры присутствие раздела элементов под ключом PTC.Nav.Descendants на каждом элементе данных CCO используется в качестве индикатора подэлементов. Дополнительные сведения см. в разделе Структура общего объекта взаимодействия.
Пример кода для GetImplementationSettings
Пример, содержащий элементы структуры детали 
Пример кода для элементов типа одиночного объекта:
"implementationSettings":{
...
"itemIdentifierKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PartUseId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"itemExpansionKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PathId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"hasChildrenKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
]
}
Пример кода для элементов нескольких типов объектов:
"implementationSettings":{
...
"itemIdentifierKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PartUseId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PVTreeId",
"ordinal":0
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"itemExpansionKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PathId",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"PVTreeId",
"ordinal":0
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"hasChildrenKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.ProdMgmt.PartStructureItem"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
},
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.CADDocumentMgmt.CADStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
]
}
Пример, содержащий элементы структуры документа 
"implementationSettings":{
"..."
"itemIdentifierKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"DocumentUseID",
"ordinal":0
}
],
"objectType":"PTC.DocMgmt.DocStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"hasChildrenKeys":[
{
"selectedValues":{
"data":[
{
"itemListsData":[
{
"items":[
{
"id":"HasChildren",
"ordinal":0
}
],
"objectType":"PTC.DocMgmt.DocStructure"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
]
}
}
],
"overrideItemsDataForExport":{
"value":false
}
}
Было ли это полезно?