mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
commit
bb923305bf
519
zabapgit.abap
519
zabapgit.abap
|
@ -2,7 +2,7 @@ REPORT zabapgit.
|
||||||
|
|
||||||
* See https://github.com/larshp/abapGit/
|
* See https://github.com/larshp/abapGit/
|
||||||
|
|
||||||
CONSTANTS: gc_version TYPE string VALUE 'v0.1-alpha'. "#EC NOTEXT
|
CONSTANTS: gc_version TYPE string VALUE 'v0.2-alpha'. "#EC NOTEXT
|
||||||
|
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
|
@ -332,10 +332,12 @@ CLASS lcl_xml DEFINITION FINAL.
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
METHODS table_add IMPORTING it_table TYPE STANDARD TABLE
|
METHODS table_add IMPORTING it_table TYPE STANDARD TABLE
|
||||||
|
iv_name TYPE string OPTIONAL
|
||||||
ii_root TYPE REF TO if_ixml_element OPTIONAL
|
ii_root TYPE REF TO if_ixml_element OPTIONAL
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
METHODS table_read IMPORTING ii_root TYPE REF TO if_ixml_element OPTIONAL
|
METHODS table_read IMPORTING ii_root TYPE REF TO if_ixml_element OPTIONAL
|
||||||
|
iv_name TYPE string OPTIONAL
|
||||||
CHANGING ct_table TYPE STANDARD TABLE
|
CHANGING ct_table TYPE STANDARD TABLE
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
@ -458,6 +460,11 @@ CLASS lcl_xml IMPLEMENTATION.
|
||||||
|
|
||||||
lo_table_descr ?= cl_abap_typedescr=>describe_by_data( ct_table ).
|
lo_table_descr ?= cl_abap_typedescr=>describe_by_data( ct_table ).
|
||||||
lv_name = lo_table_descr->get_relative_name( ).
|
lv_name = lo_table_descr->get_relative_name( ).
|
||||||
|
|
||||||
|
IF lv_name IS INITIAL.
|
||||||
|
lv_name = iv_name.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF lv_name IS INITIAL.
|
IF lv_name IS INITIAL.
|
||||||
_raise 'no name'.
|
_raise 'no name'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -563,6 +570,10 @@ CLASS lcl_xml IMPLEMENTATION.
|
||||||
lo_table_descr ?= cl_abap_typedescr=>describe_by_data( it_table ).
|
lo_table_descr ?= cl_abap_typedescr=>describe_by_data( it_table ).
|
||||||
lv_name = lo_table_descr->get_relative_name( ).
|
lv_name = lo_table_descr->get_relative_name( ).
|
||||||
|
|
||||||
|
IF lv_name IS INITIAL.
|
||||||
|
lv_name = iv_name.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF lv_name IS INITIAL.
|
IF lv_name IS INITIAL.
|
||||||
_raise 'no name'.
|
_raise 'no name'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -1042,6 +1053,10 @@ ENDCLASS. "lcl_diff IMPLEMENTATION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_serialize_common DEFINITION ABSTRACT.
|
CLASS lcl_serialize_common DEFINITION ABSTRACT.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-DATA: gt_ddic TYPE TABLE OF dwinactiv,
|
||||||
|
gt_programs TYPE TABLE OF dwinactiv.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
CLASS-METHODS: xml_to_file IMPORTING is_item TYPE st_item
|
CLASS-METHODS: xml_to_file IMPORTING is_item TYPE st_item
|
||||||
io_xml TYPE REF TO lcl_xml
|
io_xml TYPE REF TO lcl_xml
|
||||||
|
@ -1065,7 +1080,8 @@ CLASS lcl_serialize_common DEFINITION ABSTRACT.
|
||||||
RETURNING value(rs_file) TYPE st_file
|
RETURNING value(rs_file) TYPE st_file
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS: activate IMPORTING is_item TYPE st_item
|
CLASS-METHODS: activation_add IMPORTING iv_type TYPE trobjtype
|
||||||
|
iv_name TYPE clike
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS: corr_insert IMPORTING is_item TYPE st_item
|
CLASS-METHODS: corr_insert IMPORTING is_item TYPE st_item
|
||||||
|
@ -1104,7 +1120,9 @@ CLASS lcl_serialize_common IMPLEMENTATION.
|
||||||
permission_failure = 2
|
permission_failure = 2
|
||||||
unknown_objectclass = 3
|
unknown_objectclass = 3
|
||||||
OTHERS = 4.
|
OTHERS = 4.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc = 1.
|
||||||
|
_raise 'Cancelled'.
|
||||||
|
ELSEIF sy-subrc <> 0.
|
||||||
_raise 'error from RS_CORR_INSERT'.
|
_raise 'error from RS_CORR_INSERT'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
@ -1121,58 +1139,39 @@ CLASS lcl_serialize_common IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "filename
|
ENDMETHOD. "filename
|
||||||
|
|
||||||
METHOD activate.
|
METHOD activation_add.
|
||||||
|
|
||||||
* function group SEWORKINGAREA
|
* function group SEWORKINGAREA
|
||||||
|
* function module RS_INSERT_INTO_WORKING_AREA
|
||||||
|
* class CL_WB_ACTIVATION_WORK_AREA
|
||||||
|
|
||||||
DATA: lt_objects TYPE dwinactiv_tab,
|
DATA: lt_objects TYPE dwinactiv_tab,
|
||||||
lv_obj_name TYPE dwinactiv-obj_name.
|
lv_obj_name TYPE dwinactiv-obj_name.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_object> LIKE LINE OF lt_objects.
|
||||||
|
|
||||||
lv_obj_name = is_item-obj_name.
|
|
||||||
|
|
||||||
CASE is_item-obj_type.
|
lv_obj_name = iv_name.
|
||||||
|
|
||||||
|
CASE iv_type.
|
||||||
WHEN 'CLAS'.
|
WHEN 'CLAS'.
|
||||||
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
obj_name = lv_obj_name
|
obj_name = lv_obj_name
|
||||||
object = is_item-obj_type
|
object = iv_type
|
||||||
TABLES
|
TABLES
|
||||||
inactive_objects = lt_objects.
|
inactive_objects = lt_objects.
|
||||||
|
APPEND LINES OF lt_objects TO lcl_serialize_common=>gt_programs.
|
||||||
IF lt_objects[] IS INITIAL.
|
WHEN 'DOMA' OR 'DTEL' OR 'TABL'.
|
||||||
RETURN.
|
* todo also insert_into_working_area?
|
||||||
ENDIF.
|
APPEND INITIAL LINE TO lcl_serialize_common=>gt_ddic ASSIGNING <ls_object>.
|
||||||
|
<ls_object>-object = iv_type.
|
||||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
<ls_object>-obj_name = lv_obj_name.
|
||||||
TABLES
|
WHEN 'REPS' OR 'DYNP' OR 'CUAD'.
|
||||||
objects = lt_objects
|
* these seem to go into the workarea automatically
|
||||||
EXCEPTIONS
|
APPEND INITIAL LINE TO lcl_serialize_common=>gt_programs ASSIGNING <ls_object>.
|
||||||
excecution_error = 1
|
<ls_object>-object = iv_type.
|
||||||
cancelled = 2
|
<ls_object>-obj_name = lv_obj_name.
|
||||||
insert_into_corr_error = 3
|
|
||||||
execution_error = 4
|
|
||||||
OTHERS = 5.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
_raise 'error from RS_WORKING_OBJECTS_ACTIVATE'.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
WHEN 'DOMA' OR 'DTEL'.
|
|
||||||
CALL FUNCTION 'RS_WORKING_OBJECT_ACTIVATE'
|
|
||||||
EXPORTING
|
|
||||||
object = is_item-obj_type
|
|
||||||
obj_name = lv_obj_name
|
|
||||||
dictionary_only = abap_true
|
|
||||||
EXCEPTIONS
|
|
||||||
object_not_in_working_area = 1
|
|
||||||
execution_error = 2
|
|
||||||
cancelled = 3
|
|
||||||
insert_into_corr_error = 4
|
|
||||||
OTHERS = 5.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
_raise 'error from RS_WORKING_OBJECT_ACTIVATE'.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
_raise 'activate, unknown type'.
|
_raise 'activate, unknown type'.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
@ -1367,7 +1366,8 @@ CLASS lcl_serialize_doma IMPLEMENTATION.
|
||||||
_raise 'error from DDIF_DOMA_PUT'.
|
_raise 'error from DDIF_DOMA_PUT'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
activate( is_item ).
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
@ -1475,7 +1475,8 @@ CLASS lcl_serialize_dtel IMPLEMENTATION.
|
||||||
_raise 'error from DDIF_DTEL_PUT'.
|
_raise 'error from DDIF_DTEL_PUT'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
activate( is_item ).
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
@ -1882,7 +1883,8 @@ CLASS lcl_serialize_clas IMPLEMENTATION.
|
||||||
_raise 'save failure'.
|
_raise 'save failure'.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
activate( is_item ).
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
@ -1949,11 +1951,141 @@ ENDCLASS. "lcl_serialize_dtel DEFINITION
|
||||||
CLASS lcl_serialize_tabl IMPLEMENTATION.
|
CLASS lcl_serialize_tabl IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD serialize.
|
METHOD serialize.
|
||||||
|
|
||||||
|
DATA: lv_name TYPE ddobjname,
|
||||||
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_file TYPE st_file,
|
||||||
|
ls_dd02v TYPE dd02v,
|
||||||
|
ls_dd09l TYPE dd09l,
|
||||||
|
lt_dd03p TYPE ddtt_dd03p,
|
||||||
|
lt_dd05m TYPE ddtt_dd05m,
|
||||||
|
lt_dd08v TYPE ddtt_dd08v,
|
||||||
|
lt_dd12v TYPE dd12vtab,
|
||||||
|
lt_dd17v TYPE dd17vtab,
|
||||||
|
lt_dd35v TYPE ddtt_dd35v,
|
||||||
|
lt_dd36m TYPE dd36mttyp.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_dd12v> LIKE LINE OF lt_dd12v.
|
||||||
|
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_TABL_GET'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
IMPORTING
|
||||||
|
dd02v_wa = ls_dd02v
|
||||||
|
dd09l_wa = ls_dd09l
|
||||||
|
TABLES
|
||||||
|
dd03p_tab = lt_dd03p
|
||||||
|
dd05m_tab = lt_dd05m
|
||||||
|
dd08v_tab = lt_dd08v
|
||||||
|
dd12v_tab = lt_dd12v
|
||||||
|
dd17v_tab = lt_dd17v
|
||||||
|
dd35v_tab = lt_dd35v
|
||||||
|
dd36m_tab = lt_dd36m
|
||||||
|
EXCEPTIONS
|
||||||
|
illegal_input = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_TABL_GET'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: ls_dd02v-as4user,
|
||||||
|
ls_dd02v-as4date,
|
||||||
|
ls_dd02v-as4time.
|
||||||
|
|
||||||
|
CLEAR: ls_dd09l-as4user,
|
||||||
|
ls_dd09l-as4date,
|
||||||
|
ls_dd09l-as4time.
|
||||||
|
|
||||||
|
LOOP AT lt_dd12v ASSIGNING <ls_dd12v>.
|
||||||
|
CLEAR: <ls_dd12v>-as4user,
|
||||||
|
<ls_dd12v>-as4date,
|
||||||
|
<ls_dd12v>-as4time.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->structure_add( ls_dd02v ).
|
||||||
|
lo_xml->structure_add( ls_dd09l ).
|
||||||
|
lo_xml->table_add( lt_dd03p ).
|
||||||
|
lo_xml->table_add( lt_dd05m ).
|
||||||
|
lo_xml->table_add( lt_dd08v ).
|
||||||
|
lo_xml->table_add( lt_dd12v ).
|
||||||
|
lo_xml->table_add( lt_dd17v ).
|
||||||
|
lo_xml->table_add( lt_dd35v ).
|
||||||
|
lo_xml->table_add( lt_dd36m ).
|
||||||
|
|
||||||
|
ls_file = xml_to_file( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
_raise 'todo'.
|
_raise 'todo'.
|
||||||
|
|
||||||
ENDMETHOD. "serialize
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
METHOD deserialize.
|
METHOD deserialize.
|
||||||
|
|
||||||
|
DATA: lv_name TYPE ddobjname,
|
||||||
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_dd02v TYPE dd02v,
|
||||||
|
ls_dd09l TYPE dd09l,
|
||||||
|
lt_dd03p TYPE ddtt_dd03p,
|
||||||
|
lt_dd05m TYPE ddtt_dd05m,
|
||||||
|
lt_dd08v TYPE ddtt_dd08v,
|
||||||
|
lt_dd12v TYPE dd12vtab,
|
||||||
|
lt_dd17v TYPE dd17vtab,
|
||||||
|
lt_dd35v TYPE ddtt_dd35v,
|
||||||
|
lt_dd36m TYPE dd36mttyp.
|
||||||
|
|
||||||
|
|
||||||
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
it_files = it_files ).
|
||||||
|
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd02v ).
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd09l ).
|
||||||
|
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd03p ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd05m ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd08v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd12v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd17v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd35v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd36m ).
|
||||||
|
|
||||||
|
corr_insert( is_item ).
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name. " type conversion
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_TABL_PUT'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
dd02v_wa = ls_dd02v
|
||||||
|
dd09l_wa = ls_dd09l
|
||||||
|
TABLES
|
||||||
|
dd03p_tab = lt_dd03p
|
||||||
|
dd05m_tab = lt_dd05m
|
||||||
|
dd08v_tab = lt_dd08v
|
||||||
|
dd35v_tab = lt_dd35v
|
||||||
|
dd36m_tab = lt_dd36m
|
||||||
|
EXCEPTIONS
|
||||||
|
tabl_not_found = 1
|
||||||
|
name_inconsistent = 2
|
||||||
|
tabl_inconsistent = 3
|
||||||
|
put_failure = 4
|
||||||
|
put_refused = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_TABL_PUT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
* todo dd012v and dd17v?
|
||||||
|
|
||||||
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
_raise 'todo'.
|
_raise 'todo'.
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
ENDCLASS. "lcl_serialize_TABL IMPLEMENTATION
|
ENDCLASS. "lcl_serialize_TABL IMPLEMENTATION
|
||||||
|
@ -2050,10 +2182,18 @@ CLASS lcl_serialize_prog DEFINITION INHERITING FROM lcl_serialize_common FINAL.
|
||||||
io_xml TYPE REF TO lcl_xml
|
io_xml TYPE REF TO lcl_xml
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: serialize_cua IMPORTING iv_program_name TYPE programm
|
||||||
|
io_xml TYPE REF TO lcl_xml
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS: deserialize_dynpros IMPORTING io_xml TYPE REF TO lcl_xml
|
CLASS-METHODS: deserialize_dynpros IMPORTING io_xml TYPE REF TO lcl_xml
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS: deserialize_abap IMPORTING iv_obj_name TYPE tadir-obj_name
|
CLASS-METHODS: deserialize_cua IMPORTING io_xml TYPE REF TO lcl_xml
|
||||||
|
is_item TYPE st_item
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: deserialize_abap IMPORTING is_item TYPE st_item
|
||||||
io_xml TYPE REF TO lcl_xml
|
io_xml TYPE REF TO lcl_xml
|
||||||
it_source TYPE abaptxt255_tab
|
it_source TYPE abaptxt255_tab
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
@ -2070,6 +2210,165 @@ ENDCLASS. "lcl_serialize_prog DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_serialize_prog IMPLEMENTATION.
|
CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD deserialize_cua.
|
||||||
|
|
||||||
|
DATA: ls_tr_key TYPE trkey,
|
||||||
|
ls_adm TYPE rsmpe_adm,
|
||||||
|
lt_sta TYPE TABLE OF rsmpe_stat,
|
||||||
|
lt_fun TYPE TABLE OF rsmpe_funt,
|
||||||
|
lt_men TYPE TABLE OF rsmpe_men,
|
||||||
|
lt_mtx TYPE TABLE OF rsmpe_mnlt,
|
||||||
|
lt_act TYPE TABLE OF rsmpe_act,
|
||||||
|
lt_but TYPE TABLE OF rsmpe_but,
|
||||||
|
lt_pfk TYPE TABLE OF rsmpe_pfk,
|
||||||
|
lt_set TYPE TABLE OF rsmpe_staf,
|
||||||
|
lt_doc TYPE TABLE OF rsmpe_atrt,
|
||||||
|
lt_tit TYPE TABLE OF rsmpe_titt,
|
||||||
|
lt_biv TYPE TABLE OF rsmpe_buts.
|
||||||
|
|
||||||
|
|
||||||
|
io_xml->structure_read( CHANGING cg_structure = ls_adm ).
|
||||||
|
IF ls_adm IS INITIAL.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_STAT_TABLE'
|
||||||
|
CHANGING ct_table = lt_sta ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_FUNT_TABLE'
|
||||||
|
CHANGING ct_table = lt_fun ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_MEN_TABLE'
|
||||||
|
CHANGING ct_table = lt_men ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_MNLT_TABLE'
|
||||||
|
CHANGING ct_table = lt_mtx ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_ACT_TABLE'
|
||||||
|
CHANGING ct_table = lt_act ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_BUT_TABLE'
|
||||||
|
CHANGING ct_table = lt_but ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_PFK_TABLE'
|
||||||
|
CHANGING ct_table = lt_pfk ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_STAF_TABLE'
|
||||||
|
CHANGING ct_table = lt_set ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_ATRT_TABLE'
|
||||||
|
CHANGING ct_table = lt_doc ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_TITT_TABLE'
|
||||||
|
CHANGING ct_table = lt_tit ).
|
||||||
|
io_xml->table_read( EXPORTING iv_name = 'RSMPE_BUTS_TABLE'
|
||||||
|
CHANGING ct_table = lt_biv ).
|
||||||
|
|
||||||
|
SELECT SINGLE devclass INTO ls_tr_key-devclass
|
||||||
|
FROM tadir
|
||||||
|
WHERE pgmid = 'R3TR'
|
||||||
|
AND object = is_item-obj_type
|
||||||
|
AND obj_name = is_item-obj_name.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'not found in tadir'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ls_tr_key-obj_type = is_item-obj_type.
|
||||||
|
ls_tr_key-obj_name = is_item-obj_name.
|
||||||
|
ls_tr_key-sub_type = 'CUAD'.
|
||||||
|
ls_tr_key-sub_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'RS_CUA_INTERNAL_WRITE'
|
||||||
|
EXPORTING
|
||||||
|
program = is_item-obj_name
|
||||||
|
language = sy-langu
|
||||||
|
tr_key = ls_tr_key
|
||||||
|
adm = ls_adm
|
||||||
|
state = 'I'
|
||||||
|
TABLES
|
||||||
|
sta = lt_sta
|
||||||
|
fun = lt_fun
|
||||||
|
men = lt_men
|
||||||
|
mtx = lt_mtx
|
||||||
|
act = lt_act
|
||||||
|
but = lt_but
|
||||||
|
pfk = lt_pfk
|
||||||
|
set = lt_set
|
||||||
|
doc = lt_doc
|
||||||
|
tit = lt_tit
|
||||||
|
biv = lt_biv
|
||||||
|
EXCEPTIONS
|
||||||
|
not_found = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from RS_CUA_INTERNAL_WRITE'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
activation_add( iv_type = 'CUAD'
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
|
ENDMETHOD. "deserialize_cua
|
||||||
|
|
||||||
|
METHOD serialize_cua.
|
||||||
|
|
||||||
|
DATA: ls_adm TYPE rsmpe_adm,
|
||||||
|
lt_sta TYPE TABLE OF rsmpe_stat,
|
||||||
|
lt_fun TYPE TABLE OF rsmpe_funt,
|
||||||
|
lt_men TYPE TABLE OF rsmpe_men,
|
||||||
|
lt_mtx TYPE TABLE OF rsmpe_mnlt,
|
||||||
|
lt_act TYPE TABLE OF rsmpe_act,
|
||||||
|
lt_but TYPE TABLE OF rsmpe_but,
|
||||||
|
lt_pfk TYPE TABLE OF rsmpe_pfk,
|
||||||
|
lt_set TYPE TABLE OF rsmpe_staf,
|
||||||
|
lt_doc TYPE TABLE OF rsmpe_atrt,
|
||||||
|
lt_tit TYPE TABLE OF rsmpe_titt,
|
||||||
|
lt_biv TYPE TABLE OF rsmpe_buts.
|
||||||
|
|
||||||
|
|
||||||
|
CALL FUNCTION 'RS_CUA_INTERNAL_FETCH'
|
||||||
|
EXPORTING
|
||||||
|
program = iv_program_name
|
||||||
|
language = sy-langu
|
||||||
|
state = 'A'
|
||||||
|
IMPORTING
|
||||||
|
adm = ls_adm
|
||||||
|
TABLES
|
||||||
|
sta = lt_sta
|
||||||
|
fun = lt_fun
|
||||||
|
men = lt_men
|
||||||
|
mtx = lt_mtx
|
||||||
|
act = lt_act
|
||||||
|
but = lt_but
|
||||||
|
pfk = lt_pfk
|
||||||
|
set = lt_set
|
||||||
|
doc = lt_doc
|
||||||
|
tit = lt_tit
|
||||||
|
biv = lt_biv
|
||||||
|
EXCEPTIONS
|
||||||
|
not_found = 1
|
||||||
|
unknown_version = 2
|
||||||
|
OTHERS = 3.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from RS_CUA_INTERNAL_FETCH'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
io_xml->structure_add( ls_adm ).
|
||||||
|
io_xml->table_add( it_table = lt_sta
|
||||||
|
iv_name = 'RSMPE_STAT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_fun
|
||||||
|
iv_name = 'RSMPE_FUNT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_men
|
||||||
|
iv_name = 'RSMPE_MEN_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_mtx
|
||||||
|
iv_name = 'RSMPE_MNLT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_act
|
||||||
|
iv_name = 'RSMPE_ACT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_but
|
||||||
|
iv_name = 'RSMPE_BUT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_pfk
|
||||||
|
iv_name = 'RSMPE_PFK_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_set
|
||||||
|
iv_name = 'RSMPE_STAF_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_doc
|
||||||
|
iv_name = 'RSMPE_ATRT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_tit
|
||||||
|
iv_name = 'RSMPE_TITT_TABLE' ).
|
||||||
|
io_xml->table_add( it_table = lt_biv
|
||||||
|
iv_name = 'RSMPE_BUTS_TABLE' ).
|
||||||
|
|
||||||
|
ENDMETHOD. "serialize_cua
|
||||||
|
|
||||||
METHOD serialize.
|
METHOD serialize.
|
||||||
|
|
||||||
DATA: ls_progdir TYPE progdir,
|
DATA: ls_progdir TYPE progdir,
|
||||||
|
@ -2124,9 +2423,12 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
IF ls_progdir-subc = '1'.
|
IF ls_progdir-subc = '1'.
|
||||||
serialize_dynpros( EXPORTING iv_program_name = lv_program_name
|
serialize_dynpros( EXPORTING iv_program_name = lv_program_name
|
||||||
io_xml = lo_xml ).
|
io_xml = lo_xml ).
|
||||||
|
serialize_cua( EXPORTING iv_program_name = lv_program_name
|
||||||
|
io_xml = lo_xml ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ls_file = xml_to_file( is_item = is_item
|
ls_file = xml_to_file( is_item = is_item
|
||||||
io_xml = lo_xml ).
|
io_xml = lo_xml ).
|
||||||
APPEND ls_file TO rt_files.
|
APPEND ls_file TO rt_files.
|
||||||
|
@ -2212,14 +2514,17 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
|
|
||||||
read_abap( EXPORTING is_item = is_item
|
read_abap( EXPORTING is_item = is_item
|
||||||
it_files = it_files
|
it_files = it_files
|
||||||
CHANGING ct_abap = lt_source ).
|
CHANGING ct_abap = lt_source ).
|
||||||
|
|
||||||
deserialize_abap( iv_obj_name = is_item-obj_name
|
deserialize_abap( is_item = is_item
|
||||||
io_xml = lo_xml
|
io_xml = lo_xml
|
||||||
it_source = lt_source ).
|
it_source = lt_source ).
|
||||||
|
|
||||||
deserialize_dynpros( lo_xml ).
|
deserialize_dynpros( lo_xml ).
|
||||||
|
|
||||||
|
deserialize_cua( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_serialize~deserialize
|
ENDMETHOD. "lif_serialize~deserialize
|
||||||
|
|
||||||
METHOD deserialize_dynpros.
|
METHOD deserialize_dynpros.
|
||||||
|
@ -2227,6 +2532,8 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
DATA: li_element TYPE REF TO if_ixml_element,
|
DATA: li_element TYPE REF TO if_ixml_element,
|
||||||
ls_header TYPE rpy_dyhead,
|
ls_header TYPE rpy_dyhead,
|
||||||
lt_containers TYPE dycatt_tab,
|
lt_containers TYPE dycatt_tab,
|
||||||
|
ls_item TYPE st_item,
|
||||||
|
lv_name TYPE dwinactiv-obj_name,
|
||||||
lt_fields_to_containers TYPE dyfatc_tab,
|
lt_fields_to_containers TYPE dyfatc_tab,
|
||||||
lt_flow_logic TYPE swydyflow.
|
lt_flow_logic TYPE swydyflow.
|
||||||
|
|
||||||
|
@ -2270,6 +2577,11 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
* todo, RPY_DYNPRO_UPDATE?
|
* todo, RPY_DYNPRO_UPDATE?
|
||||||
|
|
||||||
|
CONCATENATE ls_header-program ls_header-screen INTO lv_name RESPECTING BLANKS.
|
||||||
|
|
||||||
|
activation_add( iv_type = 'DYNP'
|
||||||
|
iv_name = lv_name ).
|
||||||
|
|
||||||
ENDDO.
|
ENDDO.
|
||||||
|
|
||||||
ENDMETHOD. "deserialize_dynpros
|
ENDMETHOD. "deserialize_dynpros
|
||||||
|
@ -2277,6 +2589,7 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
METHOD deserialize_abap.
|
METHOD deserialize_abap.
|
||||||
|
|
||||||
DATA: ls_progdir TYPE progdir,
|
DATA: ls_progdir TYPE progdir,
|
||||||
|
ls_item LIKE is_item,
|
||||||
ls_progdir_new TYPE progdir.
|
ls_progdir_new TYPE progdir.
|
||||||
|
|
||||||
|
|
||||||
|
@ -2284,10 +2597,11 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF exists( iv_obj_name ) = abap_true.
|
IF exists( is_item-obj_name ) = abap_true.
|
||||||
CALL FUNCTION 'RPY_PROGRAM_UPDATE'
|
CALL FUNCTION 'RPY_PROGRAM_UPDATE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
program_name = ls_progdir-name
|
program_name = ls_progdir-name
|
||||||
|
save_inactive = 'I'
|
||||||
TABLES
|
TABLES
|
||||||
source_extended = it_source
|
source_extended = it_source
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
|
@ -2310,6 +2624,7 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
program_name = ls_progdir-name
|
program_name = ls_progdir-name
|
||||||
program_type = ls_progdir-subc
|
program_type = ls_progdir-subc
|
||||||
title_string = 'todo'
|
title_string = 'todo'
|
||||||
|
save_inactive = 'I'
|
||||||
TABLES
|
TABLES
|
||||||
source_extended = it_source
|
source_extended = it_source
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
|
@ -2322,8 +2637,15 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
_raise 'PROG, error inserting'.
|
_raise 'PROG, error inserting'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
SELECT SINGLE * FROM progdir INTO ls_progdir_new
|
CALL FUNCTION 'READ_PROGDIR'
|
||||||
WHERE name = ls_progdir-name AND state = 'A'.
|
EXPORTING
|
||||||
|
i_progname = ls_progdir-name
|
||||||
|
i_state = 'I'
|
||||||
|
IMPORTING
|
||||||
|
e_progdir = ls_progdir_new
|
||||||
|
EXCEPTIONS
|
||||||
|
not_exists = 1
|
||||||
|
OTHERS = 2.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
_raise 'not found in PROGDIR'.
|
_raise 'not found in PROGDIR'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -2344,16 +2666,18 @@ CLASS lcl_serialize_prog IMPLEMENTATION.
|
||||||
_raise 'PROG, error inserting'.
|
_raise 'PROG, error inserting'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
COMMIT WORK.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
activation_add( iv_type = 'REPS'
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_serialize~deserialize
|
ENDMETHOD. "lif_serialize~deserialize
|
||||||
|
|
||||||
METHOD exists.
|
METHOD exists.
|
||||||
|
|
||||||
DATA: lv_progname TYPE reposrc-progname.
|
DATA: lv_progname TYPE reposrc-progname.
|
||||||
|
|
||||||
|
* function group SEUEXIST
|
||||||
SELECT SINGLE progname FROM reposrc INTO lv_progname
|
SELECT SINGLE progname FROM reposrc INTO lv_progname
|
||||||
WHERE progname = iv_obj_name. "#EC WARNOK
|
WHERE progname = iv_obj_name. "#EC WARNOK
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
|
@ -2393,6 +2717,8 @@ CLASS lcl_serialize DEFINITION FINAL.
|
||||||
RETURNING value(rv_match) TYPE abap_bool
|
RETURNING value(rv_match) TYPE abap_bool
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS activate RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "lcl_serialize DEFINITION
|
ENDCLASS. "lcl_serialize DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -2495,30 +2821,28 @@ CLASS lcl_serialize IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD deserialize.
|
METHOD deserialize.
|
||||||
|
|
||||||
DATA: lv_pre TYPE tadir-obj_name,
|
DATA: ls_item TYPE st_item,
|
||||||
lv_type TYPE string,
|
lt_results TYPE tt_results.
|
||||||
ls_item TYPE st_item,
|
|
||||||
lv_ext TYPE string.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_file> LIKE LINE OF it_files.
|
FIELD-SYMBOLS: <ls_result> LIKE LINE OF lt_results.
|
||||||
|
|
||||||
|
|
||||||
* todo, sort objects when activating? DOMA first, DTEL, etc.
|
CLEAR lcl_serialize_common=>gt_ddic[].
|
||||||
LOOP AT it_files ASSIGNING <ls_file>.
|
CLEAR lcl_serialize_common=>gt_ddic[].
|
||||||
SPLIT <ls_file>-filename AT '.' INTO lv_pre lv_type lv_ext.
|
|
||||||
TRANSLATE lv_pre TO UPPER CASE.
|
|
||||||
TRANSLATE lv_type TO UPPER CASE.
|
|
||||||
|
|
||||||
IF lv_ext <> 'xml'.
|
|
||||||
CONTINUE. " current loop
|
lt_results = status( it_files ).
|
||||||
ENDIF.
|
DELETE lt_results WHERE match = abap_true.
|
||||||
|
SORT lt_results BY obj_type ASCENDING obj_name ASCENDING.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM lt_results COMPARING obj_type obj_name.
|
||||||
|
|
||||||
|
LOOP AT lt_results ASSIGNING <ls_result>.
|
||||||
|
|
||||||
CLEAR ls_item.
|
CLEAR ls_item.
|
||||||
ls_item-obj_type = lv_type.
|
ls_item-obj_type = <ls_result>-obj_type.
|
||||||
ls_item-obj_name = lv_pre.
|
ls_item-obj_name = <ls_result>-obj_name.
|
||||||
|
|
||||||
* todo, dont deserialize if it already matches
|
CASE ls_item-obj_type.
|
||||||
CASE lv_type.
|
|
||||||
WHEN 'PROG'.
|
WHEN 'PROG'.
|
||||||
lcl_serialize_prog=>deserialize( is_item = ls_item
|
lcl_serialize_prog=>deserialize( is_item = ls_item
|
||||||
it_files = it_files ).
|
it_files = it_files ).
|
||||||
|
@ -2548,8 +2872,52 @@ CLASS lcl_serialize IMPLEMENTATION.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
activate( ).
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
METHOD activate.
|
||||||
|
|
||||||
|
* ddic
|
||||||
|
IF NOT lcl_serialize_common=>gt_ddic[] IS INITIAL.
|
||||||
|
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||||
|
EXPORTING
|
||||||
|
activate_ddic_objects = abap_true
|
||||||
|
with_popup = abap_true
|
||||||
|
TABLES
|
||||||
|
objects = lcl_serialize_common=>gt_ddic
|
||||||
|
EXCEPTIONS
|
||||||
|
excecution_error = 1
|
||||||
|
cancelled = 2
|
||||||
|
insert_into_corr_error = 3
|
||||||
|
execution_error = 4
|
||||||
|
OTHERS = 5.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from RS_WORKING_OBJECTS_ACTIVATE'.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
* programs
|
||||||
|
IF NOT lcl_serialize_common=>gt_programs[] IS INITIAL.
|
||||||
|
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||||
|
EXPORTING
|
||||||
|
activate_ddic_objects = abap_false
|
||||||
|
with_popup = abap_true
|
||||||
|
TABLES
|
||||||
|
objects = lcl_serialize_common=>gt_programs
|
||||||
|
EXCEPTIONS
|
||||||
|
excecution_error = 1
|
||||||
|
cancelled = 2
|
||||||
|
insert_into_corr_error = 3
|
||||||
|
execution_error = 4
|
||||||
|
OTHERS = 5.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from RS_WORKING_OBJECTS_ACTIVATE'.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD. "activate
|
||||||
|
|
||||||
METHOD compare_files.
|
METHOD compare_files.
|
||||||
|
|
||||||
READ TABLE it_repo WITH KEY path = is_gen-path
|
READ TABLE it_repo WITH KEY path = is_gen-path
|
||||||
|
@ -4631,7 +4999,7 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
END-OF-DEFINITION.
|
END-OF-DEFINITION.
|
||||||
|
|
||||||
|
|
||||||
* todo, by package
|
* todo, by package, fm TADIR_GET
|
||||||
* todo, by transport
|
* todo, by transport
|
||||||
|
|
||||||
_add 'PROG Program'.
|
_add 'PROG Program'.
|
||||||
|
@ -4806,6 +5174,9 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
METHOD render.
|
METHOD render.
|
||||||
|
|
||||||
DATA: lt_repos TYPE tt_repos_sha1,
|
DATA: lt_repos TYPE tt_repos_sha1,
|
||||||
|
lv_text TYPE c LENGTH 100,
|
||||||
|
lv_pct TYPE i,
|
||||||
|
lv_f TYPE f,
|
||||||
ls_repo LIKE LINE OF lt_repos.
|
ls_repo LIKE LINE OF lt_repos.
|
||||||
|
|
||||||
|
|
||||||
|
@ -4832,6 +5203,14 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
rv_html = rv_html && '<br><br><br>'.
|
rv_html = rv_html && '<br><br><br>'.
|
||||||
|
|
||||||
LOOP AT lt_repos INTO ls_repo.
|
LOOP AT lt_repos INTO ls_repo.
|
||||||
|
lv_f = ( sy-tabix / lines( lt_repos ) ) * 100.
|
||||||
|
lv_pct = lv_f.
|
||||||
|
lv_text = lcl_url=>name( ls_repo-url ).
|
||||||
|
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
||||||
|
EXPORTING
|
||||||
|
percentage = lv_pct
|
||||||
|
text = lv_text.
|
||||||
|
|
||||||
rv_html = rv_html && render_repo( ls_repo ).
|
rv_html = rv_html && render_repo( ls_repo ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user