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

使用PXCustomizeSelectorColumns添加属性字段报错:COLOR_Attributes不存在于InventoryItem

PXCustomizeSelectorColumns添加属性字段失败的解决办法

问题根源

Acumatica里,COLOR这类库存属性不是InventoryItem的直接成员字段,而是存储在属性值关联表(比如CSAttributeValue)中,所以直接写InventoryItem.COLOR_Attributes会报类型不存在的错误。

正确实现方式

1. 引用属性值字段

属性值需要通过CSAttributeValue DAC来引用,同时要确保Selector的数据源已经关联该表,保证字段能被查询到。修改后的代码示例:

[PXCustomizeSelectorColumns(
    typeof(PX.Objects.IN.InventoryItem.inventoryCD),
    typeof(PX.Objects.IN.InventoryItem.descr),
    typeof(PX.Objects.CS.CSAttributeValue.value), // 属性值字段
    typeof(PX.Objects.IN.InventoryItemExt.usrCategorie))]

2. 限定具体属性(可选)

如果要指定只显示COLOR属性的值,需要在Selector的查询逻辑里添加筛选,通过LeftJoin关联CSAttributeValue并限定attributeID = "COLOR":

[PXSelector(
    typeof(Search<InventoryItem.inventoryID,
        LeftJoin<CSAttributeValue, 
            On<CSAttributeValue.entityID, Equal<InventoryItem.inventoryID>,
            And<CSAttributeValue.attributeID, Equal<"COLOR">>>>>),
    typeof(InventoryItem.inventoryCD),
    typeof(InventoryItem.descr),
    typeof(CSAttributeValue.value),
    typeof(InventoryItemExt.usrCategorie))]

之后再用PXCustomizeSelectorColumns调整显示列即可。

3. 核心注意点

  • 动态属性(如COLOR)存储在独立的属性值表中,无法直接通过InventoryItem访问。
  • PXCustomizeSelectorColumns添加的字段,必须是Selector数据源中已包含的字段,否则会报错。

内容的提问来源于stack exchange,提问作者Xavier LARTEM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:50:22