Skip to Content
0
Former Member
Jul 02, 2009 at 11:45 AM

REGARDING call transaction

40 Views

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.