BLOB Url olarak verilen bir link'den SAP sisteminize veri alma işlemine ihtiyacınız olabilir.
Verilen BLOB Url excel,word,csv,txt,img gibi formatlar da olabilir.
Verilen BLOB url link için basit bir uygulama ile link içeriğine erişebilirsiniz.
Örnek:
Blob URL:
https://test.blob.test/test/43f9/20240903Arc-GENAL 20 C4 B0 C3 87 C4 B0N.xlsx
Verilen Blob URL bir excel dosyası generate ederek binary data olarak dönüş yapacak bir http post request gönderelim.
****Create the HTTP client
TRY.
CALL METHOD cl_http_
EXPORTING
url = blob_url
IMPORTING
client = client
EXCEPTIONS
OTHERS = 1.
client->send( ).
client->receive( ).
res_doc = client->respon
client->close( ).
CATCH cx_root.
* WRITE: / 'HTTP
ENDTRY.
response olarak dönen veri seti binary ve string veri seti şeklinde tek satır olarak dönmekte.Excel formata çevirmek için solix_tab çevirerek internal tab çeviriyoruz.
data lt_records TYPE
* "convert binary data to
CALL METHOD cl_bcs_convert=>
EXPORTING
iv_xstring = res_doc
RECEIVING
et_solix = lt_records
Solix_tab ile internal table çevrilen binary listesi xtring olarak tekrar çevrilerek excel bilgisi için ön hazırlık tamamlanmış olmakta.
data: lv_headerxstring TYPE
lv_filelength TYPE
lv_filelength = xstrlen( res
CALL FUNCTION 'SCMS_BINARY_
EXPORTING
input_length = lv_
IMPORTING
buffer = lv_
TABLES
binary_tab = lt_
EXCEPTIONS
failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
"Implement suitable error
ENDIF.
excel format çevrilerek,excel içeriği alınmakta
DATA : lo_excel_ref TYPE REF
lv_filename = url.
TRY .
lo_excel_ref = NEW cl_
CATCH cx_fdt_excel_core.
"Implement suitable
EXIT.
ENDTRY .
"Get List of Worksheets
lo_excel_ref->if_fdt_doc_
IMPORTING
worksheet_names = DATA(l
IF NOT lt_worksheets IS INIT
READ TABLE lt_worksheets I
DATA(lo_data_ref) = lo_
"now you have excel work
ASSIGN lo_data_ref->* TO <
ENDIF.