This commit is contained in:
oblomov-dev 2024-10-14 10:03:09 +02:00 committed by GitHub
parent 6e9cf4181c
commit 6a9eeafa43
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 13 additions and 370 deletions

View File

@ -426,40 +426,6 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS check_raise_srtti_installed.
CLASS-METHODS db_delete_by_handle
IMPORTING
uname TYPE clike OPTIONAL
handle TYPE clike OPTIONAL
handle2 TYPE clike OPTIONAL
handle3 TYPE clike OPTIONAL
check_commit TYPE abap_bool DEFAULT abap_true.
CLASS-METHODS db_save
IMPORTING
uname TYPE clike OPTIONAL
handle TYPE clike OPTIONAL
handle2 TYPE clike OPTIONAL
handle3 TYPE clike OPTIONAL
data TYPE any
check_commit TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS db_load_by_id
IMPORTING
id TYPE clike OPTIONAL
EXPORTING
VALUE(result) TYPE any.
CLASS-METHODS db_load_by_handle
IMPORTING
uname TYPE clike OPTIONAL
handle TYPE clike OPTIONAL
handle2 TYPE clike OPTIONAL
handle3 TYPE clike OPTIONAL
EXPORTING
VALUE(result) TYPE any.
PROTECTED SECTION.
PRIVATE SECTION.
@ -470,109 +436,6 @@ ENDCLASS.
CLASS z2ui5_cl_util IMPLEMENTATION.
METHOD db_delete_by_handle.
DELETE FROM z2ui5_t_02
WHERE
uname = @uname
AND handle = @handle
AND handle2 = @handle2
AND handle3 = @handle3.
IF check_commit = abap_true.
COMMIT WORK AND WAIT.
ENDIF.
ENDMETHOD.
METHOD db_load_by_handle.
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
SELECT data
FROM z2ui5_t_02
WHERE
uname = @uname
AND handle = @handle
AND handle2 = @handle2
AND handle3 = @handle3
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `No entry for handle exists`.
ENDIF.
DATA(ls_db) = lt_db[ 1 ].
xml_parse(
EXPORTING
xml = ls_db-data
IMPORTING
any = result ).
ENDMETHOD.
METHOD db_load_by_id.
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
SELECT data
FROM z2ui5_t_02
WHERE id = @id
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
ASSERT sy-subrc = 0.
DATA(ls_db) = lt_db[ 1 ].
xml_parse(
EXPORTING
xml = ls_db-data
IMPORTING
any = result ).
ENDMETHOD.
METHOD db_save.
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
SELECT id
FROM z2ui5_t_02
WHERE
uname = @uname
AND handle = @handle
AND handle2 = @handle2
AND handle3 = @handle3
INTO CORRESPONDING FIELDS OF TABLE @lt_db ##SUBRC_OK.
DATA(ls_db) = VALUE z2ui5_t_02(
uname = uname
handle = handle
handle2 = handle2
handle3 = handle3
data = xml_stringify( data ) ).
TRY.
ls_db-id = lt_db[ 1 ]-id.
CATCH cx_root.
ls_db-id = uuid_get_c32( ).
ENDTRY.
MODIFY z2ui5_t_02 FROM @ls_db.
ASSERT sy-subrc = 0.
IF check_commit = abap_true.
COMMIT WORK AND WAIT.
ENDIF.
result = ls_db-id.
ENDMETHOD.
METHOD boolean_abap_2_json.
IF boolean_check_by_data( val ).

View File

