diff --git a/src/objects/zcl_abapgit_object_tabl.clas.abap b/src/objects/zcl_abapgit_object_tabl.clas.abap index f5eff19b5..6fda867cf 100644 --- a/src/objects/zcl_abapgit_object_tabl.clas.abap +++ b/src/objects/zcl_abapgit_object_tabl.clas.abap @@ -13,26 +13,44 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION. METHOD zif_abapgit_object~changed_by. - DATA: lv_as4date TYPE dd02l-as4date, - lv_as4time TYPE dd02l-as4time. + TYPES: BEGIN OF ty_data, + as4user TYPE as4user, + as4date TYPE as4date, + as4time TYPE as4time, + END OF ty_data. + + DATA: lt_data TYPE STANDARD TABLE OF ty_data WITH DEFAULT KEY, + ls_data LIKE LINE OF lt_data. - SELECT SINGLE as4user as4date as4time - FROM dd02l INTO (rv_user, lv_as4date, lv_as4time) + SELECT as4user as4date as4time + FROM dd02l INTO TABLE lt_data WHERE tabname = ms_item-obj_name AND as4local = 'A' AND as4vers = '0000'. - IF sy-subrc <> 0. - rv_user = c_user_unknown. - RETURN. - ENDIF. - SELECT SINGLE as4user INTO rv_user + SELECT as4user as4date as4time + APPENDING TABLE lt_data FROM dd09l WHERE tabname = ms_item-obj_name AND as4local = 'A' - AND as4vers = '0000' - AND ( as4date > lv_as4date OR ( as4date = lv_as4date AND as4time > lv_as4time ) ). + AND as4vers = '0000'. + + SELECT as4user as4date as4time + APPENDING TABLE lt_data + FROM dd12l + WHERE sqltab = ms_item-obj_name + AND as4local = 'A' + AND as4vers = '0000'. + + SORT lt_data BY as4date DESCENDING as4time DESCENDING. + + READ TABLE lt_data INDEX 1 INTO ls_data. + IF sy-subrc = 0. + rv_user = ls_data-as4user. + ELSE. + rv_user = c_user_unknown. + ENDIF. ENDMETHOD.