Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

cannot interpret data in file in BDC

Former Member
0 Likes
1,278

Dear Experts,

Trying to execute the BDC program for the transaction MB1A, the below error is displayed. Need help in resolving pls

cannot interpret data in file

Piece of coding is as below

REPORT ZPP_MB1A
        NO STANDARD PAGE HEADING LINE-SIZE 255.

*INCLUDE BDCRECX1.
*
*START-OF-SELECTION.
*
*  PERFORM OPEN_GROUP.

   DATA : BEGIN OF GT_MB1A OCCURS 0,
         BLDAT TYPE MKPF-BLDAT,
         BUDAT TYPE MKPF-BUDAT,
         BWARTWA TYPE RM07M-BWARTWA,
         SOBKZ TYPE RM07M-SOBKZ,
         WERKS TYPE RM07M-WERKS,
         LGORT TYPE RM07M-LGORT,
         MAT_KDAUF  TYPE MSEGK-MAT_KDAUF,
       MAT_KDPOS TYPE MSEGK-MAT_KDPOS,
          AUFNR TYPE COBL-AUFNR,
         MATNR TYPE MSEG-MATNR,
         ERFMG TYPE MSEG-ERFMG,
       J_3AERFMG TYPE J_3AIMDL-J_3AERFMG,
         CHARG TYPE J_3AIMDL-CHARG,
      J_4KSCAT  TYPE J_3AIMDL-J_4KSCAT,
     J_3ASIZED  TYPE J_3AIMDL-J_3ASIZED,

   END OF GT_MB1A.

   DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'GUI_UPLOAD'
   EXPORTING
     FILENAME                      = 'D:/UPLOAD/UPLOAD.TXT'
    FILETYPE                      = 'DAT'
*   HAS_FIELD_SEPARATOR           = 'X '
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                  = 'X'
*   DAT_MODE                      = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   CHECK_BOM                     = ' '
*   VIRUS_SCAN_PROFILE            =
*   NO_AUTH_CHECK                 = ' '
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
   TABLES
     DATA_TAB                      = GT_MB1A.
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2
*   NO_BATCH                      = 3
*   GUI_REFUSE_FILETRANSFER       = 4
*   INVALID_TYPE                  = 5
*   NO_AUTHORITY                  = 6
*   UNKNOWN_ERROR                 = 7
*   BAD_DATA_FORMAT               = 8
*   HEADER_NOT_ALLOWED            = 9
*   SEPARATOR_NOT_ALLOWED         = 10
*   HEADER_TOO_LONG               = 11
*   UNKNOWN_DP_ERROR              = 12
*   ACCESS_DENIED                 = 13
*   DP_OUT_OF_MEMORY              = 14
*   DISK_FULL                     = 15
*   DP_TIMEOUT                    = 16
*   OTHERS                        = 17
           .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.



   LOOP AT GT_MB1A.
     REFRESH BDCDATA.
     PERFORM MAPPING.
