From 7da7327f36b33f4bd906e1c119a07e2c094152c1 Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 27 Feb 2019 14:18:39 +0000 Subject: [PATCH] SPRX downport --- src/objects/zcl_abapgit_object_sprx.clas.abap | 61 ++++++++++++++++--- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/src/objects/zcl_abapgit_object_sprx.clas.abap b/src/objects/zcl_abapgit_object_sprx.clas.abap index 4a12cc6fe..a1eaa907f 100644 --- a/src/objects/zcl_abapgit_object_sprx.clas.abap +++ b/src/objects/zcl_abapgit_object_sprx.clas.abap @@ -23,6 +23,9 @@ CLASS zcl_abapgit_object_sprx DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje DATA mv_object TYPE sproxhdr-object . DATA mv_obj_name TYPE sproxhdr-obj_name . + METHODS load_db + RETURNING + VALUE(rs_data) TYPE sprx_db_data . METHODS get_object_and_name EXPORTING !ev_object TYPE sproxhdr-object @@ -141,6 +144,49 @@ CLASS ZCL_ABAPGIT_OBJECT_SPRX IMPLEMENTATION. ENDMETHOD. + METHOD load_db. + +* method cl_proxy_db=>load_by_abap_name does not exist in lower releases + + DATA: lt_packages TYPE prx_t_namespace_package, + ls_package LIKE LINE OF lt_packages, + ls_hdr TYPE prx_s_proxy_hdr, + lv_package TYPE tadir-devclass, + lt_ids TYPE prx_ids. + + cl_proxy_query=>get_hdr_by_abap_name( + EXPORTING + object = mv_object + obj_name = mv_obj_name + IMPORTING + hdr = ls_hdr ). + APPEND ls_hdr-id TO lt_ids. + + IF ls_hdr-gen_appl = 'WEBSERVICES'. + cl_proxy_utils=>get_package( + EXPORTING + object = mv_object + obj_name = mv_obj_name + RECEIVING + rval = lv_package + EXCEPTIONS + OTHERS = 0 ). + + ls_package-namespace = ls_hdr-esr_nspce. + ls_package-prefix = ls_hdr-prefix. + ls_package-package = lv_package. + APPEND ls_package TO lt_packages. + ENDIF. + + rs_data = cl_proxy_db=>load( + inactive = abap_false + ids = lt_ids + generating_application = ls_hdr-gen_appl + packages = lt_packages ). + + ENDMETHOD. + + METHOD save. DATA: @@ -177,8 +223,7 @@ CLASS ZCL_ABAPGIT_OBJECT_SPRX IMPLEMENTATION. AND obj_name = mv_obj_name AND inactive = abap_false. - IF sy-subrc = 0 - AND lv_changed_by IS NOT INITIAL. + IF sy-subrc = 0 AND lv_changed_by IS NOT INITIAL. rv_user = lv_changed_by. ENDIF. @@ -295,22 +340,18 @@ CLASS ZCL_ABAPGIT_OBJECT_SPRX IMPLEMENTATION. METHOD zif_abapgit_object~serialize. DATA: - lo_proxy TYPE REF TO cl_proxy, - ls_sprx_db_data TYPE sprx_db_data, - lt_delta TYPE sprx_t_delta, - lx_proxy_gen_error TYPE REF TO cx_proxy_gen_error. + ls_sprx_db_data TYPE sprx_db_data. FIELD-SYMBOLS: LIKE LINE OF ls_sprx_db_data-sproxhdr, - TYPE sprx_dat. + LIKE LINE OF ls_sprx_db_data-sproxdat. + IF zif_abapgit_object~exists( ) = abap_false. RETURN. ENDIF. - ls_sprx_db_data = cl_proxy_db=>load_by_abap_name( - object = mv_object - obj_name = mv_obj_name ). + ls_sprx_db_data = load_db( ). DELETE ls_sprx_db_data-sproxhdr WHERE object <> mv_object OR obj_name <> mv_obj_name. DELETE ls_sprx_db_data-sproxdat WHERE object <> mv_object OR obj_name <> mv_obj_name.