Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatic Update #44

Merged
merged 1 commit into from
Feb 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions src/00/03/zabap2ui5_cl_util.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -1398,10 +1398,7 @@ CLASS zabap2ui5_cl_util IMPLEMENTATION.

LOOP AT val INTO DATA(ls_filter).

" TODO: variable is assigned but never used (ABAP cleaner)
DATA lo_range TYPE REF TO lcl_range_to_sql.

lo_range = NEW #( iv_fieldname = ls_filter-name
DATA(lo_range) = NEW zabap2ui5_cl_util_range( iv_fieldname = ls_filter-name
ir_range = REF #( ls_filter-t_range ) ).

ENDLOOP.
Expand All @@ -1410,7 +1407,7 @@ CLASS zabap2ui5_cl_util IMPLEMENTATION.

METHOD msg_get.

result = lcl_msp_mapper=>msg_get( val ).
result = zabap2ui5_cl_util_msg=>msg_get( val ).

ENDMETHOD.

Expand Down
125 changes: 0 additions & 125 deletions src/00/03/zabap2ui5_cl_util.clas.testclasses.abap
Original file line number Diff line number Diff line change
Expand Up @@ -769,128 +769,3 @@ CLASS ltcl_unit_test IMPLEMENTATION.

ENDMETHOD.
ENDCLASS.

CLASS ltcl_unit_test_msg_mapper DEFINITION FINAL
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.

PRIVATE SECTION.

METHODS test_bal FOR TESTING RAISING cx_static_check.
METHODS test_cx FOR TESTING RAISING cx_static_check.
METHODS test_bapiret FOR TESTING RAISING cx_static_check.
METHODS test_bapirettab FOR TESTING RAISING cx_static_check.
METHODS test_sy FOR TESTING RAISING cx_static_check.


ENDCLASS.

CLASS ltcl_unit_test_msg_mapper IMPLEMENTATION.

METHOD test_sy.

IF sy-sysid = 'ABC'.
RETURN.
ENDIF.

MESSAGE ID 'NET' TYPE 'I' NUMBER '001' INTO DATA(lv_dummy).
DATA(lt_result) = lcl_msp_mapper=>msg_get( sy ).

cl_abap_unit_assert=>assert_equals( exp = `NET`
act = lt_result[ 1 ]-id ).

cl_abap_unit_assert=>assert_equals( exp = `001`
act = lt_result[ 1 ]-no ).

cl_abap_unit_assert=>assert_equals( exp = `I`
act = lt_result[ 1 ]-type ).

ENDMETHOD.

METHOD test_bapiret.

IF sy-sysid = 'ABC'.
RETURN.
ENDIF.

DATA(lt_msg) = VALUE bapirettab(
( type = 'E' id = 'MSG1' number = '001' message = 'An empty Report field causes an empty XML Message to be sent' )
).

DATA(lt_result) = lcl_msp_mapper=>msg_get( lt_msg[ 1 ] ).

cl_abap_unit_assert=>assert_equals( exp = `MSG1`
act = lt_result[ 1 ]-id ).

cl_abap_unit_assert=>assert_equals( exp = `001`
act = lt_result[ 1 ]-no ).

cl_abap_unit_assert=>assert_equals( exp = `E`
act = lt_result[ 1 ]-type ).

ENDMETHOD.

METHOD test_bapirettab.

IF sy-sysid = 'ABC'.
RETURN.
ENDIF.

DATA(lt_msg) = VALUE bapirettab(
( type = 'E' id = 'MSG1' number = '001' message = 'An empty Report field causes an empty XML Message to be sent' )
( type = 'I' id = 'MSG2' number = '002' message = 'Product already in use' ) ).

DATA(lt_result) = lcl_msp_mapper=>msg_get( lt_msg ).

cl_abap_unit_assert=>assert_equals( exp = `MSG1`
act = lt_result[ 1 ]-id ).

cl_abap_unit_assert=>assert_equals( exp = `001`
act = lt_result[ 1 ]-no ).

cl_abap_unit_assert=>assert_equals( exp = `E`
act = lt_result[ 1 ]-type ).

ENDMETHOD.

METHOD test_cx.

TRY.
DATA(lv_val) = 1 / 0.
CATCH cx_root INTO DATA(lx).
DATA(lt_result) = lcl_msp_mapper=>msg_get( lx ).
ENDTRY.

cl_abap_unit_assert=>assert_equals( exp = `E`
act = lt_result[ 1 ]-type ).


ENDMETHOD.

method test_bal.

TYPES: BEGIN OF ty_log_entry,
msgnumber TYPE n LENGTH 6, " Application Log: Internal Message Serial Number
msgty TYPE c LENGTH 1, " Message Type
msgid TYPE c LENGTH 20, " Message Class
msgno TYPE n LENGTH 3, " Message Number
msgv1 TYPE c LENGTH 50, " Message Variable
msgv2 TYPE c LENGTH 50, " Message Variable
msgv3 TYPE c LENGTH 50, " Message Variable
msgv4 TYPE c LENGTH 50, " Message Variable
msgv1_src TYPE c LENGTH 15, " Origin of a Message Variable
msgv2_src TYPE c LENGTH 15, " Origin of a Message Variable
msgv3_src TYPE c LENGTH 15, " Origin of a Message Variable
msgv4_src TYPE c LENGTH 15, " Origin of a Message Variable
detlevel TYPE c LENGTH 1, " Level of Detail
probclass TYPE c LENGTH 1, " Problem Class
alsort TYPE c LENGTH 3, " Sort Criterion/Grouping
time_stmp TYPE p LENGTH 8 DECIMALS 7, " Message Time Stamp
msg_count TYPE i, " Cumulated Message Count
context TYPE c LENGTH 255, " Context (Generic Placeholder)
params TYPE c LENGTH 255, " Parameters (Generic Placeholder)
msg_txt TYPE string, " Message Text
END OF ty_log_entry.

endmethod.

ENDCLASS.
2 changes: 1 addition & 1 deletion src/00/03/zabap2ui5_cl_util.clas.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>ZABAP2UI5_CL_UTIL</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap toolkit</DESCRIPT>
<DESCRIPT>util</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
Expand Down
6 changes: 0 additions & 6 deletions src/00/03/zabap2ui5_cl_util_abap.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@ CLASS zabap2ui5_cl_util_abap DEFINITION

PUBLIC SECTION.

" abap-api - Serving a Release & Version Independent ABAP Layer
" version: '0.0.1'.
" origin: https://github.com/oblomov-dev/abap-api
" author: https://github.com/oblomov-dev
" license: MIT.

TYPES:
BEGIN OF ty_s_fix_val,
low TYPE string,
Expand Down
2 changes: 1 addition & 1 deletion src/00/03/zabap2ui5_cl_util_abap.clas.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>ZABAP2UI5_CL_UTIL_ABAP</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap api</DESCRIPT>
<DESCRIPT>util - api</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
Expand Down
2 changes: 1 addition & 1 deletion src/00/03/zabap2ui5_cl_util_abap_http.clas.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>ZABAP2UI5_CL_UTIL_ABAP_HTTP</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap api</DESCRIPT>
<DESCRIPT>util - api http</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,125 +1,5 @@
CLASS lcl_range_to_sql DEFINITION
CLASS zabap2ui5_cl_util_msg DEFINITION PUBLIC
FINAL CREATE PUBLIC.

PUBLIC SECTION.

CONSTANTS: BEGIN OF signs,
including TYPE string VALUE 'I',
excluding TYPE string VALUE 'E',
END OF signs.

CONSTANTS: BEGIN OF options,
equal TYPE string VALUE 'EQ',
not_equal TYPE string VALUE 'NE',
between TYPE string VALUE 'BT',
not_between TYPE string VALUE 'NB',
contains_pattern TYPE string VALUE 'CP',
not_contains_pattern TYPE string VALUE 'NP',
greater_than TYPE string VALUE 'GT',
greater_equal TYPE string VALUE 'GE',
less_equal TYPE string VALUE 'LE',
less_than TYPE string VALUE 'LT',
END OF options.

METHODS constructor
IMPORTING
iv_fieldname TYPE clike
ir_range TYPE REF TO data.

METHODS get_sql
RETURNING
VALUE(result) TYPE string.

PROTECTED SECTION.
DATA mv_fieldname TYPE string.
DATA mr_range TYPE REF TO data.

CLASS-METHODS quote
IMPORTING
val TYPE clike
RETURNING
VALUE(out) TYPE string.

ENDCLASS.


CLASS lcl_range_to_sql IMPLEMENTATION.
METHOD constructor.

mr_range = ir_range.
mv_fieldname = |{ to_upper( iv_fieldname ) }|.

ENDMETHOD.

METHOD get_sql.

FIELD-SYMBOLS <lt_range> TYPE STANDARD TABLE.

ASSIGN me->mr_range->* TO <lt_range>.

IF xsdbool( <lt_range> IS INITIAL ) = abap_true.
RETURN.
ENDIF.

result = `(`.

LOOP AT <lt_range> ASSIGNING FIELD-SYMBOL(<ls_range_item>).

ASSIGN COMPONENT 'SIGN' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_sign>).
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_option>).
ASSIGN COMPONENT 'LOW' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_low>).
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_high>).

