hi,
how can i get the no. of goods successfully posted. and the no. of failed goods movement.
Even though there are numerous postings on the BAPI itself but I could not find something relevant to this issue.
here is my code.
data: rno type rkpf-rsnum,
itno type rkpf-kdpos.
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
module USER_COMMAND_0100 input.
if sy-ucomm = 'F4'.
perform check_screen_0100.
elseif sy-ucomm = 'F2'.
clear rno.
clear itno.
elseif sy-ucomm = 'F3'.
exit.
endif.
endmodule. " USER_COMMAND_0100 INPUT
&----
*& Form check_screen_0100
&----
text
----
--> p1 text
<-- p2 text
----
form check_screen_0100 .
select rsnum kdpos from rkpf into (rno,itno) where rsnum = rno and
kdpos = itno.
endselect.
if sy-subrc ne 0.
CALL FUNCTION 'CALL_MESSAGE_SCREEN'
EXPORTING
I_MSGID = 'ZDHRUV'
i_lang = 'E'
i_msgno = '001'
I_MSGV1 =
I_MSGV2 =
I_MSGV3 =
I_MSGV4 =
I_SEPERATE = ' '
I_CONDENSE = ' '
I_MESSAGE_SCREEN = '0999'
I_LINE_SIZE = 0
I_LINES = 0
I_NON_LMOB_ENVT = 'X'
I_MODPL =
IMPORTING
O_ANSWER =
TABLES
T_MSG_TEXT =
EXCEPTIONS
INVALID_MESSAGE1 = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
else.
types: begin of mblb,
rsnum like rkpf-rsnum,
kdpos like rkpf-kdpos,
kdauf like rkpf-kdauf,
end of mblb.
data: it_mblb type standard table of mblb,
wa_mblb type mblb.
move rno to wa_mblb-rsnum.
move itno to wa_mblb-kdpos.
append wa_mblb to it_mblb.
data : goodsmvt_header type bapi2017_gm_head_01 .
data : goodsmvt_code type bapi2017_gm_code .
*data : it_headret type bapi2017_gm_head_ret.
*data : materialdocument type bapi2017_gm_head_ret-mat_doc .
*data : matdocumentyear type bapi2017_gm_head_ret-doc_year .
data : goodsmvt_item type table of bapi2017_gm_item_create .
data : gw_goodsmvt_item type bapi2017_gm_item_create .
data : return type table of bapiret2 .
data : gw_return type bapiret2 .
*Fill Header Data
goodsmvt_header-pstng_date = sy-datum .
goodsmvt_header-doc_date = sy-datum .
*Fill Movement Code This you have to fill as per you requirement
goodsmvt_code = '04' .
loop at it_mblb into wa_mblb.
if wa_mblb-kdauf is not initial.
*select rsnum kdpos from rkpf into table goodsmvt_item.
move wa_mblb-rsnum to gw_goodsmvt_item-reserv_no.
move wa_mblb-kdpos to gw_goodsmvt_item-s_ord_item.
CHECK SY-SUBRC EQ 0.
gw_goodsmvt_item-MOVE_TYPE = '311+E'.
gw_goodsmvt_item-mvt_ind = ' '.
append gw_goodsmvt_item to goodsmvt_item.
*endif.
else.
select rsnum kdpos from rkpf into table goodsmvt_item.
CHECK SY-SUBRC EQ 0.
gw_goodsmvt_item-MOVE_TYPE = '311'.
gw_goodsmvt_item-mvt_ind = ' '.
append gw_goodsmvt_item to goodsmvt_item.
endif.
endloop.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = goodsmvt_header
GOODSMVT_CODE = goodsmvt_code
TESTRUN = ' '
GOODSMVT_REF_EWM =
IMPORTING
GOODSMVT_HEADRET = it_headret
MATERIALDOCUMENT = materialdocument
MATDOCUMENTYEAR = matdocumentyear
TABLES
GOODSMVT_ITEM = goodsmvt_item
GOODSMVT_SERIALNUMBER =
RETURN = return
GOODSMVT_SERV_PART_DATA =
EXTENSIONIN =
.
*if sy-subrc = 0.
*CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN =
.
*endif.
LOOP AT return into gw_return.
WRITE:/ gw_return-type, gw_return-id, gw_return-number,
gw_return-message.
ENDLOOP.
endif.
endform. " check_screen_0100