Связь выборок с администрируемыми объектами
Contents
Связь выборок с администрируемыми объектами#
основные понятия#
Элемент администрирования#
Элемент администрирования (класс Btk_AcItem
) - логический объект, который соответствует одной выборке.
На каждую выборку, обладающую своей avm.xml
, создается отдельный элемент администрирования
, обладает перечнем элементарных привилегий
Элементарная привилегия#
Элементарная привилегия (класс Btk_AcItemPrivilege
, коллекция к Btk_AcItem
) - логический объект, который соответствует одному из элементов выборки: атрибуту или операции.
Элементарные привилегии обладают типом привилегии
. Например, атрибуты относятся к типу Чтение
.
Тип элементарной привилегии#
Определяет группу Элементарной привилегии
. Позволяет управлять доступом к группам привилегий, а не по отдельности к каждой элементарной привилегии
Объект администрирования#
Объект администрирования (класс Btk_AcObject
) - логический объект, который соответствует Бизнес объекту
, и обладает перечнем элементов администрирования
, входящих в этот объект.
Бизнес объект#
Бизнес объект (класс Btk_BoEntity
) - логическое объединение нескольких классов
в единую сущность.
Бизнес объект создается на корневые классы
, и включает все его коллекции.
Базовая выборка#
Выборка, которая соответствует классу. Например, выборка Btk_ClassAvi
является базовой выборкой класса Btk_Class
Произвольная выборка#
Выборка, которая не принадлежит какому-либо классу.
В том числе и выборки-наследники от базовой выборки
Корневой класс#
Класс, на который формируется отдельный бизнес объект
. Является логическим отдельным объектом, который обладает своими коллекциями
.
Это классы с типом Справочник
, Документ
, Настройка
, Журнал
.
Принцип построения адм. объектов#
Формирование на основе структуры odm.xml#
На каждый
корневой класс
создается свойадминистрируемый объект
, имя которого равно именикласса
.В
администрируемый объект
включаютсяэлементы администрирования
, которые соответствуют выборкам всех классов входящий вбизнес объект
(сам класс и все его коллекции).
Пример структуры бизнес объекта
:
Документ Some_Document
+ Коллекция Some_DocumentPosition
+ Коллекция Some_DocumentPositionDet
+ V-коллекция Коллекция Some_DocumentLink
Пример сформированного администрируемого объекта
:
Адм. объект Some_Document
+ Элемент Some_DocumentAvi
+ Элемент Some_Document\Some_DocumentPositionAvi
+ Элемент Some_Document\Some_DocumentPosition\Some_DocumentPositionDetAvi
+ Элемент Some_Document\Some_DocumentLinkAvi
Элементы администрирования
в составе объекта администрирования
имеют имя, которое соответствует их пути внутри бизнес объекта
.
Зачем используются такие пути будет описано в главе Определение связи выборки и адм. объекта
Подключение произвольной выборки в структуру адм. объекта#
По мимо элементов администрирования
, соответствующих базовым выборкам классов бизнес объектов
, есть возможность добавить произвольную выборку в структуру администрируемого объекта
. Для этого существует 2 способа:
Подключение в исходном коде
Вavm.xml
базовой выборки
корневого класса
добавить тегacObject
, в котором указать дополнительныеэлементы администрирования
.Пример разметки:
<view xmlns="http://www.global-system.ru/xsd/global3-view-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.global-system.ru/xsd/global3-view-1.0" name="Some_Document"> <acObject> <acItems> <acItem name="Some_Document\Some_CustomAvi" caption="Произвольная выборка"/> </acItems> </acObject> </view>
В этом примере объявлен один дополнительный
элемент администрирования
в составе объекта «Some_Document», с именем «Some_Document\Some_CustomAvi» и наименованием «Произвольная выборка». Наименование используется для визуального отображения этого элемента в приложении администратор.Подключение через приложение
администратор
Открыть карточку нужного
объекта администрирования
добавить новый элемент на закладке
Элементы администрируемого объекта
Определение связи выборки и адм. объекта#
Каждая выборка на открытии в событии onLoadAdminMeta
через методы выборки acObject
и acObjectItem
определяет свою принадлежность к элементу администрирования
и объекту администрирования
.
Все настройки прав доступа к выборке будут искаться по паре значений, которые вернули эти два метода.
Значение, которые вернули эти два метода для выборки, можно увидеть через окно отладки
.
Т.е. чтобы к выборке корректно применялись настройки доступа, в приложении администратор
должен быть объект администрирования
, имя которого равно результату метода acObject
, и в составе этого объекта должен быть элемент администрирования
, имя которого равно результату метода acObjectItem
.
Метод acObject#
Возвращает системное имя объекта администрирования
к которому относится выборка. Например, «Some_Document»
Основной принцип:
Если выборка принадлежит классу, и класс
корневой
, то имя этого класса = имя адм. объектаИначе вызывается метод
acObject
мастер-выборки.
Метод acObjectItem#
Возвращает системное имя элемента администрирования
в составе объекта. например, «Some_Document\Some_DocumentPositionAvi»
Основной принцип:
Вызывается метод
acObjectItem
мастер-выборки.К полученному значению добавляется текущее имя выборки.
Базовые выборки классов#
Для базовых выборок классов
в большинстве случаев корректно отрабатывает стандартная логика определения элемента администрирования
и объекта администрирования
.
Исключением может служить базовая выборка
v-коллекций
, если она открывается вне формы, на которой расположена базовая выборка
мастер-объекта
. Например, если открыть список объектов v-коллекции
, как главную выборку формы.
Произвольные выборки#
Для произвольных выборок
определить принадлежность к объекту администрирования
автоматически не так просто, как для базовых выборок
, которые соответствуют структуре бизнес объектов
.
В большинстве случаев разработчику требуется самостоятельно переопределить работу методов acObject
и acObjectItem
.
Выборка как самостоятельный адм. объект#
Если произвольную выборку
предполагается использовать как самостоятельный объект администрирования
, то требуется:
в
avm.xml
объявить тегacObject
в
Avi
переопределить методыacObject
иacObjectItem
следующим образом:override def acObject: NString = { baseAvi.simpleName } override def acObjectItem: NString = { baseAvi.simpleName }
Выборка как часть другого адм. объекта#
Если произвольную выборку
предполагается использовать как часть существующего объекта администрирования
, то требуется:
В
avm.xml
базовой выборки
корневого класса
этогобизнес объекта
объявить тегacObject
и внутри него добавить новыйэлемент администрирования
<view xmlns="http://www.global-system.ru/xsd/global3-view-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.global-system.ru/xsd/global3-view-1.0" name="Some_Document"> <acObject> <acItems> <acItem name="Some_Document\Some_CustomAvi" caption="Произвольная выборка"/> </acItems> </acObject> </view>
в
Avi
произвольной выборки
переопределить методыacObject
иacObjectItem
следующим образом:override def acObject: NString = { //имя объекта "Some_Document" } override def acObjectItem: NString = { //путь, который мы указали в теге acItem "Some_Document\\Some_CustomAvi" }