自从 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
}
我在我的自定义项目中对 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
}