IF sy-tabix <> 1.
result = |{ result } OR|.
ENDIF.

IF <lv_sign> = signs-excluding.
result = |{ result } NOT|.
ENDIF.

result = |{ result } { me->mv_fieldname }|.

CASE <lv_option>.
WHEN options-equal OR
options-not_equal OR
options-greater_than OR
options-greater_equal OR
options-less_equal OR
options-less_than.
result = |{ result } { <lv_option> } { quote( <lv_low> ) }|.

WHEN options-between.
result = |{ result } BETWEEN { quote( <lv_low> ) } AND { quote( <lv_high> ) }|.

WHEN options-not_between.
result = |{ result } NOT BETWEEN { quote( <lv_low> ) } AND { quote( <lv_high> ) }|.

WHEN options-contains_pattern.
TRANSLATE <lv_low> USING '*%'.
result = |{ result } LIKE { quote( <lv_low> ) }|.

WHEN options-not_contains_pattern.
TRANSLATE <lv_low> USING '*%'.
result = |{ result } NOT LIKE { quote( <lv_low> ) }|.
ENDCASE.
ENDLOOP.

result = |{ result } )|.

ENDMETHOD.

METHOD quote.
out = |'{ replace( val = val
sub = `'`
with = `''`
occ = 0 ) }'|.
ENDMETHOD.
ENDCLASS.

