From 93c8a7a0aebe8c72199e55c1696c6508743f3ade Mon Sep 17 00:00:00 2001 From: larshp Date: Thu, 25 Feb 2016 07:07:09 +0000 Subject: [PATCH] display XML version mismatch error --- zabapgit.prog.abap | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index 1ee18577a..092a49993 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -1131,6 +1131,9 @@ CLASS lcl_xml DEFINITION FINAL CREATE PUBLIC. METHODS special_names CHANGING cv_name TYPE string. + METHODS display_xml_error + RAISING lcx_exception. + METHODS error IMPORTING ii_parser TYPE REF TO if_ixml_parser RAISING lcx_exception. @@ -1336,8 +1339,11 @@ CLASS lcl_xml IMPLEMENTATION. METHOD constructor. + CONSTANTS: c_abapgit_tag TYPE string VALUE 'abapGit'. + DATA: li_stream_factory TYPE REF TO if_ixml_stream_factory, li_istream TYPE REF TO if_ixml_istream, + li_version TYPE REF TO if_ixml_node, li_parser TYPE REF TO if_ixml_parser. @@ -1357,14 +1363,37 @@ CLASS lcl_xml IMPLEMENTATION. li_istream->close( ). - mi_root = mi_xml_doc->find_from_name( depth = 0 name = 'abapGit' ). + mi_root = mi_xml_doc->find_from_name( depth = 0 name = c_abapgit_tag ). + + li_version = mi_root->if_ixml_node~get_attributes( )->get_named_item_ns( 'version' ). + IF li_version->get_value( ) <> gc_xml_version. + display_xml_error( ). + ENDIF. ELSEIF iv_empty = abap_false. - mi_root = mi_xml_doc->create_element( 'abapGit' ). + mi_root = mi_xml_doc->create_element( c_abapgit_tag ). mi_root->set_attribute( name = 'version' value = gc_xml_version ). "#EC NOTEXT mi_xml_doc->append_child( mi_root ). ENDIF. ENDMETHOD. "xml_root + METHOD display_xml_error. + + DATA: lv_version TYPE string. + + + lv_version = |abapGit version: { gc_abap_version }|. + + CALL FUNCTION 'POPUP_TO_INFORM' + EXPORTING + titel = 'abapGit XML version mismatch' + txt1 = 'abapGit XML version mismatch' + txt2 = 'See https://github.com/larshp/abapGit/wiki/XML-Mismatch' + txt3 = lv_version. "#EC NOTEXT + + _raise 'XML error'. + + ENDMETHOD. + METHOD table_add. DATA: lv_name TYPE string,