Печать с помощью DeviceHub - Определение принтеров групп доступа к принтерам - PullRequest
0 голосов
/ 24 апреля 2018

На основании исследования страницы Acumatica Print Statements (AR503500) я смог определить следующие ключевые таблицы:

  • RelationGroup: Группы доступа к принтеру, в которых находятся пользователиназначенный
  • SMPrinter: принтеры, связанные с вышеупомянутыми группами
  • Поле Users.GroupMask: ссылка между пользователем и группой

Результат SQL

Отношение между RelationGroup и SMPrinter довольно просто через столбец GroupMask.

Однако из-за потенциального использования того же пользователя вДля нескольких групп связь между Users.GroupMask и таблицей RelationGroup немного сложнее.

Переводя шестнадцатеричные значения из столбцов маски группы, мы видим, что каждая группа представлена ​​в отдельной позиции бита:

0x40000000 -- 0100 0000
0x08000000 -- 0000 1000
0x10000000 -- 0001 0000
0x04000000 -- 0000 0100

В нашем случае пользователь с правами администратора принадлежит к следующим группам: доступ к счету наличными, филиал счета фиксированных активовДоступ, ограничение доступа к сотрудникам, проверка

Таким образом, он идентифицируется этим двоичным значением: 01011100, которое соответствует результату 0x5C00 из запроса, ранее показанного для таблицы пользователей.

Существует ли Acumaticaметод, который можно использовать для получения этого результата более прямым способом?Пример: мы вводим пользователя и получаем все группы доступа к принтеру, к которым он / она принадлежит?

Ближайший метод, который я определил, который может предоставить эту информацию, - это метод SearchPrinter (), однако он возвращает только значение по умолчаниюпринтер для пользователя, уведомления или ветви, но не возвращает список принтеров, связанных с вошедшим в систему пользователем.

...