Skip to main content

SAP ABAP - Upload and Download Custom Program Template with BDS

 Open OAOR transaction Code


execute and upload excel file






Create ABAP Program with this Code

*&---------------------------------------------------------------------*
*& Report YUPLOAD_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT yupload_test.


START-OF-SELECTION.
  CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'PF100'.
  SET TITLEBAR  'TL100'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN 'DNLD'.
      PERFORM popup_download_template.
  ENDCASE.
ENDMODULE.

FORM popup_download_template.
  TYPES BEGIN OF ty_output,
            itext       TYPE intxt,
            comp_id     TYPE  bds_compid,
            checkbox(1),
          END OF ty_output.

  DATA :
    it_output          TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,
    wa_output          TYPE ty_output,
    li_signature       LIKE STANDARD TABLE OF bapisignat WITH HEADER LINE,
    li_all_connections LIKE STANDARD TABLE OF bdn_con WITH HEADER LINE,
    li_files           LIKE bapifiles OCCURS WITH HEADER LINE,
    classname          TYPE  bapibds01-classname,
    classtype          TYPE  bapibds01-classtype,
    objkey             TYPE  swotobjid-objkey.

  DATA:
    ls_fieldcat    TYPE slis_fieldcat_alv,
    lt_fieldcat    TYPE slis_t_fieldcat_alv,
    ls_fieldcatlog TYPE slis_fieldcat_alv,
    lt_fieldcatlog TYPE slis_t_fieldcat_alv,
    lt_layout      TYPE slis_layout_alv.

  DATA fu_filepath TYPE string.
  DATA destop TYPE string.
  DATA fc_path_document TYPE string.

  DATA lv_logical_system LIKE bapibds01-log_system,
         lv_oldpath        TYPE string,
         lv_newpath        TYPE string,
         lv_subrc          TYPE i.

  REFRESH it_outputli_signatureli_all_connections.

  classname 'SOFFICEINTEGRATION'.
  classtype 'OT'.
  objkey    'ZTEMPLATES'.

  "Get file Signature
  CALL FUNCTION 'BDS_ALL_CONNECTIONS_GET'
    EXPORTING
*     LOGICAL_SYSTEM  = LV_LOGICAL_SYSTEM
      classname       classname
      classtype       classtype
      objkey          objkey
      client          sy-mandt
*     ALL             = ' '
    TABLES
      signature       li_signature
      all_connections li_all_connections.


  REFRESH :lt_fieldcat.

*Appending the selected values to the output table
  CLEAR li_all_connections.
  LOOP AT li_all_connections.
    wa_output-itext   li_all_connections-descript.
    wa_output-comp_id li_all_connections-comp_id.
    APPEND wa_output TO it_output.
    CLEAR wa_output.
    CLEAR li_all_connections.
  ENDLOOP.

  CLEAR ls_fieldcat.
  ls_fieldcat-row_pos   '1'.
  ls_fieldcat-col_pos   '1'.
  ls_fieldcat-fieldname 'CHECKBOX'.
  ls_fieldcat-tabname   'IT_OUTPUT'.
  ls_fieldcat-seltext_m 'SELECT'.
  APPEND ls_fieldcat TO lt_fieldcat.

  CLEAR ls_fieldcat.
  ls_fieldcat-row_pos   '1'.
  ls_fieldcat-col_pos   '2'.
  ls_fieldcat-fieldname 'ITEXT'.
  ls_fieldcat-tabname   'IT_OUTPUT'.
  ls_fieldcat-seltext_m 'DESCRIPTION'.
  ls_fieldcat-outputlen 50.
  APPEND ls_fieldcat TO lt_fieldcat.

* Display data in a POPUP
  CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
    EXPORTING
      i_zebra              'X'
      it_fieldcat          lt_fieldcat
      i_tabname            'IT_OUTPUT'
      i_checkbox_fieldname 'CHECKBOX'
    TABLES
      t_outtab             it_output.

*Appending the selected infotypes only to internal table
  READ TABLE it_output WITH KEY checkbox 'X' TRANSPORTING NO FIELDS.
  IF sy-subrc 0.
    CALL METHOD cl_gui_frontend_services=>get_desktop_directory
      CHANGING
        desktop_directory destop.
    CALL METHOD cl_gui_frontend_services=>directory_browse
      EXPORTING
        window_title    'Title'
        initial_folder  destop
      CHANGING
        selected_folder fu_filepath.

    REFRESH li_files.
    LOOP AT it_output INTO wa_output WHERE checkbox 'X'.
      CLEAR li_signature.
      READ TABLE li_signature[] INTO li_signature
      WITH KEY prop_name 'DESCRIPTION' prop_value wa_output-itext.
      CLEAR li_files.
      li_files-doc_count li_signature-doc_count.
      li_files-comp_id   wa_output-comp_id.
      li_files-directory fu_filepath.
      APPEND li_files.
      CLEAR wa_output.
    ENDLOOP.

    CALL FUNCTION 'BDS_BUSINESSDOCUMENT_GET_FILES'
      EXPORTING
        logical_system lv_logical_system
        classname      classname
        classtype      classtype
        client         sy-mandt
        object_key     objkey
      TABLES
        files          li_files
        signature      li_signature
      EXCEPTIONS
        nothing_found  1
        error_kpro     2
        internal_error 3
        OTHERS         4.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING internal_error.
    ENDIF.

  ENDIF.

ENDFORM.

Test program



Comments

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut :  Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut : tambahkan file config.php didalam folder app/config : <?php define('BASEURL', 'http://localhost:8181/phpmvc/public'); define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'phpmvc'); kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa : Home.php <?php class Home extends Controller { public function index() { $data['nama'] = $this->model('User_model')->getUser()...

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL. Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut : Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php . Source code index.php seperti berikut : <! doctype   html > < html   lang = "en" >    < head >      <!-- Required meta tags -->      < meta   charset = "utf-8" >      < meta   name = "viewport"   content = "width=device-width, initial-scale=1" >      <!-- Bootstrap CSS -->      < link ...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...