2023 Mar 08 7:27 PM
Hello ,
I am using REST API to Read data from sharepoint which is in excel file ,
on first access i am able to get data with 200 response , but when i am accessing it for second time its getting response code 404 .
please share the solution.
below is the code which i have used to read data
*&---------------------------------------------------------------------*<br>*& Report <br>*&---------------------------------------------------------------------*<br>*&<br>*&---------------------------------------------------------------------*<br>REPORT zcloseair_int.<br><br>DATA : "LT_RESULT TYPE STANDARD TABLE OF TY_RESULT,<br> lv_code TYPE i,<br> lv_reason TYPE string,<br> cn_stored TYPE recabool.<br><br>DATA: lv_url TYPE string.<br>DATA: lv_url_token TYPE string.<br>DATA: lv_result TYPE string.<br>DATA: lv_result1 TYPE xstring.<br>DATA: response TYPE string,<br> response_x TYPE xstring,<br> lv_url1 TYPE string,<br> lv_auth TYPE string,<br> lv_auth2 TYPE string.<br><br><br>CONSTANTS : lv_initial_url TYPE string VALUE '<Your API>',<br> lc_delimiter TYPE cl_rsda_csv_converter=>char VALUE '"',<br> lc_separator TYPE cl_rsda_csv_converter=>char VALUE ','.<br><br><br>*** Getting Token<br><br>TYPES:<br> BEGIN OF t_entry,<br> access_token TYPE string,<br> token_type TYPE string,<br> expires_in TYPE n LENGTH 8,<br> scope TYPE string,<br> jti TYPE string,<br> END OF t_entry .<br><br>TYPES:<br> t_entry_map TYPE SORTED TABLE OF t_entry WITH UNIQUE KEY access_token.<br>DATA: m_entries TYPE t_entry.<br>DATA: lr_instance TYPE REF TO /ui5/cl_json_parser.<br><br>DATA: lo_http_client TYPE REF TO if_http_client. "HTTP Client Abstraction<br>DATA: lv_length TYPE i,<br> lt_binary TYPE STANDARD TABLE OF x255.<br>DATA: it_line TYPE TABLE OF string.<br>DATA: it_line1 TYPE TABLE OF string.<br>SPLIT lv_result AT cl_abap_char_utilities=>cr_lf INTO TABLE it_line.<br>TYPES: BEGIN OF ty_data,<br> xblnrs TYPE string,<br> bukrs TYPE bukrs,<br> blart TYPE blart,<br> bldat TYPE bldat,<br> budat TYPE budat,<br> xblnr TYPE xblnr,<br> buzei TYPE buzei,<br> waers TYPE waers,<br> bktxt TYPE bktxt,<br> xref1 TYPE xref1,<br> xref2 TYPE xref2,<br> newbs TYPE newbs,<br> newko TYPE newko,<br> customer TYPE string,<br> account TYPE num6,<br> newum TYPE newum,<br> wrbtr TYPE char26,<br> dmbtr TYPE char26,<br> hkont TYPE hkont,<br> zfbdt TYPE char10, "zfbdt,<br> zterm TYPE char4, "zterm,<br> zlsch TYPE char1, "zlsch,<br> zuonr TYPE char18, "zuonr,<br> sgtxt TYPE sgtxt,<br> Name TYPE string,<br> ort01 TYPE ort01,<br> pstlz TYPE pstlz,<br> land1 TYPE land1,<br> aufnr TYPE aufnr,<br> prctr TYPE prctr,<br> kostl TYPE kostl,<br> xref1s TYPE xref1,<br> xref2s TYPE xref2,<br> xref3 TYPE xref3,<br> kidno TYPE kidno,<br>* hkont TYPE hkont,<br> secco TYPE secco,<br> gsber TYPE gsber,<br> qsskz TYPE qsskz,<br> qsshb TYPE char26, "qsshb,<br> bupla TYPE bupla,<br> xmwst TYPE xmwst,<br> mwskz TYPE mwskz,<br> valut TYPE valut,<br> projk TYPE char24,<br> sap_poj_cod TYPE char24,<br> END OF ty_data.<br>DATA: lt_data TYPE STANDARD TABLE OF ty_data,<br> lt_data1 TYPE TABLE OF ty_data,<br> ls_data TYPE ty_data.<br>DATA: wa_documentheader TYPE bapiache09,<br> wa_obj TYPE bapiache09,<br> it_accountgl TYPE TABLE OF bapiacgl09,<br> it_accountreceivable TYPE TABLE OF bapiacar09,<br> it_currencyamount TYPE TABLE OF bapiaccr09,<br> it_return TYPE TABLE OF bapiret2,<br> wa_accountgl TYPE bapiacgl09,<br> wa_accountreceivable TYPE bapiacar09,<br> wa_currencyamount TYPE bapiaccr09,<br> wa_return TYPE bapiret2.<br>***/// Accessing API To get The Token<br>lv_url_token = 'https://zzzzz.accesscontrol.windows.net/e83d39e6-f19d-49ca-8261-07ae0659a01c/tokens/OAuth/2/'.<br>CLEAR lo_http_client.<br>CALL METHOD cl_http_client=>create_by_url<br> EXPORTING<br> url = lv_url_token<br> IMPORTING<br> client = lo_http_client<br> EXCEPTIONS<br> argument_not_found = 1<br> plugin_not_active = 2<br> internal_error = 3<br> pse_not_found = 4<br> pse_not_distrib = 5<br> pse_errors = 6<br> oa2c_set_token_error = 7<br> oa2c_missing_authorization = 8<br> oa2c_invalid_config = 9<br> oa2c_invalid_parameters = 10<br> oa2c_invalid_scope = 11<br> oa2c_invalid_grant = 12<br> OTHERS = 13.<br>IF sy-subrc <> 0.<br>ELSE.<br> lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.<br><br><br><br> CALL METHOD lo_http_client->request->set_method<br> EXPORTING<br> method = 'POST'.<br><br>**Fill header data<br> CALL METHOD lo_http_client->request->set_header_field<br> EXPORTING<br> name = 'Content-Type'<br> value = 'application/x-www-form-urlencoded'.<br> CALL METHOD lo_http_client->request->set_form_field<br> EXPORTING<br> name = 'grant_type'<br> value = 'refresh_token'.<br><br> CALL METHOD lo_http_client->request->set_form_field<br> EXPORTING<br> name = 'client_id'<br> value = 'zzzzzz'.<br><br> CALL METHOD lo_http_client->request->set_form_field<br> EXPORTING<br> name = 'client_secret'<br> value = 'zzzzzz'.<br><br> CALL METHOD lo_http_client->request->set_form_field<br> EXPORTING<br> name = 'resource'<br> value = 'zzzzzzzzz'.<br> CALL METHOD lo_http_client->request->set_form_field<br> EXPORTING<br> name = 'refresh_token'<br> value = 'zzzzzz' &&<br> 'zzzzzzzzzzz'.<br> lo_http_client->send( ).<br><br><br> lo_http_client->receive(<br> EXCEPTIONS<br> http_communication_failure = 1<br> http_invalid_state = 2<br> http_processing_failed = 3 ).<br><br> CALL METHOD lo_http_client->response->get_status<br> IMPORTING<br> code = lv_code<br> reason = lv_reason.<br><br>*** Read the result<br> CLEAR lv_result .<br><br> lv_result = lo_http_client->response->get_cdata( ).<br><br><br><br><br> CREATE OBJECT lr_instance.<br><br> IF lv_result IS NOT INITIAL. "Retrieving your Token here<br> response = lv_result.<br><br> /ui2/cl_json=>deserialize(<br> EXPORTING<br> json = response<br> pretty_name = /ui2/cl_json=>pretty_mode-camel_case<br> CHANGING<br> data = m_entries ).<br><br> lv_auth2 = m_entries-access_token. "+0(1016).<br> SHIFT lv_auth2 RIGHT DELETING TRAILING space.<br> CONDENSE lv_auth2.<br> response = response+17.<br><br> CONCATENATE 'Bearer' lv_auth2 INTO lv_auth SEPARATED BY space. "Using Token Value create your Authorization Code<br> ENDIF.<br><br><br> CALL METHOD lo_http_client->response->get_raw_message<br> RECEIVING<br> data = lv_result1.<br><br> CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'<br> EXPORTING<br> buffer = lv_result1<br>* APPEND_TO_TABLE = ' '<br> IMPORTING<br> output_length = lv_length<br> TABLES<br> binary_tab = lt_binary.<br><br> CALL FUNCTION 'SCMS_BINARY_TO_STRING'<br> EXPORTING<br> input_length = lv_length<br> IMPORTING<br> text_buffer = lv_result<br> TABLES<br> binary_tab = lt_binary<br> EXCEPTIONS<br> failed = 1<br> OTHERS = 2.<br>ENDIF.<br>lv_url = 'https://zzzzzz.sharepoint.com/sites/galaxy/_api/Web/GetFileByServerRelativeUrl(''/sites/galaxy/Accounts/wwwww_closeAir_Interface/Expenses/Invoice_test1.csv'')/$value'.<br><br>CLEAR lo_http_client.<br>CALL METHOD cl_http_client=>create_by_url<br> EXPORTING<br> url = lv_url<br> IMPORTING<br> client = lo_http_client<br> EXCEPTIONS<br> argument_not_found = 1<br> plugin_not_active = 2<br> internal_error = 3<br> pse_not_found = 4<br> pse_not_distrib = 5<br> pse_errors = 6<br> oa2c_set_token_error = 7<br> oa2c_missing_authorization = 8<br> oa2c_invalid_config = 9<br> oa2c_invalid_parameters = 10<br> oa2c_invalid_scope = 11<br> oa2c_invalid_grant = 12<br> OTHERS = 13.<br>IF sy-subrc <> 0.<br>ENDIF.<br><br>lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.<br><br>CALL METHOD lo_http_client->request->set_method<br> EXPORTING<br> method = 'GET'.<br><br>*Fill header data<br>* CALL METHOD lo_http_client->request->set_header_field<br>* EXPORTING<br>* name = 'Content-Type'<br>* value = 'application/x-www-form-urlencoded'.<br><br>CALL METHOD lo_http_client->request->set_header_field<br> EXPORTING<br> name = 'Content-Type'<br> value = 'application/json; odata=verbose'.<br><br>CALL METHOD lo_http_client->request->set_header_field<br> EXPORTING<br> name = 'Accept'<br> value = 'application/json; odata=verbose'.<br><br>CALL METHOD lo_http_client->request->set_header_field<br> EXPORTING<br> name = 'Authorization'<br> value = lv_auth.<br><br>lo_http_client->send( ).<br><br><br>lo_http_client->receive(<br> EXCEPTIONS<br> http_communication_failure = 1<br> http_invalid_state = 2<br> http_processing_failed = 3 ).<br><br>CALL METHOD lo_http_client->response->get_status<br> IMPORTING<br> code = lv_code<br> reason = lv_reason.<br><br>*** Read the result<br>CLEAR lv_result .<br>lv_result = lo_http_client->response->get_cdata( ).<br><br>*DATA:lt_data_t TYPE STANDARD TABLE OF string.<br>SPLIT lv_result AT cl_abap_char_utilities=>cr_lf INTO TABLE DATA(lt_data_t).<br>*SPLIT lv_result AT |\r\n| INTO TABLE DATA(lines).<br><br>DATA(lo_csv_converter) = cl_rsda_csv_converter=>create(<br> i_delimiter = lc_delimiter<br> i_separator = lc_separator ).<br>*DATA(lr_rsda) = NEW cl_rsda_csv_converter( ).<br>DATA(ls_structure) = VALUE ty_data( ).<br>LOOP AT lt_data_t<br> ASSIGNING FIELD-SYMBOL(<lfs_data>).<br><br> lo_csv_converter->csv_to_structure(<br> EXPORTING<br> i_data = <lfs_data> " I_DATA<br> IMPORTING<br> e_s_data = ls_structure " E_S_DATA<br> ).<br> IF sy-tabix EQ 1.<br> CONTINUE.<br> ELSE.<br> APPEND ls_structure TO lt_data.<br> ENDIF.<br><br>ENDLOOP.<br><br>lo_http_client->close( ).<br><br><br><br>**///// Selecting Data From Maping Tables.<br>SELECT * FROM zproject_map<br> INTO TABLE @DATA(li_PROJECT_MAP).<br><br>SELECT * FROM zglcode_map<br> INTO TABLE @DATA(li_ZGLCODE_MAP).<br><br>SELECT * FROM zcustomer_map<br> INTO TABLE @DATA(li_zcustomer_map).<br><br>**///// Selecting Data From Maping Tables.<br><br><br>LOOP AT lt_data INTO ls_data.<br>* IF sy-tabix <> 1.<br>* clear the variables<br> CLEAR: it_accountgl, it_accountreceivable, it_currencyamount, it_return.<br> CLEAR: wa_documentheader, wa_obj.<br>**********************************************************************<br>* Header<br>**********************************************************************<br>* Document Date<br> wa_documentheader-doc_date = ls_data-bldat.<br>* Posting Date<br> wa_documentheader-pstng_date = ls_data-budat.<br>* Document Type<br> wa_documentheader-doc_type = 'RV'. "ls_data-blart.<br>* Company Code<br> wa_documentheader-comp_code = ls_data-bukrs.<br>* Document Header Text<br> wa_documentheader-header_txt = ls_data-bktxt.<br>* Creator User name<br> wa_documentheader-username = sy-uname.<br>**********************************************************************<br>* Item<br>**********************************************************************<br> CLEAR wa_accountreceivable.<br>* Item number<br> ls_data-buzei = ls_data-buzei + 1.<br> wa_accountreceivable-itemno_acc = ls_data-buzei.<br>* General Ledger Account<br> DATA(ls_ZGLCODE_MAP) = VALUE #( li_ZGLCODE_MAP[ openar_glcode = ls_data-hkont ] OPTIONAL ).<br> wa_accountreceivable-gl_account = COND #( WHEN ls_ZGLCODE_MAP IS NOT INITIAL<br> THEN ls_ZGLCODE_MAP-sap_gl_code<br> ELSE ls_data-hkont ).<br>* Item Text<br> wa_accountreceivable-item_text = ls_data-sgtxt.<br>* Customer Number<br> DATA(ls_zcustomer_map) = VALUE #( li_zcustomer_map[ ex_kunnr = ls_data-customer ] OPTIONAL ).<br> wa_accountreceivable-customer = COND #( WHEN ls_zcustomer_map IS NOT INITIAL<br> THEN ls_zcustomer_map-in_kunnr<br> ELSE ls_data-customer ).<br>* Terms of Payment Key<br> wa_accountreceivable-pmnttrms = ls_data-zterm.<br>* Baseline Date for Due Date Calculation<br> wa_accountreceivable-bline_date = ls_data-zfbdt.<br> APPEND wa_accountreceivable TO it_accountreceivable.<br> CLEAR wa_currencyamount.<br><br> wa_currencyamount-itemno_acc = ls_data-buzei.<br>* Currency<br> wa_currencyamount-currency = ls_data-waers.<br>* Amount in Document Currency<br> wa_currencyamount-amt_doccur = ls_data-wrbtr.<br><br> APPEND wa_currencyamount TO it_currencyamount.<br> ls_data-buzei = ls_data-buzei + 1.<br> wa_currencyamount-amt_doccur = wa_currencyamount-amt_doccur * -1.<br> APPEND wa_currencyamount TO it_currencyamount.<br><br>* DATA(ls_ZPROJECT_MAP) = VALUE #( li_ZPROJECT_MAP[ ex_projk = ls_data-zuonr ] OPTIONAL ).<br><br><br> INSERT VALUE #( itemno_acc = 1<br> gl_account = COND #( WHEN ls_ZGLCODE_MAP IS NOT INITIAL<br> THEN ls_ZGLCODE_MAP-sap_gl_code<br> ELSE ls_data-hkont )<br>* tax_code = 'V0'<br> item_text = 'BAPI Test G/L line item'<br> customer = COND #( WHEN ls_zcustomer_map IS NOT INITIAL<br> THEN ls_zcustomer_map-in_kunnr<br> ELSE ls_data-customer )<br>* profit_ctr = '0000002002'<br>* de_cre_ind = 'H'<br>* comp_code = 'RS01'<br>* doc_type = 'DR'<br>*it_accountgl-fis_period = '06'.<br>*it_accountgl-fisc_year = '2009'.<br> pstng_date = sy-datum ) INTO TABLE it_accountgl.<br><br><br>* " Posting Key & Indicator: Negative posting<br>* clear wa_extension2.<br>* clear wa_zaccdocuext.<br>* wa_zaccdocuext-posnr = ls_data-buzei.<br>* wa_zaccdocuext-bschl = ls_data-bschl.<br>* wa_extension2-structure = 'ZACCDOCUEXT'.<br>* wa_extension2-valuepart1 = wa_zaccdocuext.<br>* append wa_extension2 to it_extension2.<br><br>*clear l_katyp.<br>*select single katyp<br>* into l_katyp<br>* from cskb<br>* where kstar = ls_data-hkont.<br>*if l_katyp = '11'.<br>* " Profit Segment<br>* clear wa_criteria.<br>* wa_criteria-itemno_acc = ls_data-buzei.<br>* wa_criteria-fieldname = 'KAUFN'. " Sales Order<br>* wa_criteria-character = ls_data-vbeln.<br>* append wa_criteria to it_criteria.<br>* wa_criteria-fieldname = 'KDPOS'. " Sales Order Item<br>* wa_criteria-character = ls_data-posnr.<br>* append wa_criteria to it_criteria.<br>* wa_criteria-fieldname = 'KNDNR'. " Customer<br>* wa_criteria-character = wa_vbak-kunnr.<br>* append wa_criteria to it_criteria.<br>* wa_criteria-fieldname = 'ARTNR'. " Material<br>* wa_criteria-character = ls_data-matnr.<br>* append wa_criteria to it_criteria.<br>*endif.<br>* Call BAPI to post document<br><br><br> CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'<br> EXPORTING<br> documentheader = wa_documentheader<br>* CUSTOMERCPD =<br>* CONTRACTHEADER =<br> IMPORTING<br> obj_type = wa_obj-obj_type<br> obj_key = wa_obj-obj_key<br> obj_sys = wa_obj-obj_sys<br> TABLES<br> accountgl = it_accountgl<br> accountreceivable = it_accountreceivable<br>* ACCOUNTPAYABLE =<br>* ACCOUNTTAX =<br> currencyamount = it_currencyamount<br>* criteria = it_criteria<br>* valuefield = it_valuefield<br>* EXTENSION1 =<br> return = it_return<br>* PAYMENTCARD =<br>* CONTRACTITEM =<br>* extension2 = it_extension2<br>* REALESTATE =<br>* ACCOUNTWT =<br> .<br> READ TABLE it_return INTO wa_return WITH KEY type = 'E'.<br> IF sy-subrc = 0.<br> CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.<br>* PERFORM frm_message_display.<br> ELSE.<br> CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'<br> EXPORTING<br> wait = 'X'.<br><br> ENDIF.<br>* ENDIF.<br>ENDLOOP.<br><br>LOOP AT it_return INTO DATA(ls_return).<br> WRITE:/ ls_return-type,ls_return-id,<br> ls_return-message,ls_return-message_v1,<br> ls_return-parameter.<br><br>ENDLOOP.<br>
Thanks
Vikash
2023 Mar 09 9:42 AM
Isn't it OAuth2?
Your first HTTP request is to get the token.
Your second HTTP request is to run the API and it's 404 which means not found.
You say the second one returns 404 page not found, it means that the URL is invalid
https://zzzzzz.sharepoint.com/sites/galaxy/_api/Web/GetFileByServerRelativeUrl
2023 Mar 09 5:50 PM
Hi, 404 error means connection refused, if URL is wrong it will not be accessible even on first time, but as i mentioned i am able to access for the first time i am getting data from both of the the API's , but when i execute for second time the second url https://zzzzzz.sharepoint.com/sites/galaxy/_api/Web/GetFileByServerRelativeUrl returns 404 error 'Connection refused'
2023 Mar 10 8:53 AM
Weird to have 404 page not found with a different error reason.
Usually it's 401 or 403 for login error or whatever.
Anyway, did you try to do 3 requests, 1 to get a token followed by 2 calls to API?
Does it work? (it should, because the token has a sufficient expiration time)
2023 Mar 11 9:09 AM
Hi sandra,
no it didn't work , still returning 404 connection refused
lv_url_token = 'https://zzzzz.accesscontrol.windows.net/e83d39e6-f19d-49ca-8261-07ae0659a01c/tokens/OAuth/2/'.
CLEAR lo_http_client.
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_url_token
IMPORTING
client = lo_http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
pse_not_found = 4
pse_not_distrib = 5
pse_errors = 6
oa2c_set_token_error = 7
oa2c_missing_authorization = 8
oa2c_invalid_config = 9
oa2c_invalid_parameters = 10
oa2c_invalid_scope = 11
oa2c_invalid_grant = 12
OTHERS = 13.
IF sy-subrc <> 0.
ELSE.
lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.
* lo_http_client->authenticate(
* EXPORTING
* username = 'sonal.musale@inveniolsi.com'
* password = 'Ganesh@2023@'
* ).
CALL METHOD lo_http_client->request->set_method
EXPORTING
method = 'POST'.
**Fill header data
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'application/x-www-form-urlencoded'.
CALL METHOD lo_http_client->request->set_form_field
EXPORTING
name = 'grant_type'
value = 'refresh_token'.
CALL METHOD lo_http_client->request->set_form_field
EXPORTING
name = 'client_id'
value = 'zzzzzzzzzzzzzzzzzzzz'.
CALL METHOD lo_http_client->request->set_form_field
EXPORTING
name = 'client_secret'
value = 'zzzzzzzzzzzzzzzz'.
CALL METHOD lo_http_client->request->set_form_field
EXPORTING
name = 'resource'
value = '00000003-0000-0ff1-ce00-000000000000/invenio12.sharepoint.com@e83d39e6-f19d-49ca-8261-07ae0659a01c'.
CALL METHOD lo_http_client->request->set_form_field
EXPORTING
name = 'refresh_token'
value = 'zzzzzzzzzzzzzzzzzzzzz' &&
'zzzzzzzzzzz'.
lo_http_client->send( ).
lo_http_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).
CALL METHOD lo_http_client->response->get_status
IMPORTING
code = lv_code
reason = lv_reason.
*** Read the result
CLEAR lv_result .
* CALL METHOD lo_http_client->response->get_header_field "get_form_field_cs
* EXPORTING
* name = 'access_token'
* RECEIVING
* value = lv_result.
lv_result = lo_http_client->response->get_cdata( ).
CREATE OBJECT lr_instance.
IF lv_result IS NOT INITIAL. "Retrieving your Token here
response = lv_result.
/ui2/cl_json=>deserialize(
EXPORTING
json = response
pretty_name = /ui2/cl_json=>pretty_mode-camel_case
CHANGING
data = m_entries ).
lv_auth2 = m_entries-access_token. "+0(1016).
SHIFT lv_auth2 RIGHT DELETING TRAILING space.
CONDENSE lv_auth2.
response = response+17.
CONCATENATE 'Bearer' lv_auth2 INTO lv_auth SEPARATED BY space. "Using Token Value create your Authorization Code
ENDIF.
CALL METHOD lo_http_client->response->get_raw_message
RECEIVING
data = lv_result1.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lv_result1
* APPEND_TO_TABLE = ' '
IMPORTING
output_length = lv_length
TABLES
binary_tab = lt_binary.
CALL FUNCTION 'SCMS_BINARY_TO_STRING'
EXPORTING
input_length = lv_length
IMPORTING
text_buffer = lv_result
TABLES
binary_tab = lt_binary
EXCEPTIONS
failed = 1
OTHERS = 2.
ENDIF.
lv_url = 'https://zzzzzzzz.sharepoint.com/sites/galaxy/_api/Web/GetFileByServerRelativeUrl(''/sites/galaxy/Accounts/zzzzz_closeAir_Interface/Expenses/Invoice_test1.csv'')/$value'.
CLEAR lo_http_client.
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_url
IMPORTING
client = lo_http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
pse_not_found = 4
pse_not_distrib = 5
pse_errors = 6
oa2c_set_token_error = 7
oa2c_missing_authorization = 8
oa2c_invalid_config = 9
oa2c_invalid_parameters = 10
oa2c_invalid_scope = 11
oa2c_invalid_grant = 12
OTHERS = 13.
IF sy-subrc <> 0.
ENDIF.
lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.
CALL METHOD lo_http_client->request->set_method
EXPORTING
method = 'GET'.
*Fill header data
* CALL METHOD lo_http_client->request->set_header_field
* EXPORTING
* name = 'Content-Type'
* value = 'application/x-www-form-urlencoded'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'application/json; odata=verbose'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Accept'
value = 'application/json; odata=verbose'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Authorization'
value = lv_auth.
lo_http_client->send( ).
lo_http_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).
CALL METHOD lo_http_client->response->get_status
IMPORTING
code = lv_code
reason = lv_reason.
***///// Calling file Read API Again
CLEAR lo_http_client.
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_url
IMPORTING
client = lo_http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
pse_not_found = 4
pse_not_distrib = 5
pse_errors = 6
oa2c_set_token_error = 7
oa2c_missing_authorization = 8
oa2c_invalid_config = 9
oa2c_invalid_parameters = 10
oa2c_invalid_scope = 11
oa2c_invalid_grant = 12
OTHERS = 13.
IF sy-subrc <> 0.
ENDIF.
lo_http_client->propertytype_logon_popup = lo_http_client->co_disabled.
CALL METHOD lo_http_client->request->set_method
EXPORTING
method = 'GET'.
*Fill header data
* CALL METHOD lo_http_client->request->set_header_field
* EXPORTING
* name = 'Content-Type'
* value = 'application/x-www-form-urlencoded'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'application/json; odata=verbose'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Accept'
value = 'application/json; odata=verbose'.
CALL METHOD lo_http_client->request->set_header_field
EXPORTING
name = 'Authorization'
value = lv_auth.
lo_http_client->send( ).
lo_http_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).
CALL METHOD lo_http_client->response->get_status
IMPORTING
code = lv_code
reason = lv_reason.
2023 Mar 11 5:57 PM
I guess you need to check Sharepoint API documentation, how to use it exactly.
You'd better ask in Microsoft-related forums, or Stack Overflow, or things like that.
Possibly, someone working on SAP product may also know.