mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Consolidate READ/UPDATE_PROGDIR
calls (#6464)
This commit is contained in:
parent
4ca6c4a4ec
commit
152ae1d59c
|
@ -13,15 +13,14 @@ CLASS zcl_abapgit_sap_report DEFINITION
|
||||||
METHODS get_language_version
|
METHODS get_language_version
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
iv_version TYPE zif_abapgit_sap_report=>ty_abap_language_version
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_version) TYPE zif_abapgit_sap_report=>ty_abap_language_version.
|
VALUE(rv_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||||
|
|
||||||
METHODS authorization_check
|
METHODS authorization_check
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_mode TYPE csequence
|
iv_mode TYPE csequence
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
is_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
iv_version TYPE zif_abapgit_sap_report=>ty_abap_language_version OPTIONAL
|
iv_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
@ -65,16 +64,14 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_language_version.
|
METHOD get_language_version.
|
||||||
|
|
||||||
ASSERT iv_version CA ' X25'.
|
|
||||||
|
|
||||||
" TODO: Determine ABAP Language Version
|
" TODO: Determine ABAP Language Version
|
||||||
" https://github.com/abapGit/abapGit/issues/6154#issuecomment-1503566920)
|
" https://github.com/abapGit/abapGit/issues/6154#issuecomment-1503566920)
|
||||||
|
|
||||||
" For now, use default for ABAP source code
|
" For now, use default for ABAP source code
|
||||||
IF zcl_abapgit_factory=>get_environment( )->is_sap_cloud_platform( ) = abap_true.
|
IF zcl_abapgit_factory=>get_environment( )->is_sap_cloud_platform( ) = abap_true.
|
||||||
rv_version = '5'. " abap_for_cloud_development
|
rv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development.
|
||||||
ELSE.
|
ELSE.
|
||||||
rv_version = 'X'. " standard_abap
|
rv_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -97,46 +94,76 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_sap_report~insert_report.
|
METHOD zif_abapgit_sap_report~insert_report.
|
||||||
|
|
||||||
DATA lv_version TYPE zif_abapgit_sap_report=>ty_abap_language_version ##NEEDED.
|
DATA lv_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||||
DATA lv_obj_name TYPE e071-obj_name.
|
DATA lv_obj_name TYPE e071-obj_name.
|
||||||
|
|
||||||
ASSERT iv_state CA ' AI'.
|
ASSERT iv_state CA ' AI'.
|
||||||
ASSERT iv_program_type CA ' 1FIJKMST'.
|
ASSERT iv_program_type CA ' 1FIJKMST'.
|
||||||
|
|
||||||
lv_version = get_language_version(
|
lv_version = get_language_version( iv_package ).
|
||||||
iv_package = iv_package
|
|
||||||
iv_version = iv_version ).
|
|
||||||
|
|
||||||
authorization_check(
|
authorization_check(
|
||||||
iv_mode = 'MODIFY'
|
iv_mode = 'MODIFY'
|
||||||
is_item = is_item
|
is_item = is_item
|
||||||
iv_version = lv_version ).
|
iv_version = lv_version ).
|
||||||
|
|
||||||
" TODO: Add `VERSION lv_version` but it's not supported in lower releases
|
|
||||||
IF iv_state IS INITIAL.
|
IF iv_state IS INITIAL.
|
||||||
INSERT REPORT iv_name FROM it_source.
|
INSERT REPORT iv_name FROM it_source.
|
||||||
"VERSION lv_version.
|
|
||||||
ELSEIF iv_program_type IS INITIAL AND iv_extension_type IS INITIAL.
|
ELSEIF iv_program_type IS INITIAL AND iv_extension_type IS INITIAL.
|
||||||
INSERT REPORT iv_name FROM it_source
|
INSERT REPORT iv_name FROM it_source
|
||||||
STATE iv_state.
|
STATE iv_state.
|
||||||
"VERSION lv_version.
|
|
||||||
ELSEIF iv_extension_type IS INITIAL.
|
ELSEIF iv_extension_type IS INITIAL.
|
||||||
INSERT REPORT iv_name FROM it_source
|
INSERT REPORT iv_name FROM it_source
|
||||||
STATE iv_state
|
STATE iv_state
|
||||||
PROGRAM TYPE iv_program_type.
|
PROGRAM TYPE iv_program_type.
|
||||||
"VERSION lv_version.
|
|
||||||
ELSE.
|
ELSE.
|
||||||
INSERT REPORT iv_name FROM it_source
|
INSERT REPORT iv_name FROM it_source
|
||||||
STATE iv_state
|
STATE iv_state
|
||||||
EXTENSION TYPE iv_extension_type
|
EXTENSION TYPE iv_extension_type
|
||||||
PROGRAM TYPE iv_program_type.
|
PROGRAM TYPE iv_program_type.
|
||||||
"VERSION lv_version.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
zcx_abapgit_exception=>raise( |Error inserting report { iv_name }| ).
|
zcx_abapgit_exception=>raise( |Error inserting report { iv_name }| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
" In lower releases, INSERT REPORT does not support setting ABAP Language version (VERSION)
|
||||||
|
" Therefore, update the flag directly
|
||||||
|
UPDATE progdir SET uccheck = lv_version WHERE name = iv_name AND state = iv_state.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_sap_report~read_progdir.
|
||||||
|
|
||||||
|
DATA ls_sapdir TYPE progdir.
|
||||||
|
|
||||||
|
CALL FUNCTION 'READ_PROGDIR'
|
||||||
|
EXPORTING
|
||||||
|
i_progname = iv_name
|
||||||
|
i_state = iv_state
|
||||||
|
IMPORTING
|
||||||
|
e_progdir = ls_sapdir.
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING ls_sapdir TO rs_progdir.
|
||||||
|
|
||||||
|
CLEAR: rs_progdir-edtx,
|
||||||
|
rs_progdir-cnam,
|
||||||
|
rs_progdir-cdat,
|
||||||
|
rs_progdir-unam,
|
||||||
|
rs_progdir-udat,
|
||||||
|
rs_progdir-levl,
|
||||||
|
rs_progdir-vern,
|
||||||
|
rs_progdir-rmand,
|
||||||
|
rs_progdir-sdate,
|
||||||
|
rs_progdir-stime,
|
||||||
|
rs_progdir-idate,
|
||||||
|
rs_progdir-itime,
|
||||||
|
rs_progdir-varcl,
|
||||||
|
rs_progdir-state.
|
||||||
|
|
||||||
|
" TODO: Clear UCCHECK
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -161,6 +188,60 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_sap_report~update_progdir.
|
||||||
|
|
||||||
|
DATA ls_progdir_new TYPE progdir.
|
||||||
|
|
||||||
|
CALL FUNCTION 'READ_PROGDIR'
|
||||||
|
EXPORTING
|
||||||
|
i_progname = is_progdir-name
|
||||||
|
i_state = iv_state
|
||||||
|
IMPORTING
|
||||||
|
e_progdir = ls_progdir_new
|
||||||
|
EXCEPTIONS
|
||||||
|
not_exists = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise( 'Error reading program directory' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ls_progdir_new-ldbname = is_progdir-ldbname.
|
||||||
|
ls_progdir_new-dbna = is_progdir-dbna.
|
||||||
|
ls_progdir_new-dbapl = is_progdir-dbapl.
|
||||||
|
ls_progdir_new-rload = is_progdir-rload.
|
||||||
|
ls_progdir_new-fixpt = is_progdir-fixpt.
|
||||||
|
ls_progdir_new-appl = is_progdir-appl.
|
||||||
|
ls_progdir_new-rstat = is_progdir-rstat.
|
||||||
|
ls_progdir_new-uccheck = is_progdir-uccheck. " TODO: replace with get_language_version()
|
||||||
|
ls_progdir_new-sqlx = is_progdir-sqlx.
|
||||||
|
ls_progdir_new-clas = is_progdir-clas.
|
||||||
|
ls_progdir_new-secu = is_progdir-secu.
|
||||||
|
|
||||||
|
CALL FUNCTION 'UPDATE_PROGDIR'
|
||||||
|
EXPORTING
|
||||||
|
i_progdir = ls_progdir_new
|
||||||
|
i_progname = ls_progdir_new-name
|
||||||
|
i_state = ls_progdir_new-state
|
||||||
|
EXCEPTIONS
|
||||||
|
not_executed = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise( 'Error updating program directory' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" Function UPDATE_PROGDIR does not update VARCL, so we do it here
|
||||||
|
SELECT SINGLE * FROM progdir INTO ls_progdir_new
|
||||||
|
WHERE name = ls_progdir_new-name
|
||||||
|
AND state = ls_progdir_new-state.
|
||||||
|
IF sy-subrc = 0 AND is_progdir-varcl <> ls_progdir_new-varcl.
|
||||||
|
UPDATE progdir SET varcl = is_progdir-varcl
|
||||||
|
WHERE name = ls_progdir_new-name
|
||||||
|
AND state = ls_progdir_new-state. "#EC CI_SUBRC
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_sap_report~update_report.
|
METHOD zif_abapgit_sap_report~update_report.
|
||||||
|
|
||||||
DATA lt_new TYPE string_table.
|
DATA lt_new TYPE string_table.
|
||||||
|
@ -171,14 +252,13 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
||||||
|
|
||||||
IF lt_old <> lt_new.
|
IF lt_old <> lt_new.
|
||||||
zif_abapgit_sap_report~insert_report(
|
zif_abapgit_sap_report~insert_report(
|
||||||
iv_name = iv_name
|
iv_name = iv_name
|
||||||
it_source = it_source
|
it_source = it_source
|
||||||
iv_state = iv_state
|
iv_state = iv_state
|
||||||
iv_program_type = iv_program_type
|
iv_program_type = iv_program_type
|
||||||
iv_extension_type = iv_extension_type
|
iv_extension_type = iv_extension_type
|
||||||
iv_package = iv_package
|
iv_package = iv_package
|
||||||
iv_version = iv_version
|
is_item = is_item ).
|
||||||
is_item = is_item ).
|
|
||||||
|
|
||||||
rv_updated = abap_true.
|
rv_updated = abap_true.
|
||||||
ELSE.
|
ELSE.
|
||||||
|
|
|
@ -2,7 +2,38 @@ INTERFACE zif_abapgit_sap_report
|
||||||
PUBLIC.
|
PUBLIC.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_abap_language_version TYPE c LENGTH 1.
|
BEGIN OF ty_progdir,
|
||||||
|
name TYPE progdir-name,
|
||||||
|
state TYPE progdir-state,
|
||||||
|
sqlx TYPE progdir-sqlx,
|
||||||
|
edtx TYPE progdir-edtx,
|
||||||
|
varcl TYPE progdir-varcl,
|
||||||
|
dbapl TYPE progdir-dbapl,
|
||||||
|
dbna TYPE progdir-dbna,
|
||||||
|
clas TYPE progdir-clas,
|
||||||
|
type TYPE progdir-type,
|
||||||
|
occurs TYPE progdir-occurs,
|
||||||
|
subc TYPE progdir-subc,
|
||||||
|
appl TYPE progdir-appl,
|
||||||
|
secu TYPE progdir-secu,
|
||||||
|
cnam TYPE progdir-cnam,
|
||||||
|
cdat TYPE progdir-cdat,
|
||||||
|
unam TYPE progdir-unam,
|
||||||
|
udat TYPE progdir-udat,
|
||||||
|
vern TYPE progdir-vern,
|
||||||
|
levl TYPE progdir-levl,
|
||||||
|
rstat TYPE progdir-rstat,
|
||||||
|
rmand TYPE progdir-rmand,
|
||||||
|
rload TYPE progdir-rload,
|
||||||
|
fixpt TYPE progdir-fixpt,
|
||||||
|
sset TYPE progdir-sset,
|
||||||
|
sdate TYPE progdir-sdate,
|
||||||
|
stime TYPE progdir-stime,
|
||||||
|
idate TYPE progdir-idate,
|
||||||
|
itime TYPE progdir-itime,
|
||||||
|
ldbname TYPE progdir-ldbname,
|
||||||
|
uccheck TYPE progdir-uccheck,
|
||||||
|
END OF ty_progdir.
|
||||||
|
|
||||||
METHODS read_report
|
METHODS read_report
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -22,7 +53,6 @@ INTERFACE zif_abapgit_sap_report
|
||||||
iv_program_type TYPE c OPTIONAL
|
iv_program_type TYPE c OPTIONAL
|
||||||
iv_extension_type TYPE c OPTIONAL
|
iv_extension_type TYPE c OPTIONAL
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
iv_version TYPE ty_abap_language_version OPTIONAL
|
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
@ -35,7 +65,6 @@ INTERFACE zif_abapgit_sap_report
|
||||||
iv_program_type TYPE c OPTIONAL
|
iv_program_type TYPE c OPTIONAL
|
||||||
iv_extension_type TYPE c OPTIONAL
|
iv_extension_type TYPE c OPTIONAL
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
iv_version TYPE ty_abap_language_version OPTIONAL
|
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_updated) TYPE abap_bool
|
VALUE(rv_updated) TYPE abap_bool
|
||||||
|
@ -46,9 +75,25 @@ INTERFACE zif_abapgit_sap_report
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_name TYPE syrepid
|
iv_name TYPE syrepid
|
||||||
iv_raise_error TYPE abap_bool DEFAULT abap_false
|
iv_raise_error TYPE abap_bool DEFAULT abap_false
|
||||||
iv_version TYPE ty_abap_language_version OPTIONAL
|
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS read_progdir
|
||||||
|
IMPORTING
|
||||||
|
iv_name TYPE syrepid
|
||||||
|
iv_state TYPE r3state DEFAULT 'A'
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_progdir) TYPE ty_progdir
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS update_progdir
|
||||||
|
IMPORTING
|
||||||
|
is_progdir TYPE ty_progdir
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_state TYPE r3state DEFAULT 'I'
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
|
@ -362,7 +362,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
METHOD deserialize_includes.
|
METHOD deserialize_includes.
|
||||||
|
|
||||||
DATA: lo_xml TYPE REF TO zif_abapgit_xml_input,
|
DATA: lo_xml TYPE REF TO zif_abapgit_xml_input,
|
||||||
ls_progdir TYPE ty_progdir,
|
ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir,
|
||||||
lt_includes TYPE ty_sobj_name_tt,
|
lt_includes TYPE ty_sobj_name_tt,
|
||||||
lt_tpool TYPE textpool_table,
|
lt_tpool TYPE textpool_table,
|
||||||
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
|
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
|
||||||
|
@ -548,7 +548,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
METHOD get_abap_version.
|
METHOD get_abap_version.
|
||||||
|
|
||||||
DATA: lt_includes TYPE ty_sobj_name_tt,
|
DATA: lt_includes TYPE ty_sobj_name_tt,
|
||||||
ls_progdir TYPE ty_progdir,
|
ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir,
|
||||||
lo_xml TYPE REF TO zif_abapgit_xml_input.
|
lo_xml TYPE REF TO zif_abapgit_xml_input.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <lv_include> LIKE LINE OF lt_includes.
|
FIELD-SYMBOLS: <lv_include> LIKE LINE OF lt_includes.
|
||||||
|
@ -1369,7 +1369,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
* function group SUNI
|
* function group SUNI
|
||||||
|
|
||||||
DATA: lt_functions TYPE ty_function_tt,
|
DATA: lt_functions TYPE ty_function_tt,
|
||||||
ls_progdir TYPE ty_progdir,
|
ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir,
|
||||||
lv_program_name TYPE syrepid,
|
lv_program_name TYPE syrepid,
|
||||||
lt_dynpros TYPE ty_dynpro_tt,
|
lt_dynpros TYPE ty_dynpro_tt,
|
||||||
ls_cua TYPE ty_cua.
|
ls_cua TYPE ty_cua.
|
||||||
|
@ -1388,7 +1388,8 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
serialize_includes( ).
|
serialize_includes( ).
|
||||||
|
|
||||||
lv_program_name = main_name( ).
|
lv_program_name = main_name( ).
|
||||||
ls_progdir = read_progdir( lv_program_name ).
|
|
||||||
|
ls_progdir = zcl_abapgit_factory=>get_sap_report( )->read_progdir( lv_program_name ).
|
||||||
|
|
||||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||||
serialize_texts(
|
serialize_texts(
|
||||||
|
|
|
@ -17,7 +17,7 @@ CLASS zcl_abapgit_object_prog DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
||||||
|
|
||||||
METHODS deserialize_with_ext
|
METHODS deserialize_with_ext
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_progdir TYPE ty_progdir
|
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
|
||||||
!it_source TYPE abaptxt255_tab
|
!it_source TYPE abaptxt255_tab
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -41,7 +41,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION.
|
CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD deserialize_texts.
|
METHOD deserialize_texts.
|
||||||
|
@ -81,17 +81,10 @@ CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION.
|
||||||
iv_program_type = is_progdir-subc
|
iv_program_type = is_progdir-subc
|
||||||
iv_extension_type = is_progdir-name+30 ).
|
iv_extension_type = is_progdir-name+30 ).
|
||||||
|
|
||||||
CALL FUNCTION 'UPDATE_PROGDIR'
|
zcl_abapgit_factory=>get_sap_report( )->update_progdir(
|
||||||
EXPORTING
|
is_progdir = is_progdir
|
||||||
i_progdir = is_progdir
|
iv_state = 'I'
|
||||||
i_progname = is_progdir-name
|
iv_package = iv_package ).
|
||||||
i_state = 'I'
|
|
||||||
EXCEPTIONS
|
|
||||||
not_executed = 1
|
|
||||||
OTHERS = 2.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'Error updating program directory' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
zcl_abapgit_objects_activation=>add(
|
zcl_abapgit_objects_activation=>add(
|
||||||
iv_type = 'REPS'
|
iv_type = 'REPS'
|
||||||
|
@ -213,7 +206,7 @@ CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION.
|
||||||
METHOD zif_abapgit_object~deserialize.
|
METHOD zif_abapgit_object~deserialize.
|
||||||
|
|
||||||
DATA: lv_program_name TYPE syrepid,
|
DATA: lv_program_name TYPE syrepid,
|
||||||
ls_progdir TYPE ty_progdir,
|
ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir,
|
||||||
lt_tpool TYPE textpool_table,
|
lt_tpool TYPE textpool_table,
|
||||||
lt_dynpros TYPE ty_dynpro_tt,
|
lt_dynpros TYPE ty_dynpro_tt,
|
||||||
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
|
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
|
||||||
|
|
|
@ -5,39 +5,6 @@ CLASS zcl_abapgit_objects_program DEFINITION
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_progdir,
|
|
||||||
name TYPE progdir-name,
|
|
||||||
state TYPE progdir-state,
|
|
||||||
sqlx TYPE progdir-sqlx,
|
|
||||||
edtx TYPE progdir-edtx,
|
|
||||||
varcl TYPE progdir-varcl,
|
|
||||||
dbapl TYPE progdir-dbapl,
|
|
||||||
dbna TYPE progdir-dbna,
|
|
||||||
clas TYPE progdir-clas,
|
|
||||||
type TYPE progdir-type,
|
|
||||||
occurs TYPE progdir-occurs,
|
|
||||||
subc TYPE progdir-subc,
|
|
||||||
appl TYPE progdir-appl,
|
|
||||||
secu TYPE progdir-secu,
|
|
||||||
cnam TYPE progdir-cnam,
|
|
||||||
cdat TYPE progdir-cdat,
|
|
||||||
unam TYPE progdir-unam,
|
|
||||||
udat TYPE progdir-udat,
|
|
||||||
vern TYPE progdir-vern,
|
|
||||||
levl TYPE progdir-levl,
|
|
||||||
rstat TYPE progdir-rstat,
|
|
||||||
rmand TYPE progdir-rmand,
|
|
||||||
rload TYPE progdir-rload,
|
|
||||||
fixpt TYPE progdir-fixpt,
|
|
||||||
sset TYPE progdir-sset,
|
|
||||||
sdate TYPE progdir-sdate,
|
|
||||||
stime TYPE progdir-stime,
|
|
||||||
idate TYPE progdir-idate,
|
|
||||||
itime TYPE progdir-itime,
|
|
||||||
ldbname TYPE progdir-ldbname,
|
|
||||||
uccheck TYPE progdir-uccheck,
|
|
||||||
END OF ty_progdir.
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_cua,
|
BEGIN OF ty_cua,
|
||||||
adm TYPE rsmpe_adm,
|
adm TYPE rsmpe_adm,
|
||||||
|
@ -63,14 +30,9 @@ CLASS zcl_abapgit_objects_program DEFINITION
|
||||||
!iv_extra TYPE clike OPTIONAL
|
!iv_extra TYPE clike OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
METHODS read_progdir
|
|
||||||
IMPORTING
|
|
||||||
!iv_program TYPE syrepid
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_progdir) TYPE ty_progdir.
|
|
||||||
METHODS deserialize_program
|
METHODS deserialize_program
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_progdir TYPE ty_progdir
|
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
|
||||||
!it_source TYPE abaptxt255_tab
|
!it_source TYPE abaptxt255_tab
|
||||||
!it_tpool TYPE textpool_table
|
!it_tpool TYPE textpool_table
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
|
@ -178,7 +140,7 @@ CLASS zcl_abapgit_objects_program DEFINITION
|
||||||
VALUE(rv_title) TYPE repti .
|
VALUE(rv_title) TYPE repti .
|
||||||
METHODS insert_program
|
METHODS insert_program
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_progdir TYPE ty_progdir
|
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
|
||||||
!it_source TYPE abaptxt255_tab
|
!it_source TYPE abaptxt255_tab
|
||||||
!iv_title TYPE repti
|
!iv_title TYPE repti
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
|
@ -186,16 +148,11 @@ CLASS zcl_abapgit_objects_program DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS update_program
|
METHODS update_program
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_progdir TYPE ty_progdir
|
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
|
||||||
!it_source TYPE abaptxt255_tab
|
!it_source TYPE abaptxt255_tab
|
||||||
!iv_title TYPE repti
|
!iv_title TYPE repti
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS update_progdir
|
|
||||||
IMPORTING
|
|
||||||
!is_progdir TYPE ty_progdir
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -497,7 +454,9 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
iv_package = iv_package ).
|
iv_package = iv_package ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
update_progdir( is_progdir ).
|
zcl_abapgit_factory=>get_sap_report( )->update_progdir(
|
||||||
|
is_progdir = is_progdir
|
||||||
|
iv_package = iv_package ).
|
||||||
|
|
||||||
zcl_abapgit_objects_activation=>add(
|
zcl_abapgit_objects_activation=>add(
|
||||||
iv_type = 'REPS'
|
iv_type = 'REPS'
|
||||||
|
@ -671,37 +630,6 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD read_progdir.
|
|
||||||
|
|
||||||
DATA: ls_sapdir TYPE progdir.
|
|
||||||
|
|
||||||
|
|
||||||
CALL FUNCTION 'READ_PROGDIR'
|
|
||||||
EXPORTING
|
|
||||||
i_progname = iv_program
|
|
||||||
i_state = 'A'
|
|
||||||
IMPORTING
|
|
||||||
e_progdir = ls_sapdir.
|
|
||||||
MOVE-CORRESPONDING ls_sapdir TO rs_progdir.
|
|
||||||
|
|
||||||
CLEAR: rs_progdir-edtx,
|
|
||||||
rs_progdir-cnam,
|
|
||||||
rs_progdir-cdat,
|
|
||||||
rs_progdir-unam,
|
|
||||||
rs_progdir-udat,
|
|
||||||
rs_progdir-levl,
|
|
||||||
rs_progdir-vern,
|
|
||||||
rs_progdir-rmand,
|
|
||||||
rs_progdir-sdate,
|
|
||||||
rs_progdir-stime,
|
|
||||||
rs_progdir-idate,
|
|
||||||
rs_progdir-itime,
|
|
||||||
rs_progdir-varcl,
|
|
||||||
rs_progdir-state.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD read_tpool.
|
METHOD read_tpool.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_tpool_in> LIKE LINE OF it_tpool,
|
FIELD-SYMBOLS: <ls_tpool_in> LIKE LINE OF it_tpool,
|
||||||
|
@ -878,7 +806,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD serialize_program.
|
METHOD serialize_program.
|
||||||
|
|
||||||
DATA: ls_progdir TYPE ty_progdir,
|
DATA: ls_progdir TYPE zif_abapgit_sap_report=>ty_progdir,
|
||||||
lv_program_name TYPE syrepid,
|
lv_program_name TYPE syrepid,
|
||||||
lt_dynpros TYPE ty_dynpro_tt,
|
lt_dynpros TYPE ty_dynpro_tt,
|
||||||
ls_cua TYPE ty_cua,
|
ls_cua TYPE ty_cua,
|
||||||
|
@ -919,7 +847,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
zcl_abapgit_language=>restore_login_language( ).
|
zcl_abapgit_language=>restore_login_language( ).
|
||||||
|
|
||||||
ls_progdir = read_progdir( lv_program_name ).
|
ls_progdir = zcl_abapgit_factory=>get_sap_report( )->read_progdir( lv_program_name ).
|
||||||
|
|
||||||
IF io_xml IS BOUND.
|
IF io_xml IS BOUND.
|
||||||
li_xml = io_xml.
|
li_xml = io_xml.
|
||||||
|
@ -1039,61 +967,6 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD update_progdir.
|
|
||||||
|
|
||||||
DATA ls_progdir_new TYPE progdir.
|
|
||||||
|
|
||||||
CALL FUNCTION 'READ_PROGDIR'
|
|
||||||
EXPORTING
|
|
||||||
i_progname = is_progdir-name
|
|
||||||
i_state = 'I'
|
|
||||||
IMPORTING
|
|
||||||
e_progdir = ls_progdir_new
|
|
||||||
EXCEPTIONS
|
|
||||||
not_exists = 1
|
|
||||||
OTHERS = 2.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'Error reading program directory' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ls_progdir_new-ldbname = is_progdir-ldbname.
|
|
||||||
ls_progdir_new-dbna = is_progdir-dbna.
|
|
||||||
ls_progdir_new-dbapl = is_progdir-dbapl.
|
|
||||||
ls_progdir_new-rload = is_progdir-rload.
|
|
||||||
ls_progdir_new-fixpt = is_progdir-fixpt.
|
|
||||||
ls_progdir_new-varcl = is_progdir-varcl.
|
|
||||||
ls_progdir_new-appl = is_progdir-appl.
|
|
||||||
ls_progdir_new-rstat = is_progdir-rstat.
|
|
||||||
ls_progdir_new-sqlx = is_progdir-sqlx.
|
|
||||||
ls_progdir_new-uccheck = is_progdir-uccheck.
|
|
||||||
ls_progdir_new-clas = is_progdir-clas.
|
|
||||||
ls_progdir_new-secu = is_progdir-secu.
|
|
||||||
|
|
||||||
CALL FUNCTION 'UPDATE_PROGDIR'
|
|
||||||
EXPORTING
|
|
||||||
i_progdir = ls_progdir_new
|
|
||||||
i_progname = ls_progdir_new-name
|
|
||||||
i_state = ls_progdir_new-state
|
|
||||||
EXCEPTIONS
|
|
||||||
not_executed = 1
|
|
||||||
OTHERS = 2.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'Error updating program directory' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
" function UPDATE_PROGDIR does not update VARCL, so we do it here
|
|
||||||
SELECT SINGLE * FROM progdir INTO ls_progdir_new
|
|
||||||
WHERE name = ls_progdir_new-name
|
|
||||||
AND state = ls_progdir_new-state.
|
|
||||||
IF sy-subrc = 0 AND is_progdir-varcl <> ls_progdir_new-varcl.
|
|
||||||
UPDATE progdir SET varcl = is_progdir-varcl
|
|
||||||
WHERE name = ls_progdir_new-name
|
|
||||||
AND state = ls_progdir_new-state. "#EC CI_SUBRC
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_program.
|
METHOD update_program.
|
||||||
|
|
||||||
zcl_abapgit_language=>set_current_language( mv_language ).
|
zcl_abapgit_language=>set_current_language( mv_language ).
|
||||||
|
|
|
@ -1,22 +1,26 @@
|
||||||
CLASS zcl_abapgit_abap_language_vers DEFINITION
|
CLASS zcl_abapgit_abap_language_vers DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
FINAL
|
FINAL
|
||||||
CREATE PUBLIC .
|
CREATE PUBLIC.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
CONSTANTS c_feature_flag TYPE string VALUE 'ALAV'.
|
||||||
|
|
||||||
METHODS get_abap_language_vers_by_objt
|
METHODS get_abap_language_vers_by_objt
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_object_type TYPE trobjtype
|
!iv_object_type TYPE trobjtype
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version .
|
VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||||
|
|
||||||
METHODS is_import_allowed
|
METHODS is_import_allowed
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zif_abapgit_repo
|
!io_repo TYPE REF TO zif_abapgit_repo
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_allowed) TYPE abap_bool .
|
VALUE(rv_allowed) TYPE abap_bool.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -24,12 +28,14 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_abap_language_version) TYPE string .
|
VALUE(rv_abap_language_version) TYPE string.
|
||||||
|
|
||||||
METHODS get_abap_language_vers_by_repo
|
METHODS get_abap_language_vers_by_repo
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zif_abapgit_repo
|
!io_repo TYPE REF TO zif_abapgit_repo
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_abap_language_version) TYPE string .
|
VALUE(rv_abap_language_version) TYPE string.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,6 +76,7 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
rv_abap_language_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
rv_abap_language_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user