CLASS lcl_msp_mapper DEFINITION
FINAL CREATE PUBLIC.

PUBLIC SECTION.
CLASS-METHODS msg_map
IMPORTING
Expand All @@ -128,19 +8,17 @@ CLASS lcl_msp_mapper DEFINITION
is_msg TYPE zabap2ui5_cl_util=>ty_s_msg
RETURNING
VALUE(result) TYPE zabap2ui5_cl_util=>ty_s_msg.

CLASS-METHODS msg_get
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE zabap2ui5_cl_util=>ty_t_msg.

ENDCLASS.

CLASS lcl_msp_mapper IMPLEMENTATION.

CLASS zabap2ui5_cl_util_msg IMPLEMENTATION.
METHOD msg_get.


DATA(lv_kind) = zabap2ui5_cl_util=>rtti_get_type_kind( val ).
CASE lv_kind.

Expand Down Expand Up @@ -250,10 +128,11 @@ CLASS lcl_msp_mapper IMPLEMENTATION.
ENDIF.
ENDCASE.

ENDMETHOD.

ENDMETHOD.
METHOD msg_map.


result = is_msg.
CASE name.
WHEN 'ID' OR 'MSGID'.
Expand All @@ -276,6 +155,6 @@ CLASS lcl_msp_mapper IMPLEMENTATION.
result-timestampl = val.
ENDCASE.

ENDMETHOD.

ENDMETHOD.
ENDCLASS.
Loading