- Description
- LANG data element
- try-catch
This commit is contained in:
Marc Bernard 2024-12-17 16:44:11 +00:00
parent 7442889199
commit 119e368d37
3 changed files with 124 additions and 119 deletions

View File

@ -248,9 +248,12 @@ CLASS zcl_abapgit_file_deserialize IMPLEMENTATION.
WHEN 'ENSC'. WHEN 'ENSC'.
lt_requires = lt_items. lt_requires = lt_items.
DELETE lt_requires WHERE obj_type <> 'ENHS'. DELETE lt_requires WHERE obj_type <> 'ENHS'.
WHEN 'IWMO' OR 'IWSV' OR 'IWVB' OR 'SUSH'. WHEN 'IWMO' OR 'IWSV' OR 'IWVB'.
lt_requires = lt_items. lt_requires = lt_items.
DELETE lt_requires WHERE obj_type <> 'SRVB'. DELETE lt_requires WHERE obj_type <> 'SRVB'.
WHEN 'SUSH'.
lt_requires = lt_items.
DELETE lt_requires WHERE obj_type <> 'SRVB' AND obj_type <> 'HTTP'.
WHEN 'SRVB'. WHEN 'SRVB'.
lt_requires = lt_items. lt_requires = lt_items.
DELETE lt_requires WHERE obj_type <> 'SRVD'. DELETE lt_requires WHERE obj_type <> 'SRVD'.

View File

