ABAP Uploading PDF

parameters:
  p_file type string lower case.
data:
      gs_store_file type z1127582_upload,"z1127582_upload is a table to store PDF file and other relevant data
      gt_content type standard table of tdline,
      len type i,
      xstr_content type xstring.
DATA:
   w_filename TYPE string, " File name
   w_length TYPE i,
   lt_file_table TYPE filetable,
   lv_filelength TYPE i,
   lv_rc TYPE i,
   lv_filename TYPE string,
   w_pdf_data TYPE xstring,
   lt_rawtab TYPE TABLE OF char255,
   w_pdf_file TYPE string,
* Create PDF Object using destination 'ADS' (<-- this is how it is
* defined in SM59)
   lo_pdfobj TYPE REF TO if_fp_pdf_object VALUE IS INITIAL,
   xslt_message TYPE string,
   exc TYPE REF TO cx_root,
   fs_per_info  TYPE ZWD_PER_INFO.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM f4_help_for_file.
start-of-selection.
  "Upload the file to Internal Table
  call function 'GUI_UPLOAD'
    exporting
      filename                = p_file
      filetype                = 'BIN'
    importing
      filelength              = len
    tables
      data_tab                = gt_content
    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 'Unable to upload file' type 'E'.
  endif.
  "Convert binary ITAB to xstring
  call function 'SCMS_BINARY_TO_XSTRING'
    exporting
      input_length       = len
*     FIRST_LINE         = 0
*     LAST_LINE          = 0
   importing
     buffer             = xstr_content
    tables
      binary_tab         = gt_content
   exceptions
     failed             = 1
     others             = 2
            .
  if sy-subrc <> 0.
    message 'Unable to convert binary to xstring' type 'E'.
  endif.
  clear gs_store_file.
  gs_store_file-filename = p_file.
  gs_store_file-file_content = xstr_content.
  "Insert file into table
  insert z1127582_upload from gs_store_file.
  if sy-subrc is initial.
    message 'Successfully uploaded' type 'S'.
  else.
    message 'Failed to upload' type 'E'.
  endif.
  INCLUDE z1127582_test2_f4_help_for_f01.
FORM f4_help_for_file .
CALL METHOD cl_gui_frontend_services=>file_open_dialog
  CHANGING
  file_table = lt_file_table
  rc = lv_rc
* USER_ACTION =
* FILE_ENCODING =
  EXCEPTIONS
  file_open_dialog_failed = 1
  cntl_error = 2
  error_no_gui = 3
  not_supported_by_gui = 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.
*  READ TABLE lt_file_table
*        INTO lv_filename
*        INDEX 1.
    READ TABLE lt_file_table
        INTO p_file
        INDEX 1.
    IF sy-subrc EQ 0.
      lv_filename = p_file.
    ENDIF.
  cl_gui_frontend_services=>gui_upload(
    EXPORTING
      filename = lv_filename
      filetype = 'BIN' "Binary
    IMPORTING
      filelength = lv_filelength
    CHANGING
      data_tab = lt_rawtab
    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
      not_supported_by_gui = 17
      error_no_gui = 18
      OTHERS = 19 ).

Are there any code examples left?
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.
Creating a new code example
Code snippet title
Source