CALL TRANSACTION 'MB1A' USING BDCDATA MODE 'A'.
ENDLOOP.

     FORM MAPPING.

     PERFORM BDC_DYNPRO      USING 'SAPMM07M' '0400'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'RM07M-SOBKZ'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '/00'.
     PERFORM BDC_FIELD       USING 'MKPF-BLDAT'
                                   GT_MB1A-BLDAT.
     PERFORM BDC_FIELD       USING 'MKPF-BUDAT'
                                   GT_MB1A-BUDAT.
     PERFORM BDC_FIELD       USING 'RM07M-BWARTWA'
                                   GT_MB1A-BWARTWA.
     PERFORM BDC_FIELD       USING 'RM07M-SOBKZ'
                                   GT_MB1A-SOBKZ.
     PERFORM BDC_FIELD       USING 'RM07M-WERKS'
                                   GT_MB1A-WERKS.
     PERFORM BDC_FIELD       USING 'RM07M-LGORT'
                                   GT_MB1A-LGORT.
     PERFORM BDC_FIELD       USING 'XFULL'
                                   'X'.
     PERFORM BDC_FIELD       USING 'RM07M-WVERS2'
                                   'X'.
     PERFORM BDC_DYNPRO      USING 'SAPMM07M' '0421'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'MSEG-ERFMG(01)'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=PF02'.
     PERFORM BDC_FIELD       USING 'MSEG-MATNR(01)'
                                   GT_MB1A-MATNR.
     PERFORM BDC_FIELD       USING 'MSEG-ERFMG(01)'
                                   ''.
     PERFORM BDC_FIELD       USING 'MSEGK-MAT_KDAUF'
                                   GT_MB1A-MAT_KDAUF.
     PERFORM BDC_FIELD       USING 'MSEGK-MAT_KDPOS'
                                   GT_MB1A-MAT_KDPOS.
     PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'COBL-AUFNR'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=ENTE'.
     PERFORM BDC_FIELD       USING 'COBL-AUFNR'
                                   GT_MB1A-AUFNR.
     PERFORM BDC_DYNPRO      USING 'SAPLJ3AI' '0400'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'J_3AIMDL-CHARG(01)'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '/00'.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-J_3ASIZED(01)'
                                   GT_MB1A-J_3ASIZED.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-J_3AERFMG(01)'
                                   GT_MB1A-J_3AERFMG.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-J_4KSCAT(01)'
                                   GT_MB1A-J_4KSCAT.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-CHARG(01)'
                                   GT_MB1A-CHARG.
     PERFORM BDC_DYNPRO      USING 'SAPLJ3AI' '0400'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'J_3AIMDL-J_3ASIZED(01)'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=COPY'.
     PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'COBL-AUFNR'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=ENTE'.
     PERFORM BDC_FIELD       USING 'COBL-AUFNR'
                                   GT_MB1A-CHARG.
     PERFORM BDC_DYNPRO      USING 'SAPMM07M' '0410'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'MSEG-ERFMG'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=BU'.
     PERFORM BDC_FIELD       USING 'MSEG-ERFMG'
                                   GT_MB1A-ERFMG.
     PERFORM BDC_FIELD       USING 'DM07M-KONTO'
                                   '70007900'.
     PERFORM BDC_FIELD       USING 'DKACB-FMORE'
                                   'X'.
     PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'COBL-AUFNR'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=ENTE'.
     PERFORM BDC_FIELD       USING 'COBL-AUFNR'
                                   GT_MB1A-AUFNR.
*    PERFORM BDC_TRANSACTION USING 'MB1A'.
*
*
*
*  PERFORM CLOSE_GROUP.

ENDFORM.
*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
   CLEAR BDCDATA.
   BDCDATA-PROGRAM  = PROGRAM.
   BDCDATA-DYNPRO   = DYNPRO.
   BDCDATA-DYNBEGIN = 'X'.
   APPEND BDCDATA.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
   IF FVAL <> SPACE.
     CLEAR BDCDATA.
     BDCDATA-FNAM = FNAM.
     BDCDATA-FVAL = FVAL.
     APPEND BDCDATA.
   ENDIF.
ENDFORM.                    "BDC_FIELD


Best rgds/thnks,

Srikanth.



1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,087

hi vn srikanth,

can you replace FM 'GUI_UPLOAD' with this and try

CALL FUNCTION 'UPLOAD'

   EXPORTING

*     CODEPAGE                      = ' '

     FILENAME                      = 'C:\'

     FILETYPE                      = 'DAT'

*

    TABLES

      data_tab                      = GT_MB1A

   EXCEPTIONS

     CONVERSION_ERROR              = 1

     INVALID_TABLE_WIDTH           = 2

     INVALID_TYPE                  = 3

     NO_BATCH                      = 4

     UNKNOWN_ERROR                 = 5

     GUI_REFUSE_FILETRANSFER       = 6

     OTHERS                        = 7

            .

You have to select file at runtime.

Dear Experts,

Trying to execute the BDC program for the transaction MB1A, the below error is displayed. Need help in resolving pls

cannot interpret data in file

Piece of coding is as below

REPORT ZPP_MB1A
        NO STANDARD PAGE HEADING LINE-SIZE 255.

