You need to read a big PDF file which is handed to you by some webserver as some-one uploaded it. It contains a resume or maybe a pricelist that needs to be available from SAP. So how ? From the backend, there is a toolset available for you to accomplish this. Read on !
First of all read the file in binary mode in bits. And compose a table with binary data for this:
DATA: lv_filename TYPE string,
lv_content TYPE rcf_attachment_content,
lt_binary_content TYPE SDOKCNTBINS,
lv_hex_container TYPE xstring.
lv_filename = '/usr/sap/interface/pricelist.pdf'.
CLEAR: lv_content, lt_binary_content[].
*--------------------------------------------------
OPEN DATASET lv_filename FOR INPUT IN BINARY MODE.
*--------------------------------------------------
DO.
*--------------------------------------------------
READ DATASET lv_filename
INTO lv_hex_container MAXIMUM LENGTH 1000.
*--------------------------------------------------
IF sy-subrc <> 0.
EXIT.
ELSE.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lv_hex_container
append_to_table = 'X'
TABLES
binary_tab = lt_binary_content.
ENDIF.
ENDDO.
*--------------------------------------------------
CLOSE DATASET lv_filename.
*--------------------------------------------------
Then transform this result in to a single X-string variabele, that will contain the whole document:
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = 1000000000
IMPORTING
buffer = lv_content
TABLES
binary_tab = lt_binary_content
EXCEPTIONS
OTHERS = 4.
Do note that there are quite a few function modules for "big data manupilation/handling" available:
SCMS_BINARY_TO_FTEXT SCMS_BINARY_TO_STRING SCMS_BINARY_TO_TEXT SCMS_BINARY_TO_XSTRING SCMS_FTEXT_TO_BINARY SCMS_FTEXT_TO_STRING SCMS_FTEXT_TO_TEXT SCMS_FTEXT_TO_XSTRING SCMS_STRING_TO_FTEXT SCMS_STRING_TO_XSTRING SCMS_TEXT_TO_BINARY SCMS_TEXT_TO_FTEXT SCMS_TEXT_TO_XSTRING SCMS_XSTRING_TO_BINARY
