我们希望为 RowPersisting 添加验证到企业帐户 (CR303000),以仔细检查用户是否输入了主要联系人的电子邮件地址。
虽然我不知道如何清楚地获取主要联系人的信息
我看到基础图参考了:
Base.GetExtension<PrimaryContactGraphExt>().PrimaryContactCurrent
但是 Graph Extension 似乎并不知道这一点。
如果有人知道在保存企业帐户之前验证设置的电子邮件地址的最佳方法是什么,我很想听听一些见解。
您需要扩展 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));
}
}
}
}