hi,,
i am getting the error when executing the entry (plant field) already existing.
this is my code.
where is the probleam hellp me??
report ZTEST6
no standard page heading line-size 255.
include bdcrecx1.
DATA: BEGIN OF T_OMD0 OCCURS 0,
WERKS LIKE V_T024D-WERKS,
DISPO LIKE V_T024D-DISPO,
DSNAM LIKE V_T024D-DSNAM,
DSTEL LIKE V_T024D-DSTEL,
MEMPF LIKE V_T024D-MEMPF,
GSBER LIKE V_T024D-GSBER,
PRCTR LIKE V_T024D-PRCTR,
USRTYP LIKE V_T024D-USRTYP,
USRKEY LIKE V_T024D-USRKEY,
END OF T_OMD0.
*declaration for error handling
DATA BEGIN OF T_MESSTAB OCCURS 10.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA END OF T_MESSTAB.
*messages
DATA W_MESSAGE LIKE MESSAGE.
*constants
CONSTANTS:K_MODE VALUE 'A',
K_S TYPE C VALUE 'S'.
*selection screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
PARAMETERS : P_FLNAME TYPE RLGRAP-FILENAME DEFAULT 'C:\DEBA.TXT'.
*PARAMETERS : P_FLNAME(11) TYPE C DEFAULT 'C:\DEBA.TXT'.
SELECTION-SCREEN END OF BLOCK B1.
*F4 selection
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FLNAME.
PERFORM F4_P_FLNAME.
*start-of-selection.
START-OF-SELECTION.
*upload data from flat file.
PERFORM SUB_UPLOAD_DATA.
*perform open_group.
LOOP AT T_OMD0.
perform bdc_dynpro using 'SAPL0PP3' '0060'.
perform bdc_field using 'BDC_CURSOR'
'VIM_POSITION_INFO'.
perform bdc_field using 'BDC_OKCODE'
'=NEWL'.
perform bdc_dynpro using 'SAPL0PP3' '0061'.
perform bdc_field using 'BDC_CURSOR'
'V_T024D-DSTEL'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'V_T024D-WERKS'
T_OMD0-WERKS.
perform bdc_field using 'V_T024D-DISPO'
T_OMD0-DISPO.
perform bdc_field using 'V_T024D-DSNAM'
T_OMD0-DSNAM.
perform bdc_field using 'V_T024D-DSTEL'
T_OMD0-DSTEL.
perform bdc_dynpro using 'SAPL0PP3' '0061'.
perform bdc_field using 'BDC_OKCODE'
'/EABR'.
perform bdc_field using 'BDC_CURSOR'
'V_T024D-WERKS'.
perform bdc_dynpro using 'SAPLSPO1' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_dynpro using 'SAPL0PP3' '0060'.
perform bdc_field using 'BDC_CURSOR'
'VIM_POSITION_INFO'.
perform bdc_field using 'BDC_OKCODE'
'=ENDE'.
*perform bdc_transaction using 'OMD0'.
CALL TRANSACTION 'OMD0' USING BDCDATA MODE K_MODE UPDATE K_S
MESSAGES INTO T_MESSTAB.
IF SY-SUBRC NE 0.
*capturing error
LOOP AT T_MESSTAB.
SY-MSGNO = T_MESSTAB-MSGNR.
CALL FUNCTION 'WRITE_MESSAGE'
EXPORTING
MSGID = T_MESSTAB-MSGID
MSGNO = SY-MSGNO
MSGTY = T_MESSTAB-MSGTYP
MSGV1 = T_MESSTAB-MSGV1
MSGV2 = T_MESSTAB-MSGV2
MSGV3 = T_MESSTAB-MSGV3
MSGV4 = T_MESSTAB-MSGV4
MSGV5 = T_MESSTAB-MSGV4
IMPORTING
error =
MESSG = W_MESSAGE
msgln =
EXCEPTIONS
OTHERS = 1.
WRITE: / W_MESSAGE.
message id messtab-msgid type 'I' number messtab-msgnr.
ENDLOOP.
ENDIF.
REFRESH T_OMD0.
ENDLOOP.
FORM SUB_UPLOAD_DATA.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\DEBA.TXT'
FILENAME = P_FLNAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = T_OMD0
.
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. " SUB_UPLOAD_DATA
FORM F4_P_FLNAME.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FLNAME
.
ENDFORM.