在企业帐户屏幕上添加主要联系人的验证

问题描述 投票:0回答:1

我们希望为 RowPersisting 添加验证到企业帐户 (CR303000),以仔细检查用户是否输入了主要联系人的电子邮件地址。

虽然我不知道如何清楚地获取主要联系人的信息

我看到基础图参考了:

Base.GetExtension<PrimaryContactGraphExt>().PrimaryContactCurrent

但是 Graph Extension 似乎并不知道这一点。

如果有人知道在保存企业帐户之前验证设置的电子邮件地址的最佳方法是什么,我很想听听一些见解。

customization acumatica
1个回答
0
投票

您需要扩展 PrimartContactGraphExt,并在那里实施您的检查。

using PX.Data;
using PX.Objects.CR;

namespace StackOverFlowDemo
{
    // Acuminator disable once PX1016 ExtensionDoesNotDeclareIsActiveMethod extension should be constantly active
    public class PrimaryContactGraphExtExt : PXGraphExtension<BusinessAccountMaint.PrimaryContactGraphExt, BusinessAccountMaint>
    {
        protected virtual void _(Events.RowPersisting<Contact> e)
        {
            if (e.Row?.IsPrimary != true) return;

            if (e.Row.EMail == null)
            {
                // Acuminator disable once PX1050 HardcodedStringInLocalizationMethod [Justification]
                e.Cache.RaiseExceptionHandling<Contact.eMail>(e.Row, e.Row.EMail,
                    new PXSetPropertyException<Contact.eMail>("Email address must not be empty for primary contacts.", PXErrorLevel.RowError));
            }
        }  
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.