in src/zadf/zcl_adf_service_eventhub.clas.abap [0:0]
METHOD create_consumer_group.
DATA : lo_response TYPE REF TO if_rest_entity,
lo_request TYPE REF TO if_rest_entity,
lv_expiry TYPE string,
lv_sas_token TYPE string,
lv_msg TYPE string,
lcx_adf_service TYPE REF TO zcx_adf_service,
lv_path_prefix TYPE string,
lv_host TYPE rfcdisplay-rfchost,
lv_host_s TYPE string,
lt_lines TYPE STANDARD TABLE OF tline,
lw_lines TYPE tline,
lv_body TYPE string.
IF go_rest_api IS BOUND.
TRY.
get_sas_token( EXPORTING iv_baseaddress = gv_uri
RECEIVING rv_sas_token = lv_sas_token ).
CATCH zcx_adf_service INTO lcx_adf_service.
lv_msg = lcx_adf_service->get_text( ).
MESSAGE lv_msg TYPE 'I'.
ENDTRY.
*Passing new consumer group name in URI along with query parameters
CONCATENATE '/' iv_consumer_group '?api-version=2014-01' INTO lv_path_prefix.
IF NOT lv_path_prefix IS INITIAL.
go_rest_api->zif_rest_framework~set_uri( lv_path_prefix ).
ENDIF.
lv_host_s = gv_host.
* Add header attributes in Rest call
add_request_header( iv_name = 'Content-Type' iv_value = 'application/xml; charset=utf-8' ).
add_request_header( iv_name = 'Host' iv_value = lv_host_s ).
add_request_header( iv_name = 'Authorization' iv_value = lv_sas_token ).
**Reading xml body from text ID
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'ST'
language = 'E'
name = 'ZADF_EVENTHUB_CREATE_CONSUMER'
object = 'TEXT'
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
IF NOT lt_lines IS INITIAL.
LOOP AT lt_lines INTO lw_lines.
CONCATENATE lv_body lw_lines-TDLINE INTO lv_body.
CLEAR: lw_lines.
ENDLOOP.
go_rest_api->zif_rest_framework~set_string_body( lv_body ).
ENDIF.
**Rest API call to get response from Azure Destination
lo_response = go_rest_api->zif_rest_framework~execute( io_entity = lo_request async = gv_asynchronous is_retry = gv_is_try ).
ev_http_status = go_rest_api->get_status( ).
go_rest_api->close( ).
IF lo_response IS BOUND.
response = lo_response->get_string_data( ).
ELSE.
RAISE EXCEPTION TYPE zcx_adf_service
EXPORTING
textid = zcx_adf_service=>restapi_response_not_found
interface_id = gv_interface_id.
ENDIF.
ENDIF.