2009 Jul 02 12:45 PM
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.
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.
2009 Jul 02 1:07 PM
Hi navketan nayar,
you are using T-Code OMD0.
it's for table maintance generator.. for MRP controller..
So it's not suggestable to write BDC for it. because it will create the Customization request for creating/changing entries.
Standard way is to create it in Development server and transport the customizing request to Quality and production server.
About Error... Your flat file may contain the entries which are alread exist in the view V_T024D.
Check out.. and remove the entries which are already there in flat file..
Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
ilesh Nandaniya
2009 Jul 02 1:21 PM
thanks ur reply..
in my flat file i am giving werks as 0001.
the error is the entry 0001 does not exit ...
why? because i am going to update this value..
please tell me ??
2009 Jul 02 1:34 PM
2009 Jul 02 1:36 PM
Hi Navketan Nayar,
I would like to suggest you to use T-code: OMD0
Create/change entries there manually and while saving it will generate one request...
Now transport this request to Quality and production server.
Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
ilesh Nandaniya
2009 Jul 02 1:47 PM
u r right..
but the data is not updating ..
if the file data update then only i will transport it to quality server
i am very sorry...but i want some help