@ -1,108 +1,3 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS test_db_handle FOR TESTING RAISING cx_static_check.
METHODS test_db_handle_read_id FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_test IMPLEMENTATION.
METHOD test_db_handle.
IF sy-sysid = 'ABC'.
RETURN.
ENDIF.
TYPES:
BEGIN OF ty_row,
title TYPE string,
value TYPE string,
selected TYPE abap_bool,
END OF ty_row.
DATA(ls_row) = VALUE ty_row(
title = `test`
value = `val`
selected = abap_true ).
DATA(ls_row_result) = VALUE ty_row( ).
DATA(lv_id) = z2ui5_cl_util=>db_save(
uname = `name`
handle = `handle1`
handle2 = `handle2`
handle3 = `handle3`
data = ls_row ).
z2ui5_cl_util=>db_load_by_id(
EXPORTING
id = lv_id
IMPORTING
result = ls_row_result ).
cl_abap_unit_assert=>assert_equals(
act = ls_row_result
exp = ls_row ).
CLEAR ls_row_result.
z2ui5_cl_util=>db_load_by_handle(
EXPORTING
uname = `name`
handle = `handle1`
handle2 = `handle2`
handle3 = `handle3`
IMPORTING
result = ls_row_result ).
cl_abap_unit_assert=>assert_equals(
act = ls_row_result
exp = ls_row ).
ENDMETHOD.
METHOD test_db_handle_read_id.
IF sy-sysid = 'ABC'.
RETURN.
ENDIF.
TYPES:
BEGIN OF ty_row,
title TYPE string,
value TYPE string,
selected TYPE abap_bool,
END OF ty_row.
DATA(ls_row) = VALUE ty_row(
title = `test`
value = `val`
selected = abap_true ).
DATA(lv_id) = z2ui5_cl_util=>db_save(
uname = `name`
handle = `handle1`
handle2 = `handle2`
handle3 = `handle3`
data = ls_row ).
cl_abap_unit_assert=>assert_not_initial( lv_id ).
DATA(lv_id2) = z2ui5_cl_util=>db_save(
uname = `name`
handle = `handle1`
handle2 = `handle2`
handle3 = `handle3`
data = ls_row ).
cl_abap_unit_assert=>assert_equals(
act = lv_id
exp = lv_id2 ).
ENDMETHOD.
ENDCLASS.
CLASS ltcl_test_app DEFINITION FOR TESTING.

View File

@ -1,125 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD02V>
<TABNAME>Z2UI5_T_02</TABNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<TABCLASS>TRANSP</TABCLASS>
<DDTEXT>abap toolkit - data storage</DDTEXT>
<MASTERLANG>E</MASTERLANG>
<CONTFLAG>A</CONTFLAG>
<EXCLASS>1</EXCLASS>
</DD02V>
<DD09L>
<TABNAME>Z2UI5_T_02</TABNAME>
<AS4LOCAL>A</AS4LOCAL>
<TABKAT>0</TABKAT>
<TABART>APPL0</TABART>
<BUFALLOW>N</BUFALLOW>
</DD09L>
<DD03P_TABLE>
<DD03P>
<FIELDNAME>MANDT</FIELDNAME>
<KEYFLAG>X</KEYFLAG>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000006</INTLEN>
<NOTNULL>X</NOTNULL>
<DATATYPE>CHAR</DATATYPE>
<LENG>000003</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>ID</FIELDNAME>
<KEYFLAG>X</KEYFLAG>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<NOTNULL>X</NOTNULL>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>UNAME</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>HANDLE</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>HANDLE2</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>HANDLE3</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>HANDLE4</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>HANDLE5</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000064</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000032</LENG>
<MASK> CHAR</MASK>
</DD03P>
<DD03P>
<FIELDNAME>DATA</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>g</INTTYPE>
<INTLEN>000008</INTLEN>
<DATATYPE>STRG</DATATYPE>
<MASK> STRG</MASK>
</DD03P>
<DD03P>
<FIELDNAME>DATA2</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>g</INTTYPE>
<INTLEN>000008</INTLEN>
<DATATYPE>STRG</DATATYPE>
<MASK> STRG</MASK>
</DD03P>
<DD03P>
<FIELDNAME>DATA3</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>g</INTTYPE>
<INTLEN>000008</INTLEN>
<DATATYPE>STRG</DATATYPE>
<MASK> STRG</MASK>
</DD03P>
</DD03P_TABLE>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -13,7 +13,10 @@ CLASS z2ui5_cl_http_handler DEFINITION
CLASS-METHODS factory
IMPORTING
server TYPE REF TO object
server TYPE REF TO object OPTIONAL
req TYPE REF TO object OPTIONAL
res TYPE REF TO object OPTIONAL
PREFERRED PARAMETER server
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_http_handler.
@ -62,7 +65,7 @@ CLASS z2ui5_cl_http_handler DEFINITION
METHODS get_index_html
RETURNING
VALUE(result) TYPE string
##CALLED.
##CALLED.
PRIVATE SECTION.
@ -127,7 +130,14 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
METHOD factory.
result = NEW #( ).
result->mo_server = z2ui5_cl_abap_api_http=>factory( server ).
IF server IS BOUND.
result->mo_server = z2ui5_cl_abap_api_http=>factory( server ).
ELSEIF req IS BOUND AND res IS BOUND.
result = factory_cloud( req = req res = res ).
ELSE.
ASSERT 1 = `EMPTY_HTTP_HANDLER_CALL_ERROR`.
ENDIF.
ENDMETHOD.