From 8572013c7efd60b1346e7379a6350d44c4944264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Wed, 25 Jul 2018 15:00:52 +0200 Subject: [PATCH] CHAR: fix package popup during pull #1661 (#1689) * CHAR: fix package popup during pull * Remove superfluous ABAP memory clearance memory is already cleared in RS_CORR_INSERT * Introduce objects_super set_default_package Refactor set default package logic to super class zcl_abapgit_objects_super method set_default_package. --- src/objects/zcl_abapgit_object_char.clas.abap | 5 +--- .../zcl_abapgit_objects_super.clas.abap | 25 ++++++++++++++++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/objects/zcl_abapgit_object_char.clas.abap b/src/objects/zcl_abapgit_object_char.clas.abap index 51fc576ff..dcebb6286 100644 --- a/src/objects/zcl_abapgit_object_char.clas.abap +++ b/src/objects/zcl_abapgit_object_char.clas.abap @@ -173,13 +173,10 @@ CLASS ZCL_ABAPGIT_OBJECT_CHAR IMPLEMENTATION. im_values = ls_char-cls_attr_value im_values_t = ls_char-cls_attr_valuet ). -* set default package, see function module RS_CORR_INSERT - SET PARAMETER ID 'EUK' FIELD iv_package. + set_default_package( iv_package ). lo_char->if_pak_wb_object~save( ). - SET PARAMETER ID 'EUK' FIELD ''. - lo_char->if_pak_wb_object~activate( ). lo_char->if_pak_wb_object_internal~unlock( ). diff --git a/src/objects/zcl_abapgit_objects_super.clas.abap b/src/objects/zcl_abapgit_objects_super.clas.abap index 88b3ff90f..b74e444c0 100644 --- a/src/objects/zcl_abapgit_objects_super.clas.abap +++ b/src/objects/zcl_abapgit_objects_super.clas.abap @@ -42,10 +42,13 @@ CLASS zcl_abapgit_objects_super DEFINITION PUBLIC ABSTRACT. iv_field TYPE string RAISING zcx_abapgit_exception, exists_a_lock_entry_for - IMPORTING iv_lock_object TYPE string - iv_argument TYPE seqg3-garg OPTIONAL + IMPORTING iv_lock_object TYPE string + iv_argument TYPE seqg3-garg OPTIONAL RETURNING VALUE(rv_exists_a_lock_entry) TYPE abap_bool - RAISING zcx_abapgit_exception. + RAISING zcx_abapgit_exception, + set_default_package + IMPORTING + iv_package TYPE devclass. PRIVATE SECTION. @@ -62,6 +65,22 @@ ENDCLASS. CLASS zcl_abapgit_objects_super IMPLEMENTATION. + METHOD set_default_package. + + " In certain cases we need to set the package package via ABAP memory + " because we can't supply it via the APIs. + " + " Set default package, see function module RS_CORR_INSERT FORM get_current_devclass. + " + " We use ABAP memory instead the SET parameter because it is + " more reliable. SET parameter doesn't work when multiple objects + " are deserialized which uses the ABAP memory mechanism. + " We don't need to reset the memory as it is done in above mentioned form routine. + + EXPORT current_devclass FROM iv_package TO MEMORY ID 'EUK'. + + ENDMETHOD. + METHOD check_timestamp.