SAP ABAP - MIME OBJECT İLE SİSTEME EXCEL YÜKLEME

 1-) SE80'i açın. Eğer ekranda MIME object açık değilse aşağıdaki örnekteki gibi ekranda aktif hale getirebilirsiniz.


2-) Ardından SAP -> PUBLIC -> IMPORT MIME OBJECT seçilir.




3-) Önce bilgisayarınızdan bir dosya seçmeniz için popup açılacak. Açılacak popup'dan istediğiniz dosyayı seçin. Örneğin burada EXAM ismindeki excel seçilmiştir.
Ardından bir tanım girin ve kaydedin. Kaydettikten sonra size bir package ve request soracak. Onları da girdikten sonra işlem tamam demektir :).



Ekranda da görüleceği üzere, EXAM isimli excel'imiz, daha önceden yaratılmış diğer objelerin arasına düştü.



BASİT BİR RAPOR ÖRNEĞİ:

Bu raporda ekrana yalnızca excel indirme için örnek bir buton konmuştur.

REPORT zau_mime_deneme.

DATA VE SCREEN TANIMLAMALARI:


CONSTANTSiv_url       TYPE string VALUE 'SAP/PUBLIC/EXAM.xlsx'"YÜKLEDİĞİMİZ EXCEL'İN DOSYA YOLU
           iv_file_name TYPE string VALUE 'EXAM.xlsx'"YÜKLEDİĞİMİZ EXCEL'İN ADI
DATA:      byte_count   TYPE i,
           file_table   TYPE solix_tab,
           filename     TYPE string,
           path         TYPE string,
           fullpath     TYPE string.

SELECTION-SCREEN:
PUSHBUTTON /2(45but_ex USER-COMMAND b_exam MODIF ID mi1.

INITIALIZATION.
  but_ex 'Excel Download'.

AT SELECTION-SCREEN.
  IF sy-ucomm EQ 'B_EXAM'.
    PERFORM sample_excel_upload.
  ENDIF.


MIME İÇİN GEREKEN KODLAR: 

FORM sample_excel_upload.


  cl_mime_repository_api=>get_api)->get(
     EXPORTING
      i_url iv_url
     IMPORTING
      e_content DATA(file)
     EXCEPTIONS
      parameter_missing 1
      error_occured 2
      not_found 3
      permission_failure 4
      OTHERS 5
    ).

  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer        file
    IMPORTING
      output_length byte_count
    TABLES
      binary_tab    file_table.

  cl_gui_frontend_services=>file_save_dialog(
   EXPORTING
    default_file_name iv_file_name
    default_extension 'XLS'
   CHANGING
    filename filename
    path path
    fullpath fullpath
   EXCEPTIONS
    cntl_error                1
    error_no_gui              2
    not_supported_by_gui      3
    invalid_default_file_name 4
    OTHERS                    5
  ).
  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 fullpath IS NOT INITIAL.

    cl_gui_frontend_services=>gui_download(
     EXPORTING
      bin_filesize byte_count
      filename     fullpath
      filetype     'BIN'
     CHANGING
      data_tab     file_table
     EXCEPTIONS
      file_write_error        1
      no_batch                2
      gui_refuse_filetransfer 3
      invalid_type            4
      no_authority            5
      unknown_error           6
      header_not_allowed      7
      separator_not_allowed   8
      filesize_not_allowed    9
      header_too_long         10
      dp_error_create         11
      dp_error_send           12
      dp_error_write          13
      unknown_dp_error        14
      access_denied           15
      dp_out_of_memory        16
      disk_full               17
      dp_timeout              18
      file_not_found          19
      dataprovider_exception  20
      control_flush_error     21
      not_supported_by_gui    22
      error_no_gui            23
      OTHERS                  24
    ).

    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDIF.
ENDFORM.



ALARA UMDU
SAP ABAP Developer

Yorumlar