@ -2,11 +2,11 @@ CLASS zcl_abapgit_object_http DEFINITION
PUBLIC PUBLIC
INHERITING FROM zcl_abapgit_objects_super INHERITING FROM zcl_abapgit_objects_super
FINAL FINAL
CREATE PUBLIC . CREATE PUBLIC.
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES zif_abapgit_object . INTERFACES zif_abapgit_object.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -20,7 +20,7 @@ CLASS zcl_abapgit_object_http DEFINITION
TYPES: BEGIN OF ty_uconhttpservtext, TYPES: BEGIN OF ty_uconhttpservtext,
id TYPE c LENGTH 30, id TYPE c LENGTH 30,
version TYPE c LENGTH 1, version TYPE c LENGTH 1,
lang TYPE lang, lang TYPE c LENGTH 1,
shorttext TYPE c LENGTH 255, shorttext TYPE c LENGTH 255,
END OF ty_uconhttpservtext. END OF ty_uconhttpservtext.
TYPES: BEGIN OF ty_handler, TYPES: BEGIN OF ty_handler,
@ -33,33 +33,37 @@ CLASS zcl_abapgit_object_http DEFINITION
id TYPE c LENGTH 1, id TYPE c LENGTH 1,
object_state TYPE c LENGTH 1, object_state TYPE c LENGTH 1,
END OF ty_gs_object_version. END OF ty_gs_object_version.
ENDCLASS. ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION. CLASS zcl_abapgit_object_http IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by. METHOD zif_abapgit_object~changed_by.
TRY. TRY.
SELECT SINGLE changedby FROM ('uconhttpservhead') INTO rv_user WHERE id = ms_item-obj_name. SELECT SINGLE changedby FROM ('UCONHTTPSERVHEAD') INTO rv_user WHERE id = ms_item-obj_name.
IF sy-subrc <> 0. IF sy-subrc <> 0.
rv_user = c_user_unknown. rv_user = c_user_unknown.
ENDIF. ENDIF.
CATCH cx_root. CATCH cx_root.
zcx_abapgit_exception=>raise( 'HTTP not supported' ). zcx_abapgit_exception=>raise( 'HTTP not supported' ).
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_object~delete. METHOD zif_abapgit_object~delete.
DATA lo_name TYPE c LENGTH 30.
lo_name = ms_item-obj_name. DATA lv_name TYPE c LENGTH 30.
lv_name = ms_item-obj_name.
TRY. TRY.
CALL METHOD ('CL_UCON_API_FACTORY')=>('DELETE_HTTP_SERVICE') CALL METHOD ('CL_UCON_API_FACTORY')=>('DELETE_HTTP_SERVICE')
EXPORTING EXPORTING
name = lo_name name = lv_name
devclass = iv_package. devclass = iv_package.
CATCH cx_root. CATCH cx_root.
zcx_abapgit_exception=>raise( 'HTTP not supported' ). zcx_abapgit_exception=>raise( 'HTTP not supported' ).
@ -69,103 +73,91 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
METHOD zif_abapgit_object~deserialize. METHOD zif_abapgit_object~deserialize.
DATA: lv_http_servid TYPE c LENGTH 30,
lt_handler TYPE TABLE OF ty_handler, DATA: lv_http_servid TYPE c LENGTH 30,
ls_handler LIKE LINE OF lt_handler, lt_handler TYPE TABLE OF ty_handler,
ls_description TYPE ty_uconhttpservtext, ls_handler LIKE LINE OF lt_handler,
ls_korr TYPE trkorr, ls_description TYPE ty_uconhttpservtext,
lv_check_object_name TYPE c LENGTH 40, lv_check_object_name TYPE c LENGTH 40,
lx_root TYPE REF TO cx_root, lx_root TYPE REF TO cx_root,
lv_id TYPE c LENGTH 30, lv_id TYPE c LENGTH 30,
lo_http TYPE REF TO object, lo_http TYPE REF TO object,
lv_abap_lang TYPE ty_gs_object_version, ls_abap_lang TYPE ty_gs_object_version,
lo_transport TYPE REF TO zcl_abapgit_default_transport, lo_instance TYPE REF TO object,
lv_instance TYPE REF TO object, lv_tadir_name TYPE tadir-obj_name,
lv_tadir_name TYPE tadir-obj_name, lt_ret TYPE bapiret2_t.
lt_ret TYPE bapiret2_t.
TRY. TRY.
TRY. io_xml->read(
io_xml->read( EXPORTING iv_name = 'HTTPID'
EXPORTING iv_name = 'HTTPID' CHANGING cg_data = lv_http_servid ).
CHANGING cg_data = lv_http_servid ). io_xml->read(
io_xml->read( EXPORTING iv_name = 'HTTPTEXT'
EXPORTING iv_name = 'HTTPTEXT' CHANGING cg_data = ls_description ).
CHANGING cg_data = ls_description ). io_xml->read(
io_xml->read( EXPORTING iv_name = 'HTTPHDL'
EXPORTING iv_name = 'HTTPHDL' CHANGING cg_data = lt_handler ).
CHANGING cg_data = lt_handler ).
CREATE OBJECT lo_transport.
ls_korr = lo_transport->zif_abapgit_default_transport~get( )-ordernum.
CATCH zcx_abapgit_exception INTO lx_root. " Exception SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'.
zcx_abapgit_exception=>raise( iv_text = lx_root->get_text( ) IF sy-subrc = 0.
ix_previous = lx_root->previous ). "update
ENDTRY. CALL METHOD ('CL_UCON_API_FACTORY')=>('GET_HTTP_SERVICE')
EXPORTING
name = lv_http_servid
no_auth_check = abap_true
RECEIVING
http_service = lo_http.
ELSE.
"create
CALL METHOD ('CL_UCON_API_FACTORY')=>('NEW_HTTP_SERVICE')
EXPORTING
name = lv_http_servid
RECEIVING
http_service = lo_http.
ENDIF.
SELECT SINGLE id FROM ('uconhttpservhead') INTO lv_id WHERE id = lv_http_servid AND version = 'A'. CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_HANDLER')
EXPORTING
handler = lt_handler.
IF lt_handler IS NOT INITIAL.
READ TABLE lt_handler INTO ls_handler INDEX 1.
"get language version from abap class
TRY. lv_check_object_name = ls_handler-servicehandler.
IF sy-subrc = 0. IF lv_check_object_name IS NOT INITIAL.
"update TRY.
CALL METHOD ('CL_UCON_API_FACTORY')=>('GET_HTTP_SERVICE') CALL METHOD ('CL_ABAP_LANGUAGE_VERSION')=>('GET_INSTANCE')
EXPORTING RECEIVING
name = lv_http_servid ro_version_handler = lo_instance.
no_auth_check = abap_true CALL METHOD lo_instance->('IF_ABAP_LANGUAGE_VERSION~GET_VERSION_OF_OBJECT')
RECEIVING EXPORTING
http_service = lo_http. iv_object_type = 'CLAS'
ELSE. iv_object_name = lv_check_object_name
"create RECEIVING
CALL METHOD ('CL_UCON_API_FACTORY')=>('NEW_HTTP_SERVICE') rs_object_version = ls_abap_lang.
EXPORTING
name = lv_http_servid
RECEIVING
http_service = lo_http.
ENDIF.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_HANDLER') IF ls_abap_lang-id = 'X'. "language version X not supported, use space instead
EXPORTING ls_abap_lang-id = space.
handler = lt_handler. ENDIF.
IF lt_handler IS NOT INITIAL.
READ TABLE lt_handler INTO ls_handler INDEX 1.
"get language version from abap class
lv_check_object_name = ls_handler-servicehandler. CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_LANGUAGE_VERSION')
IF lv_check_object_name IS NOT INITIAL. EXPORTING
TRY. iv_langu_version = ls_abap_lang-id.
CALL METHOD ('CL_ABAP_LANGUAGE_VERSION')=>('GET_INSTANCE') RECEIVING ro_version_handler = lv_instance. CATCH cx_root ##NO_HANDLER.
CALL METHOD lv_instance->('IF_ABAP_LANGUAGE_VERSION~GET_VERSION_OF_OBJECT') " ABAP language version not supported in this system
EXPORTING ENDTRY.
iv_object_type = 'CLAS' ENDIF.
iv_object_name = lv_check_object_name ENDIF.
RECEIVING
rs_object_version = lv_abap_lang.
IF lv_abap_lang-id = 'X'. "language version X not supported, use space instead CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
lv_abap_lang-id = space. EXPORTING
ENDIF. texts = ls_description.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_LANGUAGE_VERSION') EXPORTING
EXPORTING iv_langu_version = lv_abap_lang-id. run_dark = abap_true
CATCH cx_root INTO lx_root. dev_class = iv_package
zcx_abapgit_exception=>raise( iv_text = lx_root->get_text( ) korrnum = iv_transport.
ix_previous = lx_root ). CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
ENDTRY.
ENDIF.
ENDIF.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
EXPORTING
texts = ls_description.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
EXPORTING
run_dark = abap_true
dev_class = iv_package
korrnum = ls_korr.
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise( iv_text = lx_root->get_text( )
ix_previous = lx_root->previous ).
ENDTRY.
lv_tadir_name = lv_http_servid. lv_tadir_name = lv_http_servid.
CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE') CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE')
@ -173,19 +165,23 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
iv_type = 'HTTP' iv_type = 'HTTP'
iv_name = lv_tadir_name iv_name = lv_tadir_name
iv_silent = abap_true iv_silent = abap_true
iv_task = ls_korr iv_task = iv_transport
IMPORTING IMPORTING
et_log = lt_ret. et_log = lt_ret.
CATCH cx_root INTO lx_root. CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise( lx_root->get_text( ) ). zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_object~exists. METHOD zif_abapgit_object~exists.
DATA lv_id TYPE c LENGTH 30. DATA lv_id TYPE c LENGTH 30.
TRY. TRY.
SELECT SINGLE id FROM ('uconhttpservhead') INTO lv_id WHERE id = ms_item-obj_name AND version = 'A'. SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = ms_item-obj_name AND version = 'A'.
rv_bool = boolc( sy-subrc = 0 ). rv_bool = boolc( sy-subrc = 0 ).
CATCH cx_root. CATCH cx_root.
zcx_abapgit_exception=>raise( 'HTTP not supported' ). zcx_abapgit_exception=>raise( 'HTTP not supported' ).
@ -198,6 +194,11 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_object~get_deserialize_order.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_object~get_deserialize_steps. METHOD zif_abapgit_object~get_deserialize_steps.
APPEND zif_abapgit_object=>gc_step_id-abap TO rt_steps. APPEND zif_abapgit_object=>gc_step_id-abap TO rt_steps.
ENDMETHOD. ENDMETHOD.
@ -213,11 +214,26 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
METHOD zif_abapgit_object~jump. METHOD zif_abapgit_object~jump.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_object~map_filename_to_object.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_object~map_object_to_filename.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_object~serialize. METHOD zif_abapgit_object~serialize.
DATA: lv_http_srv_id TYPE c LENGTH 30, DATA: lv_http_srv_id TYPE c LENGTH 30,
@ -227,6 +243,7 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
lv_text TYPE string, lv_text TYPE string,
lx_root TYPE REF TO cx_root, lx_root TYPE REF TO cx_root,
lv_name TYPE c LENGTH 30. lv_name TYPE c LENGTH 30.
TRY. TRY.
lv_http_srv_id = ms_item-obj_name. lv_http_srv_id = ms_item-obj_name.
"read http service object "read http service object
@ -246,6 +263,7 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
"add data to output "add data to output
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_NAME') RECEIVING name = lv_name. CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_NAME') RECEIVING name = lv_name.
io_xml->add( io_xml->add(
iv_name = 'HTTPID' iv_name = 'HTTPID'
ig_data = lv_name ). ig_data = lv_name ).
@ -257,26 +275,10 @@ CLASS ZCL_ABAPGIT_OBJECT_HTTP IMPLEMENTATION.
io_xml->add( io_xml->add(
iv_name = 'HTTPHDL' iv_name = 'HTTPHDL'
ig_data = lt_handler ). ig_data = lt_handler ).
CATCH cx_root INTO lx_root. CATCH cx_root INTO lx_root.
lv_text = lx_root->get_text( ). zcx_abapgit_exception=>raise_with_text( lx_root ).
"ii_log->add_error( iv_msg = lv_text is_item = ms_item ). " Exception
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
ENDTRY. ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~map_filename_to_object.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_object~get_deserialize_order.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_object~map_object_to_filename.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -5,7 +5,7 @@
<VSEOCLASS> <VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_HTTP</CLSNAME> <CLSNAME>ZCL_ABAPGIT_OBJECT_HTTP</CLSNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>zcl_abapgit_object_http</DESCRIPT> <DESCRIPT>abapGit - HTTP - HTTP Destination</DESCRIPT>
<STATE>1</STATE> <STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL> <CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>