微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不再定义2020R2 CustomerMaint视图

如何解决不再定义2020R2 CustomerMaint视图

我有一个针对Acumatica 2020R2进行升级自定义项,该自定义项通过CustomerMaint图实例与客户进行了各种工作。

从2020R2开始,看来各种视图的实现方式均已更改。在屏幕上的控件上执行“检查元素”仍指示相同的视图名称,但查看CodeRepository \ CustomerMaint.cs,尚不清楚如何实现这些视图。

'CustomerMaint' does not contain a deFinition for 'Contacts' ...
'CustomerMaint' does not contain a deFinition for 'DefContact' ...
'CustomerMaint' does not contain a deFinition for 'Addresses' ...
'CustomerMaint' does not contain a deFinition for 'DefAddress' ...
'CustomerMaint' does not contain a deFinition for 'DefLocation' ...
'CustomerMaint' does not contain a deFinition for 'DefLocationContact' ...

如何在2020R2中访问这些视图和DAC对象?

解决方法

在2020 R2之前的Acumatica版本中,CustomerMaint继承自BusinessAccountGraphBase。从2020 R2开始,它直接从PXGraph派生,支持客户维护所需的许多共享视图已移至扩展名,这些扩展名已映射到图的属性,例如DefContactAddressExt,DefLocationExt,ContactDetailsExt,LocationDetailsExt。 >

这些扩展公开了您所需的视图。下面是一个如何从图形扩展中检索当前地址的示例:

var ext = Base.GetExtension<DefContactAddressExt>;
var address = ext.DefAddress.Current
,

接受的答案对我不起作用,但是通过使用外键API(在18R1 +中可用),这变得非常容易:

Contact defContact = Customer.FK.ContactInfo.FindParent(Base,Base.CurrentCustomer.Current);

Address defAddress = Customer.FK.Address.FindParent(Base,Base.CurrentCustomer.Current);

Location defLocation = Customer.FK.DefaultLocation.FindParent(Base,Base.CurrentCustomer.Current);

Contact defLocContact = Location.FK.ContactInfo.FindParent(Base,defLocation);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。