diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index 144784bb0..1135ab22d 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -372,8 +372,9 @@ CLASS lcl_persist_settings DEFINITION FINAL. METHODS read RETURNING VALUE(ro_settings) TYPE REF TO lcl_settings. - PRIVATE SECTION. + PRIVATE SECTION. + DATA: mo_settings TYPE REF TO lcl_settings. ENDCLASS. @@ -1879,15 +1880,30 @@ CLASS lcl_persist_settings IMPLEMENTATION. METHOD modify. + DATA: settings TYPE string. + settings = io_settings->get_settings_xml( ). + lcl_app=>db( )->modify( iv_type = lcl_settings=>c_dbtype_settings iv_value = '' - iv_data = io_settings->get_settings_xml( ) ). + iv_data = settings ). + + " Settings have been modified: Update Buffered Settings + IF mo_settings IS BOUND. + mo_settings->set_xml_settings( settings ). + ENDIF. ENDMETHOD. METHOD read. + IF mo_settings IS BOUND. + " Return Buffered Settings + ro_settings = mo_settings. + RETURN. + ENDIF. + + " Settings have changed or have not yet been loaded CREATE OBJECT ro_settings. TRY. @@ -1902,6 +1918,8 @@ CLASS lcl_persist_settings IMPLEMENTATION. ENDTRY. + mo_settings = ro_settings. + ENDMETHOD. ENDCLASS.