通用查询访问客户属性

时间:2018-05-15 21:17:09

标签: sql attributes acumatica customer

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

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

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

因此,人们希望CSAnswers表能够引用答案附加到的客户......但事实并非如此。该表定义为:

  • CompanyID(PK,int,not null)
  • RefNoteID(PK,uniqueidentifier,not null)
  • AttributeID(PK,nvarchar(10),not null)
  • 值(nvarchar(255),null)

为了增加伤害,数据库中的表名并不总是与通用查询中的可用对齐方式一对一。例如,GI中ARInvoice可用的许多字段实际存储在数据库的ARRegister表中。我怀疑属性的内容非常相似。

有人能指出我在数据库级别和地理标志级别找到属性如何与客户关联的正确方向吗?

2 个答案:

答案 0 :(得分:1)

我使用客户属性制作了许多地理标志,CSAnswers表中的RefNoteID uniqueidentifier与Customer表上的NoteID uniqueidentifier相关,而AttributeID是特定的属性。要为多个行上的客户获取所有属性,只需加入RefNoteID,如果您需要特定属性,请为每个AttributeID添加其他连接条件。 enter image description here

答案 1 :(得分:1)

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

Attributes fields for BAccount table

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