Está en la página 1de 2

METHOD get_cargo_id.

DATA lt_callstack TYPE abap_callstack.

"Obtenemos el metodo que se encuentra en ejecuci�n


CALL FUNCTION 'SYSTEM_CALLSTACK'
EXPORTING
max_level = 1
IMPORTING
callstack = lt_callstack.

DATA(lv_method_name) = lt_callstack[ 1 ]-blockname.

* CALL METHOD zcl_utility_indra=>get_method_name


* IMPORTING
* e_name = DATA(lv_method_name).

me->get_const_object_url(
EXPORTING
i_method_name = lv_method_name
IMPORTING
e_url_dinamic = DATA(lv_url_dinamic)
).

* CONSTANTS lc_authorization TYPE string VALUE 'Bearer


sk_live_rxRRLdsO8FRgVJmR'.

CONCATENATE me->gr_url_consumer " Url de consumo (constante de clase)


lv_url_dinamic " Url dinamica obtenida de la tabla de
cosntante Culqi
i_id "Parametro de Entrada
INTO DATA(lv_url).

cl_http_client=>create_by_url(
EXPORTING
url = lv_url
IMPORTING
client = DATA(lo_client)
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4
).
IF sy-subrc EQ 0.

lo_client->request->set_header_field( name = '~request_method' value =


'GET' ).
lo_client->request->set_header_field( name = 'Authorization' value = me-
>gc_llave_cargo ).
* lo_client->request->set_header_field( name = 'Authorization' value =
lc_authorization ).
lo_client->request->set_method( 'GET' ).
lo_client->request->set_method( if_http_request=>co_request_method_get ).

" Paso 2
lo_client->send(
EXPORTING
timeout = 15
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
http_invalid_timeout = 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.

"Paso 3
lo_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4
).
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

"Paso 4
DATA(lv_result) = lo_client->response->get_cdata( ).

/ui2/cl_json=>deserialize( EXPORTING json = lv_result


pretty_name =
/ui2/cl_json=>pretty_mode-camel_case
CHANGING data = es_result ).

ENDIF.
ENDMETHOD.

También podría gustarte