You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Generic Inquiry中关联Customer Attributes?数据库与GI解析

理清Acumatica中客户与属性的关联(数据库+GI层面)

我正好熟悉Acumatica的这套属性机制,给你拆解清楚:

一、数据库层面的关联逻辑

你已经找对了核心表:CSAttribute(属性定义)、CSAttributeDetail(属性选项)、CSAnswers(属性实例值),现在卡壳的CSAnswers.RefNoteID其实关联的是客户的主记录ID——但这里要注意:Acumatica里客户(Customer)的底层数据存在BAccount表(因为客户、供应商、员工等都属于业务账户,用Type字段区分,客户的Type是CU),BAccount.NoteID就是CSAnswers.RefNoteID对应的字段。

完整的关联链是:

  • BAccount(筛选Type='CU'得到客户) → CSAnswers(通过NoteID = RefNoteID)
  • CSAnswers → CSAttribute(通过AttributeID)
  • CSAttribute → CSAttributeDetail(通过AttributeID,如果是下拉/枚举类属性,还需要用CSAnswers.Value = CSAttributeDetail.Value关联选项描述)

给你一个实用的SQL查询示例,用来提取客户及其属性值:

SELECT
    b.AccountID AS CustomerID,
    b.AcctName AS CustomerName,
    cs.AttributeID,
    a.Descr AS AttributeDescription,
    cs.Value AS AttributeValue,
    ISNULL(csd.Description, cs.Value) AS AttributeDisplayValue
FROM
    BAccount b
INNER JOIN
    CSAnswers cs ON b.NoteID = cs.RefNoteID AND b.CompanyID = cs.CompanyID
INNER JOIN
    CSAttribute a ON cs.AttributeID = a.AttributeID AND cs.CompanyID = a.CompanyID
LEFT JOIN
    CSAttributeDetail csd ON cs.AttributeID = csd.AttributeID 
                          AND cs.Value = csd.Value 
                          AND cs.CompanyID = csd.CompanyID
WHERE
    b.Type = 'CU' -- 仅筛选客户
    AND b.CompanyID = 1 -- 替换为你的公司ID
ORDER BY
    b.AcctName, a.Descr

二、Generic Inquiry(GI)层面的配置方法

GI里的表很多是DAC(数据访问类)对应的视图,不是直接映射底层表,比如你提到的ARInvoice其实是合并了ARRegister和ARInvoice数据的视图,客户属性的配置也遵循这个逻辑:

  1. 添加基础表:在GI的Data Sources里添加Customer表(这个视图已经自动筛选了BAccount.Type='CU',不用自己写条件)
  2. 关联属性实例表:添加CSAnswers表,设置关联条件:Customer.NoteID = CSAnswers.RefNoteID,同时匹配CompanyID(多租户环境必须)
  3. 关联属性定义表:添加CSAttribute表,设置关联条件:CSAnswers.AttributeID = CSAttribute.AttributeID
  4. 关联属性选项表(可选):如果属性是下拉/枚举类型,需要显示选项的友好名称,添加CSAttributeDetail表,设置两个关联条件:CSAttribute.AttributeID = CSAttributeDetail.AttributeID 和 CSAnswers.Value = CSAttributeDetail.Value
  5. 选择字段:在Results Grid里添加你需要的字段,比如Customer.AcctName、CSAttribute.Descr、CSAnswers.Value、CSAttributeDetail.Description等

这样配置后,GI就能正确展示每个客户的所有属性值了。

补充说明

Acumatica的属性系统是通用的,不仅客户,其他实体(如供应商、库存、订单)的属性都遵循类似的逻辑:实体主表的NoteID关联CSAnswers.RefNoteID,再通过AttributeID关联属性定义和选项。

内容的提问来源于stack exchange,提问作者Aaron St Clair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:08:46