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

如何在GeneXus中自定义「外键未找到」错误提示信息

自定义外键缺失错误提示的参数(替换属性名为描述)

核心问题原因

系统自带的外键必填验证会优先于你编写的自定义Error代码执行,所以你的提示会被默认提示覆盖。解决思路是先禁用自动验证,再手动实现带属性描述的提示,或者直接修改系统验证的参数映射。

方案1:禁用自动验证+自定义提示(推荐)

  1. 关闭外键的自动必填验证
    打开Transaction中OTESCLI属性的配置面板,找到「约束(Constraints)」或「验证(Validation)」区域,取消勾选「必填(Required)」或「自动外键验证(Automatic Foreign Key Validation)」选项(具体选项名称依GeneXus版本略有不同)。

  2. 添加自定义验证逻辑
    在Transaction的「Before Save」事件中编写验证代码,直接使用属性描述作为提示内容:

    If OTESCLI.IsEmpty()
        // 直接写固定提示
        Error('Customer Required')
        // 或者用字典标签+属性描述(适配多语言)
        // Error(Translate('%1 Required', &OTESCLI.Description))
    EndIf
    

    如果用字典标签的方式,需要先在字典中定义%1 Required条目,这样能自动适配多语言场景,参数&OTESCLI.Description会自动替换为属性的描述文本(Cliente/Customer)。

方案2:修改系统验证的参数映射

如果不想禁用自动验证,可直接修改系统外键验证的错误提示参数:

  1. 在Transaction的「验证规则(Validation Rules)」列表中,找到对应OTESCLI外键的必填验证规则。
  2. 编辑该规则的错误提示,将原本默认传入的「属性名」参数替换为「属性描述」。具体操作是在提示模板中,把引用属性名的变量换成&OTESCLI.Description,这样系统触发提示时就会显示描述而非属性名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:42:03