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:


CONSTANTS: iv_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(45) but_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