mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
reafctoring utility classes (#1751)
* reafctoring utility classes * update
This commit is contained in:
parent
3cbd06e952
commit
d38e03e8c2
156
src/00/03/z2ui5_cl_util_db.clas.abap
Normal file
156
src/00/03/z2ui5_cl_util_db.clas.abap
Normal file
|
@ -0,0 +1,156 @@
|
|||
CLASS z2ui5_cl_util_db DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS 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 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 load_by_id
|
||||
IMPORTING
|
||||
id TYPE clike OPTIONAL
|
||||
EXPORTING
|
||||
VALUE(result) TYPE any.
|
||||
|
||||
CLASS-METHODS 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.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_util_db IMPLEMENTATION.
|
||||
|
||||
|
||||
|
||||
METHOD delete_by_handle.
|
||||
|
||||
DELETE FROM z2ui5_t_91
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD load_by_handle.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH EMPTY KEY.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_91
|
||||
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 ].
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = ls_db-data
|
||||
IMPORTING
|
||||
any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD load_by_id.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH EMPTY KEY.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_91
|
||||
WHERE id = @id
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
DATA(ls_db) = lt_db[ 1 ].
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = ls_db-data
|
||||
IMPORTING
|
||||
any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD save.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH EMPTY KEY.
|
||||
SELECT id
|
||||
FROM z2ui5_t_91
|
||||
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_91(
|
||||
uname = uname
|
||||
handle = handle
|
||||
handle2 = handle2
|
||||
handle3 = handle3
|
||||
data = z2ui5_cl_util=>xml_stringify( data ) ).
|
||||
|
||||
TRY.
|
||||
ls_db-id = lt_db[ 1 ]-id.
|
||||
CATCH cx_root.
|
||||
ls_db-id = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
ENDTRY.
|
||||
|
||||
MODIFY z2ui5_t_91 FROM @ls_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
result = ls_db-id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
||||
ENDCLASS.
|
16
src/00/03/z2ui5_cl_util_db.clas.xml
Normal file
16
src/00/03/z2ui5_cl_util_db.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_UTIL_DB</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>util - db</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
125
src/00/03/z2ui5_t_91.tabl.xml
Normal file
125
src/00/03/z2ui5_t_91.tabl.xml
Normal file
|
@ -0,0 +1,125 @@
|
|||
<?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_91</TABNAME>
|
||||
<DDLANGUAGE>E</DDLANGUAGE>
|
||||
<TABCLASS>TRANSP</TABCLASS>
|
||||
<DDTEXT>util - db</DDTEXT>
|
||||
<MASTERLANG>E</MASTERLANG>
|
||||
<CONTFLAG>A</CONTFLAG>
|
||||
<EXCLASS>1</EXCLASS>
|
||||
</DD02V>
|
||||
<DD09L>
|
||||
<TABNAME>Z2UI5_T_91</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>
|
|
@ -4,6 +4,8 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
TYPES ty_s_db TYPE z2ui5_t_01.
|
||||
|
||||
METHODS count_entries
|
||||
RETURNING
|
||||
VALUE(result) TYPE i.
|
||||
|
@ -17,7 +19,7 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
|
|||
IMPORTING
|
||||
!id TYPE clike
|
||||
RETURNING
|
||||
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_db.
|
||||
VALUE(result) TYPE ty_s_db.
|
||||
|
||||
METHODS read_info
|
||||
IMPORTING
|
||||
|
@ -34,7 +36,7 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
|
|||
!id TYPE clike
|
||||
check_load_app TYPE abap_bool DEFAULT abap_true
|
||||
RETURNING
|
||||
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_db.
|
||||
VALUE(result) TYPE ty_s_db.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
@ -55,7 +57,7 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
|
||||
ASSERT draft-id IS NOT INITIAL.
|
||||
|
||||
DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db( id = draft-id
|
||||
DATA(ls_db) = VALUE ty_s_db( id = draft-id
|
||||
id_prev = draft-id_prev
|
||||
id_prev_app = draft-id_prev_app
|
||||
id_prev_app_stack = draft-id_prev_app_stack
|
||||
|
@ -66,7 +68,8 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
MODIFY z2ui5_t_01 FROM @ls_db.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
|
||||
EXPORTING
|
||||
val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
|
||||
ENDIF.
|
||||
COMMIT WORK AND WAIT.
|
||||
|
||||
|
@ -83,7 +86,7 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
ELSE.
|
||||
|
||||
SELECT SINGLE id, id_prev, id_prev_app, id_prev_app_stack
|
||||
FROM z2ui5_t_01
|
||||
FROM z2ui5_t_01
|
||||
WHERE id = @id
|
||||
INTO CORRESPONDING FIELDS OF @result ##SUBRC_OK.
|
||||
|
||||
|
@ -91,7 +94,8 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
|
||||
EXPORTING
|
||||
val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -210,6 +210,4 @@ INTERFACE z2ui5_if_core_types
|
|||
r_data TYPE REF TO data,
|
||||
END OF ty_s_actual.
|
||||
|
||||
TYPES ty_s_db TYPE z2ui5_t_01.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
Loading…
Reference in New Issue
Block a user