You are on page 1of 2

Sales BOM validation in sales order

Include: MV45AFZZ

Exit: USEREXIT_SAVE_DOCUMENT_PREPARE

DATA:gt_stb type TABLE OF STPOX,


gs_stb type stpox,
lv_ABLFZ TYPE vbap-ABLFZ.
sort xvbap by vbeln posnr ASCENDING.
DATA(zxvbap) = xvbap[].
LOOP AT xvbap into data(gs_xvbap) WHERE pstyv = 'ZTAP' and abgru IS INITIAL.
READ TABLE zxvbap TRANSPORTING NO FIELDS with key vbeln = gs_xvbap-vbeln
uepos = gs_xvbap-posnr
BINARY SEARCH.
IF sy-subrc = 0.
loop at zxvbap INTO DATA(gs_zxvbap) FROM sy-tabix.
lv_ABLFZ = gs_xvbap-kwmeng."gs_zxvbap-kwmeng.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'SD01'
DATUV = xvbak-audat"00000000
EMENG = lv_ABLFZ"gs_zxvbap-kwmeng
MTNRV = gs_xvbap-matnr"gs_zxvbap-matnr
STLAL = '01'
STLAN = '5'
SVWVO = 'X'
WERKS = gs_xvbap-werks"gs_zxvbap-werks
TABLES
stb = gt_stb
EXCEPTIONS
ALT_NOT_FOUND =1
CALL_INVALID =2
MATERIAL_NOT_FOUND =3
MISSING_AUTHORIZATION =4
NO_BOM_FOUND =5
NO_PLANT_DATA =6
NO_SUITABLE_BOM_FOUND =7
CONVERSION_ERROR =8
OTHERS =9
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE gt_stb into gs_stb WITH key idnrk = gs_zxvbap-matnr.
IF sy-subrc = 0 and gs_zxvbap-kwmeng <> gs_stb-mnglg.
MESSAGE e001(ZSD) with GS_ZXVBAP-KWMENG GS_STB-mnglg GS_STB-IDNRK GS_XVBAP-
POSNR.
ENDIF.
CLEAR:gs_zxvbap.
ENDLOOP.
ENDIF.
CLEAR:lv_ABLFZ,gs_xvbap.
ENDLOOP.

You might also like