Определение текущего пользователя для общего запроса

Я хочу создать ряд общих запросов, в которых будут перечислены лиды или другие элементы для пользователя, который в настоящее время вошел в Acumatica.

Ответ на вопрос [Текущий зарегистрированный пользователь для GI / Reports в 4.2] (Текущий вошедший в систему пользователь для GI / Reports в 4.2) не работает для меня в общем запросе. Это работает, как описано для отчетов. Мы используем Acumatica 5.20.1757.

Использование только PX.Data.AccessInfo в общем запросе приводит к ошибке: последовательность не содержит элементов. Использование его в перекрестном соединении с другой таблицей дает: «Недопустимое имя объекта: AccessInfo. Что я не понимаю / не знаю?


person Gale    schedule 23.12.2015    source источник
comment
Если вы используете более свежие версии, AccessInfo будет работать для вас в G.I, все поля будут пустыми. Вы можете получить идентификатор пользователя с помощью @me и получить условие (для владельца заказа на продажу): SO.OwnerID Equals @me снятие флажка "Из схемы"   -  person Smörgåsbord    schedule 27.04.2018


Ответы (2)


Я только что разработал общий запрос, в котором перечислены все заказы на продажу, созданные пользователем, который в данный момент вошел в систему для клиента, который использует Acumatica 4.2. Вот шаги.

  1. На вкладке Таблицы экрана общего запроса необходимо добавить две таблицы в дополнение к другим нужным таблицам (в этом примере SO.SOOrder): Data.AccessInfo и SM.Users.

  2. На вкладке Отношения необходимо создать табличное отношение между нужными таблицами и SM.Users. Тип соединения должен быть левым. Пример: SOOrder Left Join Users.

  3. Отношение должно быть установлено с использованием поля pKID таблицы Users. Пример: SOOrder.CreatedByID равно Users.pKID.

  4. На вкладке Параметры добавьте строку и дайте ей имя, например UserName. Тогда поле схемы будет AccessInfo.UserName. Параметр Из схемы должен быть активирован.

  5. На вкладке Условия поле данных Users.UserName равно параметру, добавленному в # 4 в качестве значения.

  6. Если вы не хотите, чтобы пользователь менял имя пользователя по умолчанию, определенное как параметр, обязательно проверьте права доступа этого поля в различных ролях.

person Eric Ratté    schedule 23.12.2015

Хотя приведенный выше ответ сработал достаточно хорошо, это избавляет от необходимости выбирать имя и настраивать права доступа. В следующем примере используются лиды.

Укажите значения для Заголовка карты сайта и Местоположение на карте сайта, которые находятся чуть ниже поля Заголовок запроса /

  1. На вкладке Таблицы выберите PX.Data.AccessInfo, PX.Objects.CR.Contact, PX.Object.EP.EPEmployee, PX.SM.LoginTrace и PX.SM.Users. Примите значения по умолчанию для псевдонима, который будет заполнен, когда вы покинете строку.

  2. На вкладке Отношения:

a) установлен, Активен отмечен, Родительская таблица Контакт Тип соединения ** Левая ** Дочерняя таблица EPEmployee, Родительское поле ownerID Условие равно Дочернее поле pKID

б) установите флажок Активно, Родительская таблица Пользователи Тип соединения ** Внутренняя ** Дочерняя таблица EPEmployee, Родительское поле contactID Условие равно Дочернее поле defContactID

c) установите флажок Активно, Родительская таблица Пользователи Тип соединения ** Внутренняя ** Дочерняя таблица, LoginTrace, Родительское поле. имя пользователя Условие равно имени пользователя Дочернее поле

  1. На вкладке Параметры установите для Имя ** значение Имя пользователя, ** Поле схемы - значение AccessInfo.UserName и ** Отображаемое имя ** - Имя пользователя. Активность не следует проверять, если вы не хотите проверять значение поля.

  2. 9 линий были настроены для удовлетворения моих конкретных условий. Они здесь.

а) Активно Истина, Начальные скобки (, Поле данных Пользователи. IsOnline Условие равно, Из схемы Верно, Значение 1 Истинно, Конечные скобки, Оператор И

б) Активно Истина, Начальные скобки, Поле данных LoginTrace.ScreenID, Условие равно, Из схемы < / strong> False, Значение 1 GI000009 (ваше может быть другим), Конечные скобки, Оператор И

c) Активно ложно, Начальные скобки, Поле данных LoginTrace.Date Условие равно, Из схемы < / strong> False, Значение 1 сейчас (), Конечные скобки), Оператор И

г) Активно Истинно, Начальные скобки, Поле данных Users.UserName Условие равно, Из схемы < / strong> False, Значение 1 = [LoginTrace.Username], Конечные скобки, Оператор И

д) Активно ложно, Начальные скобки, Поле данных LoginTrace.Username Условие равно, Из схемы < / strong> False, Значение 1 = [EPEmployee.UserID], Конечные скобки, Оператор И

е) Активно Истинно, Начальные скобки ((, Поле данных Contact.ContactType Условие равно, От Схема FALSE, Значение 1 LD, Конечные скобки, Оператор или

g) Активно Истина, Начальные скобки, Поле данных Contact.ContactType Условие равно, Из схемы < / strong> FALSE, Значение 1 PN, Конечные скобки), Оператор И

g) Активно Истина, Начальные скобки, Поле данных Contact.Status Условие равно, Из схемы < / strong> True, Значение 1 преобразовано, Конечные скобки, Оператор или

h) Активно Истина, Начальные скобки, Поле данных Contact.Status Условие равно, Из схемы < / strong> True, Значение 1 открытое, Конечные скобки), Оператор Или

  1. На вкладке Группировка установите для Активно значение True, а для Поле данных - значение Contact.ContactID.

Порядок сортировки, сетка результатов и точка входа зависят от вас.

Примечания: Я обнаружил, что этот GI не прошел в другом запросе, где условие LoginTrace.ScreenID было пропущено. С левыми соединениями для внутренних соединений этого не пробовали, но должно было сработать.

person Gale    schedule 01.02.2016