点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我在更新文档地址时遇到问题。
我需要做什么:
我需要确保在生成单据(例如销售订单,客户发票,客户发票申请)时,对发件人-收件地址进行验证。 验证过程返回一个有效地址,我的计划是在运行时修复无效地址,以保存正确的地址。
我知道AddressSnapshot对象一旦保存便是只读的,所以我的计划是在保存AddressSnapshot之前进行此更改。 但是,尽管ABSL允许我更新"地址"字段。 更改永远不会保存!!!
具体来说,我需要能够更改诸如邮政编码/地区/城市名称的值。
我尝试过的事情:
我尝试将代码放入扩展对象AddressSnapshot的所有事件中
- 节点根:AfterModify,BeforeSave
- 节点邮政地址:AfterModify,BeforeSave
- 节点格式的地址:AfterModify,BeforeSave
我还尝试将代码放置在扩展对象业务合作伙伴的BeforeSave事件中。
在所有情况下,正如我之前提到的,即使我能够在保存对象之前修改值。 如果我查看实际保存的对象,就看不到所做的更改(我看到的是旧值)。
我还尝试对使用该地址的文档的OnSave事件进行验证,并且看到一条消息,指出AddressSnapshot已保存。 我了解这一点,但是,至少有什么方法可以生成一个新的AddressSnapshot吗?
我的最终测试包括一个放置在自定义对象动作中的过程。 我检索了整个业务合作伙伴,然后验证了地址,但是同样,我无法保存所做的更改。
有没有办法做到这一点?
先谢谢了。
Hello Hector,
我设法使用下面的代码在 AP.CRM.Global:SalesOrder
的 before.save 上更新了BP地址。请注意,这是一个快速测试,我得到的第一条记录只是为了向您展示如何到达那里。
我添加了新的SO,并更新了BP的地址:
但是,SO快照仍然保留了旧的地址信息-您现在可以考虑如何使用更新的地址来更新最近创建的SO。
HTH,
Thiago。
非常感谢Thiago。
它就像一种魅力。
我能够在BusinessPartner对象的根节点的BeforeSave事件中放置相同的代码
亲切的问候!
赫克托,
肯定发件人地址和发件人地址来自相关各方,因此始终有效吗? 如果要更改地址,则可能应该只更新各个业务伙伴/客户/合作伙伴,而不要尝试在订单本身中设置地址。
刘易斯
谢谢刘易斯的回应。
我们假定外部生物具有所有有效地址。
我也尝试过更新业务合作伙伴级别的地址,但是效果不佳。 虽然我可以修改这些值,但是通过代码ABSL执行的更新不会保存!
例如,如果我将"更改地址"代码放在BusinessPartner地址的BeforeSave事件中。 地址已更新,但是,当我检索BP时,我的更改不在那里。
一周热门 更多>