一、问题描述
项目中,调研阶段说标准订单不允许出现零金额订单,因此将净价配置成不完整校验,但是在系统运行一段时间后,出现新增买赠业务,需要在标准订单中下零金额行,因此修改了SAP销售凭证不完整日志配置,造成销售订单打开时,报错如下:
原配置
去掉净值后的配置
二、解决方法
猜测是由于订单创建时系统配置有净价,而后续修改了不完整过程Y1,系统校验不完整日志时,在Y1中无法找到净价字段,所以报错“域VBAP NETWR在未完成过程Y1中没有被定义”。
由于是对系统配置变更造成的报错,因此需要对MV45AFZB进行了增强,以便在运行时在不完整日志(XVBUV内部表)中添加其他字段。 表单例程取决于字段。
要禁止VA02和VA03中的"未完成过程中未定义字段<>"消息,请在LV45FFUV中进行增强。
OVA2中不保留任何条目,所有检查都在运行时进行。
FORM USEREXIT_MOVE_FIELD_TO_COBL USING US_VBAK STRUCTURE VBAK
US_VBAP STRUCTURE VBAP
CHANGING CH_COBL STRUCTURE COBL.
- Examples
- CH_COBL-zzfield = US_VBAK-zzfield2.
- CH_COBL-zzfield = US_VBAP-zzfield2.
*{ INSERT S4DK903207 1
READ TABLE XVBUV[] WITH KEY TBNAM = ‘VBAP’ FDNAM = ‘NETWR’ FEHGR = ‘Y1’ TRANSPORTING NO FIELDS .
IF SY-SUBRC = 0 .
DELETE XVBUV[] WHERE TBNAM = ‘VBAP’ AND FDNAM = ‘NETWR’ AND FEHGR = ‘Y1’ .
ENDIF .
*} INSERT
ENDFORM.