Hi,
I am writing a userexit for PO check in VA01 & VA02 trx.The PO number should be unique.If we enters the existing PO number it should go to Incompletion log.I am calling check_po_number form in userexit_save_document in mv45afzz. it is not working....
what is wrong in my code?
Thanks in advance,
fractal.
FORM CHECK_PO_NUMBER.
DATA : begin of ivbkd occurs 0,
vbeln like vbkd-vbeln,
end of ivbkd.
Select DISTINCT vbeln into table ivbkd from vbkd
where bstkd = vbak-bstnk.
Select * from vbak up to 1 rows
for all entries in ivbkd
where vbeln = ivbkd-vbeln and
kunnr = vbak-kunnr.
endselect.
if sy-subrc = 0.
perform set_so_incompletion_log using 'PONM'.
else.
perform reset_so_incompletion_log using 'PONM'.
endif.
ENDFORM.
FORM set_so_incompletion_log using value(logid) type c.
case logid.
when 'PONM'.
read table xvbuv with key
vbeln = xvbak-vbeln
tdid = 'Z026'.
if sy-subrc <> 0.
XVBUV-MANDT = SY-MANDT.
XVBUV-VBELN = XVBAK-VBELN.
XVBUV-POSNR = '000000'.
XVBUV-ETENR = '0000'.
XVBUV-PARVW = ''.
XVBUV-TDID = 'Z026'.
XVBUV-TBNAM = 'FTEXT'.
XVBUV-FDNAM = 'LTEXT'.
XVBUV-FEHGR = '50'.
XVBUV-STATG = '02'.
XVBUV-UPDKZ = ''.
XVBUV-FCODE = 'KTEX_SUB'.
XVBUV-MSGKZ = ''.
XVBUV-SORTF = '9999'.
XVBUV-LFDNR = '0000'.
APPEND XVBUV.
endif.
ENDFORM.
FORM reset_so_incompletion_log using value(logid) type c.
case logid.
WHEN 'PONM'.
delete xvbuv
where vbeln = vbak-vbeln
and tdid = 'Z026'.
WHEN OTHERS.
endcase.
ENDFORM.