自从 6.10 或 2017R2 升级到 2018R1 后,CROpportunity 上的自定义字段不显示保存的值

Custom field on CROpportunity doesn't display saved value since upgrading from 6.10 or 2017R2 to 2018R1

我在我的自定义项目中对 CROpportunity 进行了 DAC 扩展,该扩展在 6.10 和 2017R2 中运行良好。现在我将我的网站升级到 2018R1,我的自定义字段不再有效。一旦我保存记录,即使数据库正确保存了值,自定义字段也会变为空白。

为什么会这样?

在2018R1版本中,PX.Objects.CR.CROpportunity变成了PX.Objects.CR.Standalone.CROpportunity的投影。

为了投影正确获取其自定义字段值,您还需要自定义 Standalone DAC 并将 PX.Objects.CR.CROpportunity 指向的 BQL 字段设置为 PX.Objects.CR.Standalone.CROpportunity

这是一个例子:

public class CROpportunityExt : PXCacheExtension<PX.Objects.CR.CROpportunity> 
{
    #region UsrTest
    [PXDBDecimal(BqlField = typeof(CROpportunityStandaloneExt.usrTest))]
    [PXUIField(DisplayName="Test Field")]

    public virtual Decimal? UsrTest { get; set; }
    public abstract class usrTest : IBqlField { }
    #endregion
}

public class CROpportunityStandaloneExt : PXCacheExtension<PX.Objects.CR.Standalone.CROpportunity>
{
    #region UsrTest
    [PXDBDecimal]
    [PXUIField(DisplayName="Test Field")]

    public virtual Decimal? UsrTest { get; set; }
    public abstract class usrTest : IBqlField { }
    #endregion
}