Acumatica 的新手在这里。我已经对我们的系统进行了少量定制,现在正潜入添加定制数据字段。
我的目标是将 Acumatica 中的硬件发货信息同步到我们的旧(过时和专有)硬件管理系统中,因为我们暂时需要继续使用该系统进行保修计算。我计划最终将其构建到 Acumatica 中。
我当前的问题是,我需要一种将客户位置与旧系统中的客户位置相关联的方法。添加字段DCL_ID
很容易按照添加自定义数据字段文档完成。我通过设置使该列成为必需
[PXDefault]
[PXUIField(DisplayName="DCL Account ID", Required = true)]
到这里概述的数据访问类的属性部分。然后我使用Layout Editor将该字段添加到我的表单中。
在这一点上,一切似乎都很好。该字段在 UI 中显示一个星号,并验证是否提供了一个值。然后我意识到Customer Locations不是唯一使用的地方- Account LocationsCR.Location
也使用它。进行一些挖掘后,我发现Account Locations可以包含比Customer Locations更多的帐户类型。我只需要Customer Locations需要此属性。因此,我选择使用To Make a Field Mandatory on the Graph Level。
这是我的CustomerLocationMaint
代码:
using System;
using PX.Data;
using PX.Objects.CR;
using System.Collections.Generic;
using PX.Objects;
using PX.Objects.AR;
namespace PX.Objects.AR
{
public class CustomerLocationMaint_Extension : PXGraphExtension<CustomerLocationMaint>
{
#region Event Handlers
[PXDefault]
[PXCustomizeBaseAttribute(typeof(PXUIFieldAttribute), "Required", true)]
protected virtual void SelectedCustomerLocation_UsrDCL_ID_CacheAttached(PXCache cache)
{
}
#endregion
}
}
保存并发布自定义项后,该字段不再作为必填字段,就像我在 DAC 级别定义要求时那样。
那么,我做错了什么?我已经多次阅读并重新阅读文档,但找不到我的错误。