*INCLUDE BDCRECX1.
*
*START-OF-SELECTION.
*
*  PERFORM OPEN_GROUP.

   DATA : BEGIN OF GT_MB1A OCCURS 0,
         BLDAT TYPE MKPF-BLDAT,
         BUDAT TYPE MKPF-BUDAT,
         BWARTWA TYPE RM07M-BWARTWA,
         SOBKZ TYPE RM07M-SOBKZ,
         WERKS TYPE RM07M-WERKS,
         LGORT TYPE RM07M-LGORT,
         MAT_KDAUF  TYPE MSEGK-MAT_KDAUF,
       MAT_KDPOS TYPE MSEGK-MAT_KDPOS,
          AUFNR TYPE COBL-AUFNR,
         MATNR TYPE MSEG-MATNR,
         ERFMG TYPE MSEG-ERFMG,
       J_3AERFMG TYPE J_3AIMDL-J_3AERFMG,
         CHARG TYPE J_3AIMDL-CHARG,
      J_4KSCAT  TYPE J_3AIMDL-J_4KSCAT,
     J_3ASIZED  TYPE J_3AIMDL-J_3ASIZED,

   END OF GT_MB1A.

   DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'GUI_UPLOAD'
   EXPORTING
     FILENAME                      = 'D:/UPLOAD/UPLOAD.TXT'
    FILETYPE                      = 'DAT'
*   HAS_FIELD_SEPARATOR           = 'X '
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                  = 'X'
*   DAT_MODE                      = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   CHECK_BOM                     = ' '
*   VIRUS_SCAN_PROFILE            =
*   NO_AUTH_CHECK                 = ' '
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
   TABLES
     DATA_TAB                      = GT_MB1A.
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2
*   NO_BATCH                      = 3
*   GUI_REFUSE_FILETRANSFER       = 4
*   INVALID_TYPE                  = 5
*   NO_AUTHORITY                  = 6
*   UNKNOWN_ERROR                 = 7
*   BAD_DATA_FORMAT               = 8
*   HEADER_NOT_ALLOWED            = 9
*   SEPARATOR_NOT_ALLOWED         = 10
*   HEADER_TOO_LONG               = 11
*   UNKNOWN_DP_ERROR              = 12
*   ACCESS_DENIED                 = 13
*   DP_OUT_OF_MEMORY              = 14
*   DISK_FULL                     = 15
*   DP_TIMEOUT                    = 16
*   OTHERS                        = 17
           .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.



   LOOP AT GT_MB1A.
     REFRESH BDCDATA.
     PERFORM MAPPING.
CALL TRANSACTION 'MB1A' USING BDCDATA MODE 'A'.
ENDLOOP.

     FORM MAPPING.

     PERFORM BDC_DYNPRO      USING 'SAPMM07M' '0400'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'RM07M-SOBKZ'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '/00'.
     PERFORM BDC_FIELD       USING 'MKPF-BLDAT'
                                   GT_MB1A-BLDAT.
     PERFORM BDC_FIELD       USING 'MKPF-BUDAT'
                                   GT_MB1A-BUDAT.
     PERFORM BDC_FIELD       USING 'RM07M-BWARTWA'
                                   GT_MB1A-BWARTWA.
     PERFORM BDC_FIELD       USING 'RM07M-SOBKZ'
                                   GT_MB1A-SOBKZ.
     PERFORM BDC_FIELD       USING 'RM07M-WERKS'
                                   GT_MB1A-WERKS.
     PERFORM BDC_FIELD       USING 'RM07M-LGORT'
                                   GT_MB1A-LGORT.
     PERFORM BDC_FIELD       USING 'XFULL'
                                   'X'.
     PERFORM BDC_FIELD       USING 'RM07M-WVERS2'
                                   'X'.
     PERFORM BDC_DYNPRO      USING 'SAPMM07M' '0421'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'MSEG-ERFMG(01)'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=PF02'.
     PERFORM BDC_FIELD       USING 'MSEG-MATNR(01)'
                                   GT_MB1A-MATNR.
     PERFORM BDC_FIELD       USING 'MSEG-ERFMG(01)'
                                   ''.
     PERFORM BDC_FIELD       USING 'MSEGK-MAT_KDAUF'
                                   GT_MB1A-MAT_KDAUF.
     PERFORM BDC_FIELD       USING 'MSEGK-MAT_KDPOS'
                                   GT_MB1A-MAT_KDPOS.
     PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'COBL-AUFNR'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=ENTE'.
     PERFORM BDC_FIELD       USING 'COBL-AUFNR'
                                   GT_MB1A-AUFNR.
     PERFORM BDC_DYNPRO      USING 'SAPLJ3AI' '0400'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'J_3AIMDL-CHARG(01)'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '/00'.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-J_3ASIZED(01)'
                                   GT_MB1A-J_3ASIZED.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-J_3AERFMG(01)'
                                   GT_MB1A-J_3AERFMG.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-J_4KSCAT(01)'
                                   GT_MB1A-J_4KSCAT.
     PERFORM BDC_FIELD       USING 'J_3AIMDL-CHARG(01)'
                                   GT_MB1A-CHARG.
     PERFORM BDC_DYNPRO      USING 'SAPLJ3AI' '0400'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'J_3AIMDL-J_3ASIZED(01)'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=COPY'.
     PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'COBL-AUFNR'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=ENTE'.
     PERFORM BDC_FIELD       USING 'COBL-AUFNR'
                                   GT_MB1A-CHARG.
     PERFORM BDC_DYNPRO      USING 'SAPMM07M' '0410'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'MSEG-ERFMG'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=BU'.
     PERFORM BDC_FIELD       USING 'MSEG-ERFMG'
                                   GT_MB1A-ERFMG.
     PERFORM BDC_FIELD       USING 'DM07M-KONTO'
                                   '70007900'.
     PERFORM BDC_FIELD       USING 'DKACB-FMORE'
                                   'X'.
     PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
     PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                   'COBL-AUFNR'.
     PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                   '=ENTE'.
     PERFORM BDC_FIELD       USING 'COBL-AUFNR'
                                   GT_MB1A-AUFNR.
