Видимое и действительное дерево контекстов
Данный раздел посвящен объяснению различия между видимым Деревом контекстов и серверным Деревом контекстов.
Необходимо знать, что структура дерева контекстов, видимого в Системном дереве и подобных компонентах (таких как Селектор объектов) не совпадает полностью со структурой дерева контекстов SberMobile Server. Для удобства пользования, узлы, которые относятся к одному серверному контексту, могут появиться в двух, трех и более местах Системного дерева.
Например, один контекст устройства, представляющий аппаратное устройство, может появиться одновременно в:
- узле Устройства, отображая устройство активного пользователя
- узле Все устройства, включающем все устройства в системе
- одном и более узлах под названием Группа устройств
На приведенном выше рисунке, узлы, на которые указывают стрелки, относятся к одному серверному контексту. При наведении курсора мыши на узел Системного дерева, появится всплывающая подсказка, в которой указан его абсолютный серверный путь:
Данное различие может стать причиной неожиданных результатов при проверке путей контекстов, видимых в дереве. Например, дерево может включать в себя контекст Устройство ABC, который расположен в Корень > Все устройства. Однако, настоящий серверный путь к данному контексту является users.Owner_Name.devices.deviceABC
где Owner_Name -
пользователь SberMobile Server, которому принадлежит устройство. Серверный контекст Все устройства не имеет действительных потомков, т.к. он является так называемым отображенным контекстом.
Пути контейнеров
Неопытные пользователи SberMobile иногда путают "действительные" и "отображаемые" контексты контейнеров.
Большинство контекстов в корне системного дерева отображаемые. Например, если вы наведете мышку на узел Устройства, вы увидите, что его путь контекста - это devices
:
Если вы развернете этот узел и проверите путь контекста устройства, расположенного прямо под ним, вы увидите, что его путь users.admin.devices.virtual
:
Это означает, что действительный контейнер нашего устройства под названием virtual
- это users.admin.devices
. Он принадлежит пользователю системы с именем admin
. Мы можем найти этот действительный контейнер, пройдя путь Users => admin (Administrator) => Devices
(заметьте третью стрелку на нижнем изображении):
Большинство контекстов контейнеров в корне видимого системного дерева отображаемые, т.е. узел Однако контексты групп, расположенные в контекстах этих контейнеров, не отображаемые, т.е. узел |