Доступ к атрибутам клиентов из общего запроса - PullRequest
0 голосов
/ 16 мая 2018

Мне нужно использовать Атрибуты клиента в Универсальном запросе .Я разрабатываю большинство моих общих запросов, начиная с необработанного SQL в Server Management Studio.Мне гораздо легче найти нужные мне данные таким образом.Тем не менее, я ужасно разбираюсь, как атрибуты связаны с клиентами.Атрибуты добавляются в класс клиента , а затем клиент связывается с классом клиента.Это позволяет любым атрибутам, доступным для этого класса клиента, быть изменяемыми для клиента.

Используя базу данных, я обнаружил следующее:

  • Отдельные объекты атрибутов хранятся в CSAttribute table
  • Опции для атрибутов (например, выпадающий список) хранятся в CSAttributeDetail таблице
  • Отдельные экземпляры каждого атрибута хранятся в CSAnswers таблице
  • Существует также таблица CSAttributeGroup, которая, как мне кажется, связывает CSAttributeDetail записей с CSAttribute записями.

Таким образом, можно ожидать, что таблица CSAnswers будет иметь ссылку на клиента.ответ прилагается ... но это не так.Эта таблица определяется как:

  • CompanyID (PK, int, не нуль)
  • RefNoteID (PK, уникальный идентификатор, не ноль)
  • AttributeID (PK, nvarchar(10), не нуль)
  • Значение (nvarchar (255), ноль)

Чтобы добавить оскорбление в травму, имена таблиц в базе данных не всегда выравниваются 1 к1 к тому, что доступно в общем запросе.Например, многие поля, доступные для ARInvoice в GI, фактически хранятся в таблице ARRegister в базе данных.Я подозреваю, что что-то очень похожее происходит с Атрибутами.

Может ли кто-нибудь указать мне правильное направление определения связи Атрибутов с Клиентами как на уровне базы данных, так и на уровне GI?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Атрибуты связаны с записью с полем RefNoteID;он будет совпадать с NoteID другой записи (обратите внимание, что в вашем случае он будет не в таблице «Клиенты», а в «BAccount», то есть объединении 1: 1 с клиентами).Вы должны редко, если вообще когда-либо, напрямую ссылаться на таблицу CSAnswers.Внутри Acumatica создаст набор виртуальных полей в первичной таблице, которые соответствуют имени атрибута с суффиксом _Attributes:

Attributes fields for BAccount table

Обратите внимание, чтоВы не сможете ссылаться на атрибут на вкладке «Условия», однако вы можете фильтровать по этому столбцу в сетке и создавать предопределенные фильтры.

0 голосов
/ 16 мая 2018

Я сделал несколько GI, использующих атрибуты клиентов, уникальный идентификатор RefNoteID в таблице CSAnswers относится к уникальному идентификатору NoteID в таблице клиентов, а идентификатор атрибута - это конкретный атрибут.Чтобы получить все атрибуты для клиента в нескольких строках, объедините только RefNoteID, если вы хотите, чтобы определенные атрибуты добавили дополнительные условия соединения для каждого AttributeID.enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...