SAP S4HANA 创建销售订单时,需要验证合作伙伴的相关信息(代收人、地址、联系人等信息)为必填项。
SO的常用验证增强在MV45AFZZ-USEREXIT_SAVE_DOCUMENT_PREPARE 中即可,但是在测试中发现一个问题。在MV45AFZZ中的XVBADR[]中没有代收人(name_co)字段,所以判断不了。经过dbug后发现在创建订单(交货单)、更改、显示时,都会去调用LSZA0F34取获取DB中的主数据相关信息,在合作伙伴更新时则会调用函数SD_PARTNER_ADDRESS_DIALOG去创建新的信息(写入adrc中)。所以综合这三个地方,做了一个内存传值的方式做这个增强,分别记录客户主数据原始信息、so创建时的新信息。最后在订单保存前检查一下即可(个人处理方式,各位大佬有其他地方增强希望指出)。代码及增强位置如下: