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

PX Selector验证阶段出现异常问题排查

Acumatica 选择特定选项时触发"Origine cannot be found in the system"错误的处理

问题场景

自定义Originelist字段时使用以下代码,当选择"Boutique""Email""telephone"选项时,系统弹出错误提示"Origine cannot be found in the system",但选择WeChat、WhatsApp等选项时功能正常。

字段定义代码

public class CRMORI: PX.Data.Constant<string>
{
    public CRMORI() : base("CRMORI") { }
}  

#region Originelist
[PXDBString(20, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Origine")]
[PXSelector(typeof(CSAttributeDetail.valueID),typeof(CSAttributeDetail.description),DescriptionField = typeof(CSAttributeDetail.description),SubstituteKey = typeof(CSAttributeDetail.description),ValidateValue = true)]            
[PXRestrictor(typeof(Where<CSAttributeDetail.attributeID, Equal<CRMORI>>),null)]      
[PXCustomizeSelectorColumns(typeof(CSAttributeDetail.attributeID),typeof(CSAttributeDetail.description))]        
public virtual string Originelist { get; set; }
public abstract class originelist : PX.Data.BQL.BqlString.Field<originelist> { }
#endregion

排查方向与解决步骤

  1. 校验属性关联关系
    直接查询CSAttributeDetail表,筛选attributeID = 'CRMORI',确认"Boutique""Email""telephone"对应的记录是否存在,且attributeID字段值与代码中CRMORI常量完全一致(注意大小写、空格等细节,Acumatica数据库查询默认区分大小写)。

  2. 检查选择器校验逻辑
    代码中PXSelector设置了ValidateValue = true,会严格校验选中值是否在查询结果集中。如果这几个选项的valueID/description存在特殊字符、数据被误删或未同步,会触发校验失败。可临时注释该属性测试,若不再报错,说明是数据与校验逻辑不匹配,需调整数据或校验规则。

  3. 排查自定义逻辑干扰
    检查是否有其他自定义代码、插件或扩展修改了CSAttributeDetail的查询范围,比如额外的PXRestrictor或过滤条件,导致这几个选项被排除在选择器结果之外。

  4. 修复数据或代码匹配问题

    • 若数据库中attributeID与代码常量不匹配,统一修改代码常量或数据库字段值,确保两者完全一致。
    • 若数据缺失,重新添加对应的CSAttributeDetail记录,关联到CRMORI属性下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:02:20