Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 3074

BDC Recording - tk11

$
0
0

Hi everyone,

 

I have done the code for upload the freight rate for TK11. It shows some error and I dont know where my logic went wrong. Can someone please help me in this.Below is my code.

 

report Z_UPLOAD_MFR

        no standard page heading line-size 255.

 

 

**Input Path

*PARAMETERS: p_file   TYPE rlgrap-filename.                  " File Path

 

* Structure Decleration

DATA :

   BEGIN OF fs_field,

     ROUTE TYPE KOMG-ROUTE,            "description field in the excel file.

  END OF fs_field.

 

*Internal table declaration

DATA:

    t_field    LIKE TABLE OF fs_field,

    t_bdcdata  LIKE TABLE OF bdcdata.

 

DATA:

       fs_bdcdata LIKE LINE OF t_bdcdata,   "Structure type of bdcdata

       w_str TYPE string.

DATA:

   wa_path TYPE string ,

   wa_error TYPE string,

   wa_cnt   TYPE i,

   w_mode    TYPE c,

   wa_cnt1(2) TYPE n,

   it_output type table of ty_s_error,

   wa_output like line of it_output.

 

 

* Opening window for path selection

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

   CALL FUNCTION 'F4_FILENAME'

     EXPORTING

       program_name  = syst-cprog

       dynpro_number = syst-dynnr

       field_name    = ' '

     IMPORTING

       file_name     = p_file.

 

   TYPES:

     fs_struct(4096) TYPE c OCCURS 0 .

 

   DATA:

     w_struct TYPE fs_struct.

 

 

* Uploading excel file.

 

call function 'GUI_UPLOAD'

     exporting

       filename                = 'C:\File.txt'  "File path to upload the data

       has_field_separator     = 'X'  "Field separator

*      I_LINE_HEADER              =

       i_tab_raw_data             = w_struct

       i_filename                 = p_file

     tables

       data_tab                = t_field  "Table with the fields which are required to call the transaction

     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.

     message id sy-msgid type sy-msgty number sy-msgno

             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

   endif.                               " IF SY_SUBRC = 0

 

 

****  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

****    EXPORTING

****      i_field_seperator          = 'X'

*****   I_LINE_HEADER              =

****      i_tab_raw_data             = w_struct

****      i_filename                 = p_file

****    TABLES

****      i_tab_converted_data       = t_field

****    EXCEPTIONS

****      conversion_failed          = 1

****      OTHERS                     = 2.

 

 

  IF sy-subrc <> 0.

     MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

   ENDIF.

 

  PERFORM open_group .

LOOP AT t_field INTO fs_field.

   REFRESH: t_bdcdata.

   CLEAR  : fs_bdcdata.

   PERFORM populate_bdcdata.

   PERFORM insert_data.

ENDLOOP.                               " LOOP AT t_f..

 

*Function to close BDC group.

PERFORM close_group.

 

*&---------------------------------------------------------------------*

*&      Form  open_group

*&---------------------------------------------------------------------*

*    Function to open BDC

*----------------------------------------------------------------------*

FORM open_group.

 

    CALL FUNCTION 'BDC_OPEN_GROUP'

   EXPORTING

*     CLIENT                    = SY-MANDT

*     DEST                      = FILLER8

      group                     = 'YH1610'

*     HOLDDATE                  = FILLER8

      keep                      = 'X'

      user                      = sy-uname

*     RECORD                    = FILLER1

*     PROG                      = SY-CPROG

*     DCPFM                     = '%'

*     DATFM                     = '%'

*   IMPORTING

*     QID                       =

   EXCEPTIONS

     client_invalid            = 1

     destination_invalid       = 2

     group_invalid             = 3

     group_is_locked           = 4

     holddate_invalid          = 5

     internal_error            = 6

     queue_error               = 7

     running                   = 8

     system_lock_error         = 9

     user_invalid              = 10

     OTHERS                    = 11

            .

   IF sy-subrc <> 0.

     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

   ELSE.

     WRITE :/ 'Group Open' .

 

   ENDIF.                               " IF sy-subrc <>

 

ENDFORM.                               " Open_group

 

 

*&---------------------------------------------------------------------*

*&      Form  POPULATE_BDCDATA

*&---------------------------------------------------------------------*

*       Function to populate data

*----------------------------------------------------------------------*

