From fabf7f180d304aea8a0d9d2f37318463799f825e Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 16 Apr 2025 09:42:18 +0000 Subject: [PATCH] fix --- src/env/zcl_abapgit_env_factory.clas.xml | 4 +- src/env/zcl_abapgit_env_injector.clas.xml | 4 +- src/env/zcl_abapgit_user_record.clas.abap | 138 +++++++++++----------- src/env/zif_abapgit_user_record.intf.xml | 4 +- 4 files changed, 76 insertions(+), 74 deletions(-) diff --git a/src/env/zcl_abapgit_env_factory.clas.xml b/src/env/zcl_abapgit_env_factory.clas.xml index ef9bb9975..b0ec0972c 100644 --- a/src/env/zcl_abapgit_env_factory.clas.xml +++ b/src/env/zcl_abapgit_env_factory.clas.xml @@ -1,4 +1,4 @@ - + @@ -13,4 +13,4 @@ - \ No newline at end of file + diff --git a/src/env/zcl_abapgit_env_injector.clas.xml b/src/env/zcl_abapgit_env_injector.clas.xml index b39321608..e65678311 100644 --- a/src/env/zcl_abapgit_env_injector.clas.xml +++ b/src/env/zcl_abapgit_env_injector.clas.xml @@ -1,4 +1,4 @@ - + @@ -13,4 +13,4 @@ - \ No newline at end of file + diff --git a/src/env/zcl_abapgit_user_record.clas.abap b/src/env/zcl_abapgit_user_record.clas.abap index a541b292d..60e8f9c05 100644 --- a/src/env/zcl_abapgit_user_record.clas.abap +++ b/src/env/zcl_abapgit_user_record.clas.abap @@ -2,7 +2,7 @@ CLASS zcl_abapgit_user_record DEFINITION PUBLIC FINAL CREATE PRIVATE - GLOBAL FRIENDS zcl_abapgit_data_factory. + GLOBAL FRIENDS zcl_abapgit_env_factory. PUBLIC SECTION. CLASS-METHODS reset. @@ -50,37 +50,30 @@ ENDCLASS. -CLASS zcl_abapgit_user_record IMPLEMENTATION. +CLASS ZCL_ABAPGIT_USER_RECORD IMPLEMENTATION. - METHOD zif_abapgit_user_record~get_title. -* the queried username might not exist, refactored for open-abap compatibility - DATA lr_addr3 TYPE REF TO data. - FIELD-SYMBOLS TYPE any. - FIELD-SYMBOLS TYPE simple. + METHOD build_cache. + " Get user details TRY. - CREATE DATA lr_addr3 TYPE ('ADDR3_VAL'). - CATCH cx_sy_create_data_error. - RETURN. + check_user_exists( + EXPORTING + iv_user = iv_user + IMPORTING + ev_fullname = rs_user-name + ev_email = rs_user-email ). + CATCH zcx_abapgit_exception. + " Could not find user, try to get from other clients + rs_user = get_user_dtls_from_other_clnt( iv_user ). ENDTRY. - ASSIGN lr_addr3->* TO . - CALL FUNCTION 'SUSR_USER_ADDRESS_READ' - EXPORTING - user_name = iv_username - IMPORTING - user_address = - EXCEPTIONS - user_address_not_found = 1 - OTHERS = 2. - IF sy-subrc = 0. - ASSIGN COMPONENT 'NAME_TEXT' OF STRUCTURE TO . - rv_title = . - ENDIF. + rs_user-user = iv_user. + INSERT rs_user INTO TABLE gt_user. ENDMETHOD. + METHOD check_user_exists. DATA lt_return TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY. @@ -113,51 +106,6 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION. ENDMETHOD. - METHOD build_cache. - - " Get user details - TRY. - check_user_exists( - EXPORTING - iv_user = iv_user - IMPORTING - ev_fullname = rs_user-name - ev_email = rs_user-email ). - CATCH zcx_abapgit_exception. - " Could not find user, try to get from other clients - rs_user = get_user_dtls_from_other_clnt( iv_user ). - ENDTRY. - - rs_user-user = iv_user. - INSERT rs_user INTO TABLE gt_user. - - ENDMETHOD. - - - METHOD zif_abapgit_user_record~get_email. - - rv_email = read_cache( iv_username )-email. - - ENDMETHOD. - - - METHOD read_cache. - - READ TABLE gt_user INTO rs_user WITH TABLE KEY user = iv_user. - IF sy-subrc <> 0. - rs_user = build_cache( iv_user ). - ENDIF. - - ENDMETHOD. - - - METHOD zif_abapgit_user_record~get_name. - - rv_name = read_cache( iv_username )-name. - - ENDMETHOD. - - METHOD get_user_dtls_from_other_clnt. CONSTANTS lc_cc_category TYPE string VALUE 'C'. @@ -192,7 +140,61 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION. ENDMETHOD. + METHOD read_cache. + + READ TABLE gt_user INTO rs_user WITH TABLE KEY user = iv_user. + IF sy-subrc <> 0. + rs_user = build_cache( iv_user ). + ENDIF. + + ENDMETHOD. + + METHOD reset. CLEAR gt_user. ENDMETHOD. + + + METHOD zif_abapgit_user_record~get_email. + + rv_email = read_cache( iv_username )-email. + + ENDMETHOD. + + + METHOD zif_abapgit_user_record~get_name. + + rv_name = read_cache( iv_username )-name. + + ENDMETHOD. + + + METHOD zif_abapgit_user_record~get_title. +* the queried username might not exist, refactored for open-abap compatibility + + DATA lr_addr3 TYPE REF TO data. + FIELD-SYMBOLS TYPE any. + FIELD-SYMBOLS TYPE simple. + + TRY. + CREATE DATA lr_addr3 TYPE ('ADDR3_VAL'). + CATCH cx_sy_create_data_error. + RETURN. + ENDTRY. + ASSIGN lr_addr3->* TO . + + CALL FUNCTION 'SUSR_USER_ADDRESS_READ' + EXPORTING + user_name = iv_username + IMPORTING + user_address = + EXCEPTIONS + user_address_not_found = 1 + OTHERS = 2. + IF sy-subrc = 0. + ASSIGN COMPONENT 'NAME_TEXT' OF STRUCTURE TO . + rv_title = . + ENDIF. + + ENDMETHOD. ENDCLASS. diff --git a/src/env/zif_abapgit_user_record.intf.xml b/src/env/zif_abapgit_user_record.intf.xml index a9fd4e3be..5bb2af8cc 100644 --- a/src/env/zif_abapgit_user_record.intf.xml +++ b/src/env/zif_abapgit_user_record.intf.xml @@ -1,4 +1,4 @@ - + @@ -12,4 +12,4 @@ - \ No newline at end of file +