*    PERFORM BDC_TRANSACTION USING 'MB1A'.
*
*
*
*  PERFORM CLOSE_GROUP.

ENDFORM.
*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
   CLEAR BDCDATA.
   BDCDATA-PROGRAM  = PROGRAM.
   BDCDATA-DYNPRO   = DYNPRO.
   BDCDATA-DYNBEGIN = 'X'.
   APPEND BDCDATA.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
   IF FVAL <> SPACE.
     CLEAR BDCDATA.
     BDCDATA-FNAM = FNAM.
     BDCDATA-FVAL = FVAL.
     APPEND BDCDATA.
   ENDIF.
ENDFORM.                    "BDC_FIELD


Best rgds/thnks,

Srikanth.



5 REPLIES 5
Read only

Former Member
0 Likes
1,087

Hii Srikanth

Please check the type of field file... or use ASC type instead of DAT

Regards

Gaurav

Message was edited by: Gaurav Joshi

Read only

0 Likes
1,087

File type is ' DAT ' . Trying to upload from Notepad.

Uploading format is as below

16.12.2014    16.12.2014    261        E         1040    40IN   1001881    10       400000567

STNP-LYNGDLASER-01       1            PCS           0000057872

Best rgds/thnks,

Srikanth

Read only

Former Member
0 Likes
1,087

hii

Please check your data type for date it might not be same,

Regards

Gaurav

Read only

Former Member
0 Likes
1,088

hi vn srikanth,

can you replace FM 'GUI_UPLOAD' with this and try

CALL FUNCTION 'UPLOAD'

   EXPORTING

*     CODEPAGE                      = ' '

     FILENAME                      = 'C:\'

     FILETYPE                      = 'DAT'

*

    TABLES

      data_tab                      = GT_MB1A

   EXCEPTIONS

     CONVERSION_ERROR              = 1

     INVALID_TABLE_WIDTH           = 2

     INVALID_TYPE                  = 3

     NO_BATCH                      = 4

     UNKNOWN_ERROR                 = 5

     GUI_REFUSE_FILETRANSFER       = 6

     OTHERS                        = 7

            .

You have to select file at runtime.

Read only

0 Likes
1,087

Hi adbul,

This seems to be working. But this function module is obselete and normally GUI_UPLOAD is the updated function module to be used. Pls suggest a solution for using the GUI_UPLOAD FM.

Best rgds/thnks,
Srikanth.