*&---------------------------------------------------------------------* *& Report /GIB/DC_VARIANT_ADMIN *&---------------------------------------------------------------------* *& Varianten extern verwalten *# FLE Florian Lenz GIB Siegen 2.12.2020 *# Hinweis 12640 *&---------------------------------------------------------------------* REPORT /gib/dc_variant_admin. PARAMETERS: pa_repid TYPE disvariant-report OBLIGATORY, pa_handl TYPE disvariant-handle DEFAULT '0001', pa_loggr TYPE disvariant-log_group DEFAULT 'GRAP'. CLASS lcl_main DEFINITION. PUBLIC SECTION. CLASS-METHODS: process IMPORTING is_variant TYPE disvariant, class_constructor. PRIVATE SECTION. CLASS-METHODS: authority_check IMPORTING is_variant TYPE disvariant RETURNING VALUE(ef_user_specific) TYPE char1. ENDCLASS. START-OF-SELECTION. lcl_main=>process( is_variant = VALUE disvariant( report = pa_repid handle = pa_handl log_group = pa_loggr username = sy-uname ) ) . CLASS lcl_main IMPLEMENTATION. METHOD class_constructor. CALL FUNCTION 'AUTHORITY_CHECK_TCODE' EXPORTING tcode = '/GIB/DC_VARIANT_ADM' EXCEPTIONS ok = 1 not_ok = 2 OTHERS = 3. IF sy-subrc <> 1. MESSAGE 'Keine Berechtigung'(002) TYPE 'A'. ENDIF. ENDMETHOD. METHOD authority_check. ef_user_specific = 'A'. AUTHORITY-CHECK OBJECT 'S_ALV_LAYO' ID 'ACTVT' FIELD '23'. IF sy-subrc <> 0. AUTHORITY-CHECK OBJECT 'S_ALV_LAYR' ID 'ACTVT' FIELD '23' ID 'REPORT' FIELD is_variant-report ID 'HANDLE' FIELD is_variant-handle ID 'LOG_GROUP' FIELD is_variant-log_group. IF sy-subrc <> 0. MESSAGE 'Keine Berechtigung'(002) TYPE 'S'. ef_user_specific = 'X'. ENDIF. ENDIF. ENDMETHOD. METHOD process. DATA(lf_user_specific) = authority_check( EXPORTING is_variant = is_variant ). CALL FUNCTION 'LT_VARIANTS_MAINTAIN' EXPORTING is_variant = is_variant i_user_specific = lf_user_specific i_grid = 'X' EXCEPTIONS foreign_lock = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE 'Variante nicht verfügbar'(001) TYPE 'S'. ENDIF. ENDMETHOD. ENDCLASS.