我正在尝试将Acumatica 2017 R2中的相同自定义字段添加到 both 位置屏幕(AR303020)和客户(AR303000)屏幕 . 在"Customers > Delivery Settings"标签上找到了其他原生字段,它们展示了我正在尝试匹配的行为 . (示例:税务登记ID,税区等)可以从“客户”屏幕或“位置”屏幕查看/编辑这些字段 .
使用Customization Project浏览器,我可以轻松地将该字段添加到Location屏幕 .
接下来,我想在“客户>交付设置”选项卡>“默认位置设置”组中添加一个新的自定义字段,该字段使用与添加到“位置”屏幕的自定义字段相同的DAC .
但我不确定如何为Customers屏幕正确定义相同的字段 . 默认情况下,自定义浏览器会向CR.Address DAC添加自定义字段 . 我尝试使用此定义创建一个新的CR.Address字段:
发布期间没有错误,但Acumatica不会加载客户或位置屏幕 . 错误是“无效的列名称'UsrCertificateDate” . 我故意没有将UsrCertificateDate的列添加到CRAddress数据库表中,因为该列以前已添加到Location表中 . 如果只需要一个数据库字段,我宁愿不维护两个数据库字段 .
如何在这两个屏幕上自定义字段一起工作?从“客户”屏幕编辑默认位置时,应从“位置”屏幕查看位置时更改值,反之亦然 .
1 回答
首先,您应该考虑DAC位置和地址的声明:
地点:
地址:
从声明中可以看出,它们都实现了IBqlTable,因此它意味着位置和地址在Acumatica中作为独立的实体存在 . 在您的数据库中的sql之后将向您显示两个表都有自己的生命:
你会看到不同的输出 . 这也意味着您不能对同一个表使用一个DAC扩展,但您需要扩展 . 此外,您还需要为Location和Address表添加两列 .
还有一点要注意,DAC之间存在差异,即CR.Address和CRAddress .
看一下CRAddress声明:
从声明中可以看出,实体CRAddress是第三个表 . 如果要假设所有这些,您要么将相同的列两次添加到位置和地址DAC扩展,或者作为另一个选项,您可以创建表证书日期,其中将认证日期作为列之一,并且在两个扩展中都具有ID用于CertificationDates作为外键 .