mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
serialize transaction, close #23
This commit is contained in:
parent
31acd45c11
commit
c97a980ee7
183
zabapgit.abap
183
zabapgit.abap
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
||||||
* See https://github.com/larshp/abapGit/
|
* See https://github.com/larshp/abapGit/
|
||||||
|
|
||||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v0.2-alpha', "#EC NOTEXT
|
CONSTANTS: gc_xml_version TYPE string VALUE 'v0.2-alpha', "#EC NOTEXT
|
||||||
gc_abap_version TYPE string VALUE 'v0.4'. "#EC NOTEXT
|
gc_abap_version TYPE string VALUE 'v0.5'. "#EC NOTEXT
|
||||||
|
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
|
@ -3055,6 +3055,180 @@ CLASS lcl_serialize_shlp IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_serialize_shlp IMPLEMENTATION
|
ENDCLASS. "lcl_serialize_shlp IMPLEMENTATION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_TRAN DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_tran DEFINITION INHERITING FROM lcl_serialize_common FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: serialize IMPORTING is_item TYPE st_item
|
||||||
|
RETURNING value(rt_files) TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: deserialize IMPORTING is_item TYPE st_item
|
||||||
|
it_files TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: delete IMPORTING is_item TYPE st_item
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_TRAN DEFINITION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_msag IMPLEMENTATION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_tran IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD delete.
|
||||||
|
|
||||||
|
DATA: lv_transaction TYPE tstc-tcode.
|
||||||
|
|
||||||
|
|
||||||
|
lv_transaction = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'RPY_TRANSACTION_DELETE'
|
||||||
|
EXPORTING
|
||||||
|
transaction = lv_transaction
|
||||||
|
EXCEPTIONS
|
||||||
|
not_excecuted = 1
|
||||||
|
object_not_found = 2
|
||||||
|
OTHERS = 3.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'Error from RPY_TRANSACTION_DELETE'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD. "delete
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
CONSTANTS: lc_hex_tra TYPE x VALUE '00',
|
||||||
|
* c_hex_men TYPE x VALUE '01',
|
||||||
|
lc_hex_par TYPE x VALUE '02',
|
||||||
|
lc_hex_rep TYPE x VALUE '80'.
|
||||||
|
* c_hex_rpv TYPE x VALUE '10',
|
||||||
|
* c_hex_obj TYPE x VALUE '08',
|
||||||
|
* c_hex_chk TYPE x VALUE '04',
|
||||||
|
* c_hex_enq TYPE x VALUE '20'.
|
||||||
|
|
||||||
|
DATA: lv_dynpro TYPE d020s-dnum,
|
||||||
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_tstc TYPE tstc,
|
||||||
|
lv_type TYPE rglif-docutype,
|
||||||
|
ls_tstct TYPE tstct,
|
||||||
|
ls_tstcc TYPE tstcc.
|
||||||
|
|
||||||
|
|
||||||
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
it_files = it_files ).
|
||||||
|
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_tstc ).
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_tstcc ).
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_tstct ).
|
||||||
|
|
||||||
|
lv_dynpro = ls_tstc-dypno.
|
||||||
|
|
||||||
|
CASE ls_tstc-cinfo.
|
||||||
|
WHEN lc_hex_tra.
|
||||||
|
lv_type = ststc_c_type_dialog.
|
||||||
|
WHEN lc_hex_rep.
|
||||||
|
lv_type = ststc_c_type_report.
|
||||||
|
WHEN lc_hex_par.
|
||||||
|
lv_type = ststc_c_type_parameters.
|
||||||
|
* todo, or ststc_c_type_variant?
|
||||||
|
WHEN OTHERS.
|
||||||
|
_raise 'Transaction, unknown CINFO'.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
CALL FUNCTION 'RPY_TRANSACTION_INSERT'
|
||||||
|
EXPORTING
|
||||||
|
transaction = ls_tstc-tcode
|
||||||
|
program = ls_tstc-pgmna
|
||||||
|
dynpro = lv_dynpro
|
||||||
|
language = 'E'
|
||||||
|
development_class = ''
|
||||||
|
transaction_type = lv_type
|
||||||
|
shorttext = ls_tstct-ttext
|
||||||
|
html_enabled = ls_tstcc-s_webgui
|
||||||
|
java_enabled = ls_tstcc-s_platin
|
||||||
|
wingui_enabled = ls_tstcc-s_win32
|
||||||
|
EXCEPTIONS
|
||||||
|
cancelled = 1
|
||||||
|
already_exist = 2
|
||||||
|
permission_error = 3
|
||||||
|
name_not_allowed = 4
|
||||||
|
name_conflict = 5
|
||||||
|
illegal_type = 6
|
||||||
|
object_inconsistent = 7
|
||||||
|
db_access_error = 8
|
||||||
|
OTHERS = 9.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'Error from RPY_TRANSACTION_INSERT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
METHOD serialize.
|
||||||
|
|
||||||
|
DATA: lv_transaction TYPE tstc-tcode,
|
||||||
|
lt_tcodes TYPE TABLE OF tstc,
|
||||||
|
ls_tcode TYPE tstc,
|
||||||
|
ls_tstct TYPE tstct,
|
||||||
|
lt_gui_attr TYPE TABLE OF tstcc,
|
||||||
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_file TYPE st_file,
|
||||||
|
ls_gui_attr TYPE tstcc.
|
||||||
|
|
||||||
|
|
||||||
|
lv_transaction = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'RPY_TRANSACTION_READ'
|
||||||
|
EXPORTING
|
||||||
|
transaction = lv_transaction
|
||||||
|
TABLES
|
||||||
|
tcodes = lt_tcodes
|
||||||
|
gui_attributes = lt_gui_attr
|
||||||
|
EXCEPTIONS
|
||||||
|
permission_error = 1
|
||||||
|
cancelled = 2
|
||||||
|
not_found = 3
|
||||||
|
object_not_found = 4
|
||||||
|
OTHERS = 5.
|
||||||
|
IF sy-subrc = 4.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'Error from RPY_TRANSACTION_READ'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
SELECT SINGLE * FROM tstct INTO ls_tstct
|
||||||
|
WHERE sprsl = 'E'
|
||||||
|
AND tcode = lv_transaction.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'Transaction description not found'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE lt_tcodes INDEX 1 INTO ls_tcode.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
READ TABLE lt_gui_attr INDEX 1 INTO ls_gui_attr.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->structure_add( ls_tcode ).
|
||||||
|
lo_xml->structure_add( ls_gui_attr ).
|
||||||
|
lo_xml->structure_add( ls_tstct ).
|
||||||
|
|
||||||
|
ls_file = xml_to_file( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_msag IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_serialize_msag DEFINITION
|
* CLASS lcl_serialize_msag DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -6715,8 +6889,8 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
_add 'ENQU Lock Object'.
|
_add 'ENQU Lock Object'.
|
||||||
_add 'SSFO Smart Form'.
|
_add 'SSFO Smart Form'.
|
||||||
_add 'MSAG Message Class'.
|
_add 'MSAG Message Class'.
|
||||||
|
_add 'TRAN Transaction'.
|
||||||
_add 'FUGR Function Group (todo)'.
|
_add 'FUGR Function Group (todo)'.
|
||||||
_add 'TRAN Transaction (todo)'.
|
|
||||||
_add 'FORM SAP Script (todo)'.
|
_add 'FORM SAP Script (todo)'.
|
||||||
*table contents
|
*table contents
|
||||||
*lock object
|
*lock object
|
||||||
|
@ -7173,6 +7347,11 @@ FORM run.
|
||||||
DATA: lx_exception TYPE REF TO lcx_exception.
|
DATA: lx_exception TYPE REF TO lcx_exception.
|
||||||
|
|
||||||
|
|
||||||
|
IF sy-langu <> 'E'.
|
||||||
|
WRITE: / 'Use English as logon language'. "#EC NOTEXT
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
lcl_gui=>run( ).
|
lcl_gui=>run( ).
|
||||||
CATCH lcx_exception INTO lx_exception.
|
CATCH lcx_exception INTO lx_exception.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user