‎2007 Jul 05 7:04 AM
Hi All,
I am facing a strange problem while using BAPI_REQUIREMENTS_CREATE in my program.when the program is run several times this BAPI creates a requirment in MD04 alternately..i.e., it creates a requirment in MD04 first time but it deletes the same entry when it is run next time..plz let me know what could be the problem
Thanks,
Rakesh.
‎2007 Jul 05 11:09 AM
Hi,
REPORT ZTY_MM_BAPI_REQUIREMENTS .
*bapi data
data: req_item like BAPISITEMR.
data: req_data like BAPISSHDIN occurs 0 with header line.
data: RETURN LIKE BAPIRETURN1 OCCURS 0 WITH HEADER LINE.
data: matertemp like BAPISITEMR-MATERIAL.
data: begin of wa_itab,
index type i,
matnr like BAPISITEMR-MATERIAL,
REQ_QTY like BAPISSHDIN-REQ_QTY,
end of wa_itab.
data: itab like wa_itab occurs 0 with header line.
data: matemp like BAPISITEMR-MATERIAL.
data: begin of log occurs 0,
index type i,
MESSAGE like return-message,
end of log.
SELECTION-SCREEN: BEGIN OF BLOCK FRAME01
WITH FRAME TITLE Text-001.
parameters: p_number like pbpt-pbdnr obligatory.
parameters: p_today like sy-datum obligatory.
parameters: TXTFILE like rlgrap-filename default
'c:\material.txt' obligatory.
parameters: logfile like rlgrap-filename default
'c:\log.txt' obligatory.
SELECTION-SCREEN: END OF BLOCK FRAME01.
SELECTION-SCREEN: BEGIN OF BLOCK FRAME02
WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN COMMENT /5(40) TEXT-003.
SELECTION-SCREEN: END OF BLOCK FRAME02.
START-OF-SELECTION.
PERFORM FRM_GET_DATA.
PERFORM FRM_CREATE_requ.
end-of-selection.
*--
FORM FRM_GET_DATA.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = TXTFILE
FILETYPE = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = ITAB
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10
.
IF SY-SUBRC <> 0.
write : ' '.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
exit.
ENDIF.
ENDFORM.
*loop at itab.
itab-index = sy-index.
itab-plan = '8000'.
itab-requ = 'vse'.
itab-v = 'X'.
itab-req_number = p_number.
modify itab.
*endloop.
*--
*--
FORM FRM_CREATE_requ.
loop at itab.
concatenate '00000000000' itab-matnr into matertemp.
req_item-material = matertemp.
req_item-plant = '8000'.
req_item-REQU_TYPE = 'VSE'.
req_item-VERSION = '00'.
req_item-VERS_ACTIV = 'X'.
req_item-req_number = p_number.
req_data-DATE_TYPE = 3.
req_data-req_date = p_today.
req_data-REQ_QTY = itab-REQ_QTY.
append req_data.
CALL FUNCTION <b>'BAPI_REQUIREMENTS_CREATE'</b>
EXPORTING
REQUIREMENTS_ITEM = req_item
REQUIREMENT_PARAM =
IMPORTING
MATERIAL = matemp
PLANT =
REQUIREMENTSTYPE =
VERSION =
REQMTSPLANNUMBER =
TABLES
REQUIREMENTS_SCHEDULE_IN = REQ_data
REQUIREMENTS_CHAR_IN =
RETURN = RETURN.
IF NOT matemp IS INITIAL.
WRITE:/(10) matemp COLOR 4,
.
else.
log-index = itab-index.
log-message = return-MESSAGE.
append log.
ENDIF.
clear matemp.
REFRESH req_data.
clear matertemp.
clear req_item.
endloop.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = LOGFILE
FILETYPE = 'DAT'
TABLES
DATA_TAB = LOG
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
CUSTOMER_ERROR = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform.
*--
Please reward points.
Regards,
Ameet