Дополнительная информация о сервисе 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
}
}