mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Refactor ZCL_ABAPGIT_PERSIST_BACKGROUND (#4123)
+ remove MT_JOBS + add GET_BY_KEY that can be used instead of LIST closes #1455
This commit is contained in:
parent
098682dcbb
commit
85404ce72f
|
@ -4,51 +4,69 @@ CLASS zcl_abapgit_persist_background DEFINITION
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_xml,
|
TYPES:
|
||||||
|
BEGIN OF ty_xml,
|
||||||
method TYPE string,
|
method TYPE string,
|
||||||
username TYPE string,
|
username TYPE string,
|
||||||
password TYPE string,
|
password TYPE string,
|
||||||
settings TYPE zif_abapgit_background=>ty_settings_tt,
|
settings TYPE zif_abapgit_background=>ty_settings_tt,
|
||||||
END OF ty_xml.
|
END OF ty_xml .
|
||||||
|
TYPES:
|
||||||
TYPES: BEGIN OF ty_background,
|
BEGIN OF ty_background,
|
||||||
key TYPE zif_abapgit_persistence=>ty_value.
|
key TYPE zif_abapgit_persistence=>ty_value.
|
||||||
INCLUDE TYPE ty_xml.
|
INCLUDE TYPE ty_xml.
|
||||||
TYPES: END OF ty_background.
|
TYPES: END OF ty_background .
|
||||||
TYPES: ty_background_keys TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY.
|
TYPES:
|
||||||
|
ty_background_keys TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY .
|
||||||
METHODS constructor.
|
|
||||||
|
|
||||||
|
METHODS constructor .
|
||||||
METHODS list
|
METHODS list
|
||||||
RETURNING VALUE(rt_list) TYPE ty_background_keys
|
RETURNING
|
||||||
RAISING zcx_abapgit_exception.
|
VALUE(rt_list) TYPE ty_background_keys
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS get_by_key
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE ty_background-key
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_data) TYPE ty_background
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception
|
||||||
|
zcx_abapgit_not_found .
|
||||||
METHODS modify
|
METHODS modify
|
||||||
IMPORTING is_data TYPE ty_background
|
IMPORTING
|
||||||
RAISING zcx_abapgit_exception.
|
!is_data TYPE ty_background
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS delete
|
METHODS delete
|
||||||
IMPORTING iv_key TYPE ty_background-key
|
IMPORTING
|
||||||
RAISING zcx_abapgit_exception.
|
!iv_key TYPE ty_background-key
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS exists
|
METHODS exists
|
||||||
IMPORTING iv_key TYPE ty_background-key
|
IMPORTING
|
||||||
RETURNING VALUE(rv_yes) TYPE abap_bool
|
!iv_key TYPE ty_background-key
|
||||||
RAISING zcx_abapgit_exception.
|
RETURNING
|
||||||
|
VALUE(rv_yes) TYPE abap_bool
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA: mo_db TYPE REF TO zcl_abapgit_persistence_db,
|
|
||||||
mt_jobs TYPE ty_background_keys.
|
DATA mo_db TYPE REF TO zcl_abapgit_persistence_db .
|
||||||
|
|
||||||
METHODS from_xml
|
METHODS from_xml
|
||||||
IMPORTING iv_string TYPE string
|
IMPORTING
|
||||||
RETURNING VALUE(rs_xml) TYPE ty_xml
|
!iv_string TYPE string
|
||||||
RAISING zcx_abapgit_exception.
|
RETURNING
|
||||||
|
VALUE(rs_xml) TYPE ty_xml
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS to_xml
|
METHODS to_xml
|
||||||
IMPORTING is_background TYPE ty_background
|
IMPORTING
|
||||||
RETURNING VALUE(rv_string) TYPE string.
|
!is_background TYPE ty_background
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_string) TYPE string .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,16 +91,18 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
||||||
iv_value = iv_key ).
|
iv_value = iv_key ).
|
||||||
|
|
||||||
DELETE mt_jobs WHERE key = iv_key.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD exists.
|
METHOD exists.
|
||||||
|
|
||||||
list( ). " Ensure mt_jobs is populated
|
TRY.
|
||||||
READ TABLE mt_jobs WITH KEY key = iv_key TRANSPORTING NO FIELDS.
|
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
||||||
rv_yes = boolc( sy-subrc = 0 ).
|
iv_value = iv_key ).
|
||||||
|
rv_yes = abap_true.
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
rv_yes = abap_false.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -95,6 +115,20 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_by_key.
|
||||||
|
|
||||||
|
DATA: lt_list TYPE ty_background_keys.
|
||||||
|
|
||||||
|
lt_list = list( ).
|
||||||
|
|
||||||
|
READ TABLE lt_list WITH KEY key = iv_key INTO rs_data.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
RAISE EXCEPTION TYPE zcx_abapgit_not_found.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD list.
|
METHOD list.
|
||||||
|
|
||||||
DATA: lt_list TYPE zif_abapgit_persistence=>ty_contents,
|
DATA: lt_list TYPE zif_abapgit_persistence=>ty_contents,
|
||||||
|
@ -103,11 +137,6 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list,
|
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list,
|
||||||
<ls_output> LIKE LINE OF rt_list.
|
<ls_output> LIKE LINE OF rt_list.
|
||||||
|
|
||||||
IF lines( mt_jobs ) > 0.
|
|
||||||
rt_list = mt_jobs.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
|
|
||||||
lt_list = mo_db->list_by_type( zcl_abapgit_persistence_db=>c_type_background ).
|
lt_list = mo_db->list_by_type( zcl_abapgit_persistence_db=>c_type_background ).
|
||||||
|
|
||||||
|
@ -119,8 +148,6 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
<ls_output>-key = <ls_list>-value.
|
<ls_output>-key = <ls_list>-value.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
mt_jobs = rt_list.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -133,9 +160,6 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
iv_value = is_data-key
|
iv_value = is_data-key
|
||||||
iv_data = to_xml( is_data ) ).
|
iv_data = to_xml( is_data ) ).
|
||||||
|
|
||||||
DELETE mt_jobs WHERE key = is_data-key.
|
|
||||||
APPEND is_data TO mt_jobs.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -144,12 +144,12 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_BKG IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
CREATE OBJECT lo_per.
|
CREATE OBJECT lo_per.
|
||||||
lt_per = lo_per->list( ).
|
|
||||||
|
|
||||||
READ TABLE lt_per INTO rs_persist WITH KEY key = io_repo->get_key( ).
|
TRY.
|
||||||
IF sy-subrc <> 0.
|
rs_persist = lo_per->get_by_key( io_repo->get_key( ) ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
CLEAR rs_persist.
|
CLEAR rs_persist.
|
||||||
ENDIF.
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user