FORM populate_bdcdata.

 

     perform bdc_dynpro      using 'SAPMV13A' '0100'.

     perform bdc_field       using 'BDC_CURSOR'

                                   'RV13A-KSCHL'.

     perform bdc_field       using 'BDC_OKCODE'

                                   '/00'.

     perform bdc_field       using 'RV13A-KSCHL'

                                   'ZI01'.

     perform bdc_dynpro      using 'SAPLV14A' '0100'.

     perform bdc_field       using 'BDC_CURSOR'

                                   'RV130-SELKZ(01)'.

     perform bdc_field       using 'BDC_OKCODE'

                                   '=WEIT'.

     perform bdc_dynpro      using 'SAPMV13A' '1913'.

 

     LOOP AT it_record INTO wa_record.

 

       perform bdc_field       using 'BDC_CURSOR'

                                     'KOMG-TDLNR'.

       perform bdc_field       using 'BDC_OKCODE'

                                     '=SICH'.

       perform bdc_field       using 'KOMG-TPLST'

                                     'Z100'.

       perform bdc_field       using 'KOMG-TDLNR'

                                     'L0161-01'.

       perform bdc_dynpro      using 'SAPMV13A' '1913'.

       perform bdc_field       using 'BDC_OKCODE'

                                     '/EBAC'.

       perform bdc_field       using 'BDC_CURSOR'

                                     'KOMG-TDLNR'.

       perform bdc_dynpro      using 'SAPMV13A' '0100'.

       perform bdc_field       using 'BDC_OKCODE'

                                     '/EBA0' '=POST'.

       perform bdc_field       using 'BDC_CURSOR'

                                     'RV13A-KSCHL'.

     ENDLOOP.

endform.

 

*&---------------------------------------------------------------------*

*&      Form  FILL_BDC_DATA

*&---------------------------------------------------------------------*

*       Function to populate data

*----------------------------------------------------------------------*

*      -->VALUE(P_PROGRAM)  Program name

*      -->VALUE(P_DYNPRO)   screen no

*      -->VALUE(P_BEGIN)    screen start

*      -->VALUE(P_FIELD)    field name

*      -->VALUE(P_VALUE)    field value

*----------------------------------------------------------------------*

FORM fill_bdc_data  USING    value(p_program)

                              value(p_dynpro)

                              value(p_begin)

                              value(p_field)

                              value(p_value).

 

   CLEAR fs_bdcdata.

   IF p_begin = 'X'.

*" Screen Values.

     fs_bdcdata-program = p_program.    " program name

     fs_bdcdata-dynpro  = p_dynpro.     " screen no

     fs_bdcdata-dynbegin   = p_begin.   " screen start

     APPEND fs_bdcdata TO t_bdcdata.

   ELSE.

*" Filed Values.

     CLEAR fs_bdcdata.

     fs_bdcdata-fnam = p_field.         " Field name

     fs_bdcdata-fval = p_value.         " Field value

     CONDENSE fs_bdcdata-fval.

     APPEND fs_bdcdata TO t_bdcdata.

 

   ENDIF.                               " IF P_BEGIN = 'X'

 

ENDFORM.                               " FILL_BDC_DATA

 

*&---------------------------------------------------------------------*

*&      Form  INSERT_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM insert_data .

 

*Data decleration

   DATA:

        t_msg TYPE TABLE OF bdcmsgcoll,   " Collecting messages

        w_msg TYPE bdcmsgcoll,

        w_msg1(51).

 

   CALL FUNCTION 'BDC_INSERT'

    EXPORTING

      tcode                  = 'TK11'

*   POST_LOCAL             = NOVBLOCAL

*   PRINTING               = NOPRINT

*   SIMUBATCH              = ' '

*   CTUPARAMS              = ' '

     TABLES

       dynprotab              = t_bdcdata

    EXCEPTIONS

      internal_error         = 1

      not_open               = 2

      queue_error            = 3

      tcode_invalid          = 4

      printing_invalid       = 5

      posting_invalid        = 6

      OTHERS                 = 7

             .

   IF sy-subrc <> 0.

*    Error Found

     WRITE : / 'DATA Not INSERTED'(002).

   ELSE.

     WRITE : / 'DATA INSERTED'(003).

   ENDIF .                              " IF sy-subr

 

ENDFORM.                               " INSERT_DATA

 

*&---------------------------------------------------------------------*

*&      Form  CLOSE_GROUP

*&---------------------------------------------------------------------*

*       Function to close BDC group

*----------------------------------------------------------------------*

FORM close_group .

   CALL FUNCTION 'BDC_CLOSE_GROUP'

     EXCEPTIONS

       not_open    = 1

       queue_error = 2

       OTHERS      = 3.

   IF sy-subrc <> 0.

     MESSAGE 'UNABLE TO CLOSE BDC SESSION !' TYPE 'S' DISPLAY LIKE 'E'.

   ENDIF.                               " IF sy-subrc ..

 

   WRITE : / 'CLOSED SESSION'.

 

ENDFORM.                               " CLOSE_GROUP



Thanks,

Misha.


Viewing all articles
Browse latest Browse all 3074

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>