Fix http service githandler in older releases

Objecthandler did not accommodate for icf node created for the http service in older releases
This commit is contained in:
Ben9ka 2025-02-18 08:24:58 +01:00 committed by GitHub
parent 188bf8d69a
commit 1ae5be8e59
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -34,6 +34,11 @@ CLASS zcl_abapgit_object_http DEFINITION
object_state TYPE c LENGTH 1,
END OF ty_gs_object_version.
TYPES: BEGIN OF ty_icf_node,
icfname TYPE c LENGTH 15,
icfparguid TYPE c LENGTH 25,
END OF ty_icf_node.
ENDCLASS.
@ -85,6 +90,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
ls_abap_lang TYPE ty_gs_object_version,
lo_instance TYPE REF TO object,
lv_tadir_name TYPE tadir-obj_name,
lv_icfnode TYPE ty_icf_node,
lt_ret TYPE STANDARD TABLE OF bapiret2.
TRY.
@ -98,6 +104,14 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
EXPORTING iv_name = 'HTTPHDL'
CHANGING cg_data = lt_handler ).
TRY.
"link to icf node (in releases older than 757, a http service requires a icf node to function)
io_xml->read(
EXPORTING iv_name = 'HTTPICFNODE'
CHANGING cg_data = lv_icfnode ).
CATCH cx_root.
ENDTRY.
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'.
IF sy-subrc = 0.
"update
@ -152,6 +166,9 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
EXPORTING
texts = ls_description.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_ICF_SERVICE')
EXPORTING
iv_icfservice = lv_icfnode.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
EXPORTING
run_dark = abap_true
@ -159,16 +176,6 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
korrnum = iv_transport.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
lv_tadir_name = lv_http_servid.
CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE')
EXPORTING
iv_type = 'HTTP'
iv_name = lv_tadir_name
iv_silent = abap_true
iv_task = iv_transport
IMPORTING
et_log = lt_ret.
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@ -275,6 +282,16 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
iv_name = 'HTTPHDL'
ig_data = lt_handler ).
TRY.
"link to icf node (in releases older than 757, a http service requires a icf node to function)
DATA lv_icfnode TYPE ty_icf_node.
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_ICF_SERVICE') IMPORTING ev_icfservice = lv_icfnode.
io_xml->add(
iv_name = 'HTTPICFNODE'
ig_data = lv_icfnode ).
CATCH cx_root.
ENDTRY.
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.