【问题标题】:Acumatica - Require Field in Setup Extension to be Not NullAcumatica - 要求设置扩展中的字段不为空
【发布时间】:2021-07-04 16:09:09
【问题描述】:

我有一个设置 DAC 扩展,它定义了 SOOrder 字段的默认值。在用户可以使用销售订单表单之前,我需要此字段不为空。我知道如何使用 DAC 上的 PXPrimaryGraphAttribute 使用自定义设置 DAC 来完成此操作,但我不确定如何使用 DAC 扩展来完成此操作。当我的自定义设置字段为空时,我想让销售订单表单看起来像这样:

这是我的 DAC 扩展:

    public sealed class SOSetupExt : PXCacheExtension<SOSetup>
    {
        [SalesPerson(DisplayName = "Enabled Default Salesperson", Required = true)]
        public int? UsrEnabledDefaultSalesperson { get; set; }
        public abstract class usrEnabledDefaultSalesperson : PX.Data.BQL.BqlInt.Field<usrEnabledDefaultSalesperson> { }
    }

【问题讨论】:

    标签: acumatica data-access


    【解决方案1】:

    使用图形扩展事件处理程序验证字段并抛出PXSetupNotEnteredException 异常:

    throw new PXSetupNotEnteredException(ErrorMessages.SetupNotEntered, typeof(SOSetup), typeof(SOSetup).Name);
    

    【讨论】:

    • 这会正确抛出错误,但是如何使链接导航到“销售订单首选项”表单?现在,当我点击它时,它会导航回“销售订单”表单。
    • 您可以尝试实例化 SOSetupMaint 图,然后在参数中使用该图对象抛出 PXRedirectRequiredException。
    • 我已经尝试过这种方法,但是您不能在事件处理程序中创建图形实例。
    • 创建图实例应该在这种情况下工作:PXGraph.CreateInstance()
    • 这会导致 Acuminator 错误 - PX1045:无法在事件处理程序中创建 PXGraph 实例
    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2018-06-26
    • 1970-01-01
    • 2020-06-26
    • 2021-12-12
    • 1970-01-01
    相关资源
    最近更新 更多