0

我需要在通用查询中利用客户属性。我从 Server Management Studio 中的原始 SQL 开始设计我的大多数通用查询。我发现以这种方式定位我需要的数据要容易得多。但是,我很难弄清楚属性如何与客户联系在一起。属性被添加到客户类,然后客户与客户类相关联。这允许客户可以修改该客户类可用的任何属性。

使用数据库,我发现以下内容:

  • 单独的 Attribute 对象存储在CSAttribute表中
  • 属性的选项(例如组合框)存储在CSAttributeDetail表中
  • 每个属性的单独实例存储在CSAnswers表中
  • 还有一个CSAttributeGroup表,我相信它会将CSAttributeDetail记录与CSAttribute记录相关联。

因此,人们会期望该CSAnswers表对答案所附的客户有参考……但事实并非如此。该表定义为:

  • CompanyID (PK, int, not null)
  • RefNoteID(PK,唯一标识符,不为空)
  • AttributeID(PK,nvarchar(10),不为空)
  • 值(nvarchar(255),空)

雪上加霜的是,数据库中的表名并不总是与通用查询中可用的内容一一对应。例如,ARInvoiceGI 中可用的许多字段实际上存储在ARRegister数据库的表中。我怀疑属性正在发生非常相似的事情。

谁能指出我在数据库级别和 GI 级别定位属性如何与客户相关联的正确方向?

4

2 回答 2

4

属性通过 RefNoteID 字段链接到记录;它将与另一条记录的 NoteID 匹配(请注意,在您的情况下,它不会在客户表中,而是在 BAccount 中,这是与客户的 1:1 联接)。如果有的话,您应该很少需要直接引用 CSAnswers 表。在内部,Acumatica 将在主表中生成一组与属性名称匹配的虚拟字段,后缀为 _Attributes:

BAccount 表的属性字段

请注意,您将无法在“条件”选项卡中引用该属性,但是您可以按网格中的此列进行过滤并创建预定义的过滤器。

于 2018-05-16T13:18:17.933 回答
1

我使用客户属性制作了许多 GI,CSAnswers 表中的 RefNoteID 唯一标识符与客户表中的 NoteID 唯一标识符相关,而 AttributeID 是特定的属性。要获取多行上客户的所有属性,只需在 RefNoteID 上加入,如果您想要特定的属性,请为每个 AttributeID 添加额外的加入条件。在此处输入图像描述

于 2018-05-15T22:18:54.207 回答