TABU: No error when table not yet exists (#5964)

This commit is contained in:
Christian Günter 2023-01-02 10:21:45 +01:00 committed by GitHub
parent 0a6248e922
commit 0ea950c938
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 9 deletions

View File

@ -116,14 +116,20 @@ CLASS ZCL_ABAPGIT_DATA_SERIALIZER IMPLEMENTATION.
ASSERT ls_config-type = zif_abapgit_data_config=>c_data_type-tabu. " todo
ASSERT ls_config-name IS NOT INITIAL.
lr_data = read_database_table(
iv_name = ls_config-name
it_where = ls_config-where ).
TRY.
lr_data = read_database_table(
iv_name = ls_config-name
it_where = ls_config-where ).
ls_file-data = convert_itab_to_json(
ir_data = lr_data
iv_skip_initial = ls_config-skip_initial ).
CATCH zcx_abapgit_exception.
" DB table might not yet exist
ENDTRY.
ls_file-filename = zcl_abapgit_data_utils=>build_filename( ls_config ).
ls_file-data = convert_itab_to_json(
ir_data = lr_data
iv_skip_initial = ls_config-skip_initial ).
ls_file-sha1 = zcl_abapgit_hash=>sha1_blob( ls_file-data ).
APPEND ls_file TO rt_files.
ENDLOOP.

View File

@ -57,8 +57,8 @@ CLASS ltcl_test IMPLEMENTATION.
TRY.
mi_cut->serialize( mi_config ).
cl_abap_unit_assert=>fail( ).
CATCH zcx_abapgit_exception.
cl_abap_unit_assert=>fail( ).
ENDTRY.
ENDMETHOD.
@ -77,8 +77,8 @@ CLASS ltcl_test IMPLEMENTATION.
TRY.
mi_cut->serialize( mi_config ).
cl_abap_unit_assert=>fail( ).
CATCH zcx_abapgit_exception.
cl_abap_unit_assert=>fail( ).
ENDTRY.
ENDMETHOD.

View File

@ -69,7 +69,16 @@ CLASS zcl_abapgit_data_utils IMPLEMENTATION.
" Get primary key to ensure unique entries
IF lo_data->is_ddic_type( ) = abap_true.
lt_fields = lo_data->get_ddic_field_list( ).
lo_data->get_ddic_field_list(
RECEIVING
p_field_list = lt_fields
EXCEPTIONS
not_found = 1
no_ddic_type = 2
OTHERS = 3 ).
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Table { iv_name } not found for data serialization| ).
ENDIF.
APPEND INITIAL LINE TO lt_keys ASSIGNING <ls_key>.
<ls_key>-access_kind = cl_abap_tabledescr=>tablekind_sorted.