Мне нужно использовать Атрибуты клиентов в Общий запрос. Я придумываю большинство своих общих запросов, начиная с необработанного SQL в Server Management Studio. Мне намного проще найти нужные мне данные таким способом. Тем не менее, мне очень трудно понять, как атрибуты привязаны к клиентам. Атрибуты добавляются к Класс клиента, а затем клиент связывается с классом клиента. Это позволяет изменять любые атрибуты, доступные для этого класса клиента, для клиента.
Используя базу данных, я обнаружил следующее:
- Отдельные объекты атрибутов хранятся в таблице
CSAttribute
- Параметры атрибутов (например, поле со списком) хранятся в таблице
CSAttributeDetail
. - Отдельные экземпляры каждого атрибута хранятся в
CSAnswers
таблице. - Существует также
CSAttributeGroup
таблица, которая, как мне кажется, связываетCSAttributeDetail
записей сCSAttribute
записями.
Итак, можно было бы ожидать, что таблица CSAnswers
будет иметь ссылку на клиента, к которому прикреплен ответ ... но это не так. Эта таблица определяется как:
- CompanyID (PK, int, не нуль)
- RefNoteID (PK, уникальный идентификатор, не ноль)
- AttributeID (PK, nvarchar (10), не нуль)
- Значение (nvarchar (255), null)
Чтобы добавить оскорбление к травме, имена таблиц в базе данных не всегда совпадают 1 к 1 с тем, что доступно в общем запросе. Например, многие поля, доступные ARInvoice
в GI, фактически хранятся в таблице ARRegister
в базе данных. Я подозреваю, что что-то очень похожее происходит с атрибутами.
Может ли кто-нибудь указать мне в правильном направлении определения того, как атрибуты связаны с клиентами как на уровне базы данных, так и на уровне GI?