From 5a108dd275cb736c5d978b520c2ec558ff740507 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Mon, 7 Aug 2017 20:04:06 +0000 Subject: [PATCH] downport CMPT --- src/zabapgit_object_cmpt.prog.abap | 130 +++++++++++++++++++++++------ 1 file changed, 105 insertions(+), 25 deletions(-) diff --git a/src/zabapgit_object_cmpt.prog.abap b/src/zabapgit_object_cmpt.prog.abap index 37083cfa9..8becf90a4 100644 --- a/src/zabapgit_object_cmpt.prog.abap +++ b/src/zabapgit_object_cmpt.prog.abap @@ -5,11 +5,36 @@ CLASS lcl_object_cmpt DEFINITION INHERITING FROM lcl_objects_super FINAL. PUBLIC SECTION. + METHODS: + constructor + IMPORTING + is_item TYPE lif_defs=>ty_item + iv_language TYPE spras. + INTERFACES lif_object. + + PRIVATE SECTION. + DATA: mo_cmp_db TYPE REF TO object. + ENDCLASS. CLASS lcl_object_cmpt IMPLEMENTATION. + METHOD constructor. + + super->constructor( is_item = is_item + iv_language = iv_language ). + + TRY. + CALL METHOD ('CL_CMP_TEMPLATE')=>('S_GET_DB_ACCESS') + RECEIVING + r_ref_db_access = mo_cmp_db. + + CATCH cx_root. + ENDTRY. + + ENDMETHOD. + METHOD lif_object~has_changed_since. rv_changed = abap_true. @@ -18,11 +43,23 @@ CLASS lcl_object_cmpt IMPLEMENTATION. METHOD lif_object~changed_by. - DATA(template) = CAST cl_cmp_template( cl_cmp_template=>s_create_from_db( i_name = |{ ms_item-obj_name }| - i_version = 'A' ) ). + DATA: mi_cmp_template TYPE REF TO object. + TRY. + CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB') + EXPORTING + i_name = |{ ms_item-obj_name }| + i_version = 'A' + RECEIVING + r_ref_template = mi_cmp_template. - rv_user = template->if_cmp_template_edit~get_change_user( ). + CALL METHOD mi_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER') + RECEIVING + r_user = rv_user. + + CATCH cx_root. + lcx_exception=>raise( 'CMPT not supported' ). + ENDTRY. ENDMETHOD. @@ -39,38 +76,72 @@ CLASS lcl_object_cmpt IMPLEMENTATION. name = ms_item-obj_name. - rv_bool = cl_cmp_template=>s_template_exists( i_name = name - i_version = 'A' ). + TRY. + CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS') + EXPORTING + i_name = name + i_version = 'A' + RECEIVING + r_flg_exists = rv_bool. + + CATCH cx_root. + lcx_exception=>raise( 'CMPT not supported' ). + ENDTRY. ENDMETHOD. METHOD lif_object~serialize. - DATA(cmp_db) = cl_cmp_template=>s_get_db_access( ). + DATA: lr_template TYPE REF TO data. + FIELD-SYMBOLS: