mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
IATU support, close #83
This commit is contained in:
parent
764b06c2f2
commit
7be61c535e
264
zabapgit.abap
264
zabapgit.abap
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
|||
* See https://github.com/larshp/abapGit/
|
||||
|
||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v0.2-alpha', "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v0.103'. "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v0.104'. "#EC NOTEXT
|
||||
|
||||
********************************************************************************
|
||||
* The MIT License (MIT)
|
||||
|
@ -2298,6 +2298,12 @@ CLASS lcl_objects_files DEFINITION FINAL.
|
|||
METHODS:
|
||||
constructor
|
||||
IMPORTING is_item TYPE ty_item,
|
||||
add_html
|
||||
IMPORTING iv_html TYPE string
|
||||
RAISING lcx_exception,
|
||||
read_html
|
||||
RETURNING VALUE(rv_html) TYPE string
|
||||
RAISING lcx_exception,
|
||||
add_xml
|
||||
IMPORTING iv_extra TYPE clike OPTIONAL
|
||||
io_xml TYPE REF TO lcl_xml
|
||||
|
@ -2353,6 +2359,24 @@ CLASS lcl_objects_files IMPLEMENTATION.
|
|||
mt_files = it_files.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_html.
|
||||
|
||||
DATA: lv_filename TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_html> LIKE LINE OF mt_files.
|
||||
|
||||
|
||||
lv_filename = filename( 'html' ). "#EC NOTEXT
|
||||
|
||||
READ TABLE mt_files ASSIGNING <ls_html> WITH KEY filename = lv_filename.
|
||||
IF sy-subrc <> 0.
|
||||
_raise 'html not found'.
|
||||
ENDIF.
|
||||
|
||||
rv_html = lcl_convert=>xstring_to_string_utf8( <ls_html>-data ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_abap.
|
||||
|
||||
DATA: lv_filename TYPE string,
|
||||
|
@ -2396,6 +2420,19 @@ CLASS lcl_objects_files IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "abap_to_file
|
||||
|
||||
METHOD add_html.
|
||||
|
||||
DATA: ls_file TYPE ty_file.
|
||||
|
||||
|
||||
ls_file-path = '/'.
|
||||
ls_file-filename = filename( 'html' ). "#EC NOTEXT
|
||||
ls_file-data = lcl_convert=>string_to_xstring_utf8( iv_html ).
|
||||
|
||||
APPEND ls_file TO mt_files.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add_xml.
|
||||
|
||||
DATA: lv_xml TYPE string,
|
||||
|
@ -3037,8 +3074,7 @@ CLASS lcl_object_acid IMPLEMENTATION.
|
|||
METHOD lif_object~serialize.
|
||||
|
||||
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||
lv_description TYPE aab_id_descript,
|
||||
lo_aab TYPE REF TO cl_aab_id.
|
||||
lv_description TYPE aab_id_descript.
|
||||
|
||||
|
||||
IF lif_object~exists( ) = abap_false.
|
||||
|
@ -3723,6 +3759,202 @@ CLASS lcl_object_iasp IMPLEMENTATION.
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_object_iatu DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_object_iatu DEFINITION INHERITING FROM lcl_objects_super FINAL.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES lif_object.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS:
|
||||
read
|
||||
EXPORTING es_attr TYPE w3tempattr
|
||||
ev_source TYPE string
|
||||
RAISING lcx_exception,
|
||||
save
|
||||
IMPORTING is_attr TYPE w3tempattr
|
||||
iv_source TYPE string
|
||||
RAISING lcx_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_object_iatu IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_object_iatu IMPLEMENTATION.
|
||||
|
||||
METHOD read.
|
||||
|
||||
DATA: li_template TYPE REF TO if_w3_api_template,
|
||||
lt_source TYPE w3htmltabtype,
|
||||
ls_name TYPE iacikeyt.
|
||||
|
||||
|
||||
ls_name = ms_item-obj_name.
|
||||
|
||||
cl_w3_api_template=>if_w3_api_template~load(
|
||||
EXPORTING
|
||||
p_template_name = ls_name
|
||||
IMPORTING
|
||||
p_template = li_template
|
||||
EXCEPTIONS
|
||||
object_not_existing = 1
|
||||
permission_failure = 2
|
||||
error_occured = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc <> 0.
|
||||
_raise 'error from w3api_template~load'.
|
||||
ENDIF.
|
||||
|
||||
li_template->get_attributes( IMPORTING p_attributes = es_attr ).
|
||||
|
||||
CLEAR: es_attr-chname,
|
||||
es_attr-tdate,
|
||||
es_attr-ttime,
|
||||
es_attr-devclass.
|
||||
|
||||
li_template->get_source( IMPORTING p_source = lt_source ).
|
||||
|
||||
CONCATENATE LINES OF lt_source INTO ev_source RESPECTING BLANKS.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_object~serialize.
|
||||
|
||||
DATA: ls_attr TYPE w3tempattr,
|
||||
lv_source TYPE string,
|
||||
lo_xml TYPE REF TO lcl_xml.
|
||||
|
||||
|
||||
IF lif_object~exists( ) = abap_false.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
read( IMPORTING es_attr = ls_attr
|
||||
ev_source = lv_source ).
|
||||
|
||||
CREATE OBJECT lo_xml.
|
||||
lo_xml->structure_add( ls_attr ).
|
||||
mo_files->add_xml( lo_xml ).
|
||||
|
||||
mo_files->add_html( lv_source ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD save.
|
||||
|
||||
DATA: lt_source TYPE w3htmltabtype,
|
||||
lv_source TYPE string,
|
||||
li_template TYPE REF TO if_w3_api_template.
|
||||
|
||||
|
||||
cl_w3_api_template=>if_w3_api_template~create_new(
|
||||
EXPORTING p_template_data = is_attr
|
||||
p_program_name = is_attr-programm
|
||||
IMPORTING p_template = li_template ).
|
||||
|
||||
li_template->set_attributes( is_attr ).
|
||||
|
||||
lv_source = iv_source.
|
||||
WHILE strlen( lv_source ) >= 255.
|
||||
APPEND lv_source(255) TO lt_source.
|
||||
lv_source = lv_source+255.
|
||||
ENDWHILE.
|
||||
IF NOT lv_source IS INITIAL.
|
||||
APPEND lv_source TO lt_source.
|
||||
ENDIF.
|
||||
|
||||
li_template->set_source( lt_source ).
|
||||
|
||||
li_template->if_w3_api_object~save( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_object~deserialize.
|
||||
|
||||
DATA: ls_attr TYPE w3tempattr,
|
||||
lv_source TYPE string,
|
||||
lo_xml TYPE REF TO lcl_xml.
|
||||
|
||||
|
||||
lo_xml = mo_files->read_xml( ).
|
||||
|
||||
lo_xml->structure_read( CHANGING cg_structure = ls_attr ).
|
||||
|
||||
lv_source = mo_files->read_html( ).
|
||||
|
||||
ls_attr-devclass = iv_package.
|
||||
save( is_attr = ls_attr
|
||||
iv_source = lv_source ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_object~delete.
|
||||
|
||||
DATA: li_template TYPE REF TO if_w3_api_template,
|
||||
ls_name TYPE iacikeyt.
|
||||
|
||||
|
||||
ls_name = ms_item-obj_name.
|
||||
|
||||
cl_w3_api_template=>if_w3_api_template~load(
|
||||
EXPORTING
|
||||
p_template_name = ls_name
|
||||
IMPORTING
|
||||
p_template = li_template
|
||||
EXCEPTIONS
|
||||
object_not_existing = 1
|
||||
permission_failure = 2
|
||||
error_occured = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc <> 0.
|
||||
_raise 'error from if_w3_api_template~load'.
|
||||
ENDIF.
|
||||
|
||||
li_template->if_w3_api_object~set_changeable( abap_true ).
|
||||
li_template->if_w3_api_object~delete( ).
|
||||
li_template->if_w3_api_object~save( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
||||
DATA: ls_name TYPE iacikeyt.
|
||||
|
||||
|
||||
ls_name = ms_item-obj_name.
|
||||
|
||||
cl_w3_api_template=>if_w3_api_template~load(
|
||||
EXPORTING
|
||||
p_template_name = ls_name
|
||||
EXCEPTIONS
|
||||
object_not_existing = 1
|
||||
permission_failure = 2
|
||||
error_occured = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc = 1.
|
||||
rv_bool = abap_false.
|
||||
ELSEIF sy-subrc <> 0.
|
||||
_raise 'error from w3_api_template~load'.
|
||||
ELSE.
|
||||
rv_bool = abap_true.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_object~jump.
|
||||
_raise 'todo, IATU, jump'.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_object_dtel DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
|
@ -7564,11 +7796,6 @@ CLASS lcl_object_enho IMPLEMENTATION.
|
|||
|
||||
DATA: lv_enh_id TYPE enhname,
|
||||
lv_tool TYPE enhtooltype,
|
||||
lo_badi_impl TYPE REF TO cl_enh_tool_badi_impl,
|
||||
lv_spot_name TYPE enhspotname,
|
||||
lo_xml TYPE REF TO lcl_xml,
|
||||
lv_shorttext TYPE string,
|
||||
lt_impl TYPE enh_badi_impl_data_it,
|
||||
li_enh_tool TYPE REF TO if_enh_tool.
|
||||
|
||||
|
||||
|
@ -7682,10 +7909,7 @@ CLASS lcl_object_enho IMPLEMENTATION.
|
|||
|
||||
METHOD deserialize_hook.
|
||||
|
||||
|
||||
DATA: lv_tool TYPE enhtooltype,
|
||||
lv_shorttext TYPE string,
|
||||
lo_xml TYPE REF TO lcl_xml,
|
||||
DATA: lv_shorttext TYPE string,
|
||||
lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl,
|
||||
li_tool TYPE REF TO if_enh_tool,
|
||||
lv_enhname TYPE enhname,
|
||||
|
@ -7695,6 +7919,7 @@ CLASS lcl_object_enho IMPLEMENTATION.
|
|||
|
||||
FIELD-SYMBOLS: <ls_enhancement> LIKE LINE OF lt_enhancements.
|
||||
|
||||
|
||||
io_xml->element_read( EXPORTING iv_name = 'SHORTTEXT'
|
||||
CHANGING cg_element = lv_shorttext ).
|
||||
io_xml->structure_read( EXPORTING iv_name = 'ORIGINAL_OBJECT'
|
||||
|
@ -7769,13 +7994,13 @@ CLASS lcl_object_enho IMPLEMENTATION.
|
|||
|
||||
METHOD serialize_hook.
|
||||
|
||||
DATA: lv_tool TYPE enhtooltype,
|
||||
lv_shorttext TYPE string,
|
||||
DATA: lv_shorttext TYPE string,
|
||||
lo_xml TYPE REF TO lcl_xml,
|
||||
lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl,
|
||||
ls_original_object TYPE enh_hook_admin,
|
||||
lt_enhancements TYPE enh_hook_impl_it.
|
||||
|
||||
|
||||
lo_hook_impl ?= ii_enh_tool.
|
||||
|
||||
lv_shorttext = lo_hook_impl->if_enh_object_docu~get_shorttext( ).
|
||||
|
@ -10245,8 +10470,9 @@ CLASS lcl_tadir IMPLEMENTATION.
|
|||
* if abapGit project is installed in package ZZZ, all subpackages should be named
|
||||
* ZZZ_something. This will define the folder name in the zip file to be "something",
|
||||
* similarily with online projects
|
||||
lv_message = 'Unexpected package naming(' && <ls_tdevc>-devclass && ')'.
|
||||
MESSAGE lv_message TYPE 'I' ##NO_TEXT.
|
||||
lv_message = 'Unexpected package naming(' &&
|
||||
<ls_tdevc>-devclass && ')' ##NO_TEXT.
|
||||
MESSAGE lv_message TYPE 'I'.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
|
@ -10676,6 +10902,12 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
|
||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||
CASE <ls_tadir>-object.
|
||||
WHEN 'IATU'.
|
||||
<ls_tadir>-korrnum = '5500'.
|
||||
WHEN 'IARP'.
|
||||
<ls_tadir>-korrnum = '5510'.
|
||||
WHEN 'IASP'.
|
||||
<ls_tadir>-korrnum = '5520'.
|
||||
WHEN 'SUSC'.
|
||||
<ls_tadir>-korrnum = '5000'.
|
||||
WHEN 'TTYP' OR 'TABL' OR 'VIEW'.
|
||||
|
|
Loading…
Reference in New Issue
Block a user