Мое требование - убедиться, что только основной товар и бесплатные товары могут очистить причину отклонения при выборе вместе, если не основной товар будет отклонен по причине отклонения бесплатного товара. Проблема в том, что программа SAP по умолчанию всегда перевешивает любые изменения, которые я делал Я нашел выход этого пользователя MV45AFZZ в FORM USEREXIT_MOVE_FIELD_TO_VBAK , но он не работает. Не могли бы вы помочь.
Мой код
FORM USEREXIT_MOVE_FIELD_TO_VBAK.
ENHANCEMENT 1 ZFREEBIES_REJ_CHECK_ON_CHANGE. "active version
DATA: lv_uepos TYPE vbap-uepos,
lv_abgru TYPE vbap-abgru,
lw_xvbap TYPE vbapvb.
LOOP at xvbap WHERE pstyv = 'TANN'.
READ TABLE xvbap INTO lw_xvbap WITH KEY posnr = xvbap-uepos.
IF sy-subrc EQ 0.
xvbap-updkz = 'U'.
CLEAR xvbap-grpkz.
lv_uepos = xvbap-uepos.
IF ( lw_xvbap-abgru ne xvbap-abgru AND xvbap-abgru NE '' ).
CASE xvbap-vbeln.
WHEN ''.
MODIFY xvbap TRANSPORTING abgru grpkz WHERE posnr = xvbap-posnr.
MODIFY xvbap TRANSPORTING abgru grpkz WHERE posnr = lv_uepos.
WHEN OTHERS.
MODIFY xvbap TRANSPORTING abgru updkz grpkz WHERE posnr = xvbap-posnr.
MODIFY xvbap TRANSPORTING abgru updkz grpkz WHERE posnr = lv_uepos.
ENDCASE.
ENDIF.
ENDIF.
ENDLOOP.
ENDENHANCEMENT.
ENDFORM.
Рисунок
Initial Value :
main item = Rejected
free goods = Rejected.
User Change:
Main Item = Cleared.
Free goods = Rejected.
Sap Result:
Main Item = Cleared
Free Goods = Cleared.
Expected Result :
Main Item = Rejected
Free Goods = Rejected