Preparations to advance #268

Adding messageclass to enable multilingual exceptions and messages and better cross-referencing.
Enhancing ZCX_EXCEL to have a substitute for non-classbased "message .... raising"
and to enable unittests that are independant of logonlanguage when checking exceptions raised this way.

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@427 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Stefan Schmöcker 2013-08-10 21:32:38 +00:00
parent 5035be62e6
commit 44fa9a6558
2 changed files with 59 additions and 47 deletions

View File

@ -1,32 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<CLAS CLSNAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" UUID="DFA646E0B030A0F1B39A000C29B7D360" CATEGORY="40" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="CX_STATIC_CHECK">
<publicSection>class ZCX_EXCEL definition
public
inheriting from CX_STATIC_CHECK
final
create public .
*&quot;* public components of class ZCX_EXCEL
*&quot;* do not include other source files here!!!
public section.
constants ZCX_EXCEL type SOTR_CONC value &apos;E21BC660E7235AF1B7380050568C0F65&apos;. &quot;#EC NOTEXT
data ERROR type STRING .
methods CONSTRUCTOR
importing
!TEXTID like TEXTID optional
!PREVIOUS like PREVIOUS optional
!ERROR type STRING optional .
methods IF_MESSAGE~GET_TEXT
redefinition .</publicSection>
<protectedSection>*&quot;* protected components of class ZCX_EXCEL
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
<privateSection>*&quot;* private components of class ZCX_EXCEL
*&quot;* do not include other source files here!!!
private section.</privateSection>
<CLAS CLSNAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" CATEGORY="40" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="CX_STATIC_CHECK">
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
@ -36,39 +9,59 @@ private section.</privateSection>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="ERROR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="ZCX_EXCEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;E21BC660E7235AF1B7380050568C0F65&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SOTR_CONC" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " LOCKED="X" TYPESRC_LENG="0 ">
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="SYST_AT_RAISE" VERSION="1" LANGU="E" DESCRIPT="ABAP System Fields" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SYST" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="ZCX_EXCEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SOTR_CONC" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " LOCKED="X" TYPESRC_LENG="0 ">
<sotr PAKET="$TMP" CREA_LAN="E" TRALA_TYPE="1" LST_IMPORT="00000000" TRALA_VEC="00000000000000000000" CATGY_VEC="00000000000000000000" OBJID_VEC="08000000000000000000">
<sotrText LANGU="E" LFD_NUM="0001" FLAG_CNTXT="X" STATUS="R" VERSION="0002" LENGTH="255" TEXT="&amp;ERROR&amp;"/>
</sotr>
</attribute>
<inheritance CLSNAME="ZCX_EXCEL" REFCLSNAME="CX_STATIC_CHECK" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCX_EXCEL" REFCLSNAME="CX_STATIC_CHECK" VERSION="1" MTDNAME="IF_MESSAGE~GET_LONGTEXT"/>
<redefinition CLSNAME="ZCX_EXCEL" REFCLSNAME="CX_STATIC_CHECK" VERSION="1" MTDNAME="IF_MESSAGE~GET_TEXT"/>
</inheritance>
<interfaceMethod CLSNAME="ZCX_EXCEL" CPDNAME="IF_MESSAGE~GET_LONGTEXT">
<source>METHOD if_message~get_longtext.
IF me-&gt;error IS NOT INITIAL
OR me-&gt;syst_at_raise IS NOT INITIAL.
*--------------------------------------------------------------------*
* If message was supplied explicitly use this as longtext as well
*--------------------------------------------------------------------*
result = me-&gt;get_text( ).
ELSE.
*--------------------------------------------------------------------*
* otherwise use standard method to derive text
*--------------------------------------------------------------------*
super-&gt;if_message~get_longtext( EXPORTING
preserve_newlines = preserve_newlines
RECEIVING
result = result ).
ENDIF.
ENDMETHOD.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCX_EXCEL" CPDNAME="IF_MESSAGE~GET_TEXT">
<source>METHOD if_message~get_text.
IF me-&gt;ERROR IS NOT INITIAL.
result = me-&gt;ERROR .
IF me-&gt;error IS NOT INITIAL.
*--------------------------------------------------------------------*
* If message was supplied explicitly use this
*--------------------------------------------------------------------*
result = me-&gt;error .
ELSEIF me-&gt;syst_at_raise IS NOT INITIAL.
*--------------------------------------------------------------------*
* If message was supplied by syst create messagetext now
*--------------------------------------------------------------------*
MESSAGE ID syst_at_raise-msgid TYPE syst_at_raise-msgty NUMBER syst_at_raise-msgno
WITH syst_at_raise-msgv1 syst_at_raise-msgv2 syst_at_raise-msgv3 syst_at_raise-msgv4
INTO result.
ELSE.
*--------------------------------------------------------------------*
* otherwise use standard method to derive text
*--------------------------------------------------------------------*
CALL METHOD super-&gt;if_message~get_text
RECEIVING
result = result.
ENDIF.
ENDMETHOD.</source>
</interfaceMethod>
<method CLSNAME="ZCX_EXCEL" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" LOCKED="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCX_EXCEL" CMPNAME="CONSTRUCTOR" SCONAME="TEXTID" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="0" TYPE="TEXTID" PAROPTIONL="X"/>
<parameter CLSNAME="ZCX_EXCEL" CMPNAME="CONSTRUCTOR" SCONAME="PREVIOUS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="2" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="0" TYPE="PREVIOUS" PAROPTIONL="X"/>
<parameter CLSNAME="ZCX_EXCEL" CMPNAME="CONSTRUCTOR" SCONAME="ERROR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="2" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<source>method CONSTRUCTOR.
CALL METHOD SUPER-&gt;CONSTRUCTOR
EXPORTING
TEXTID = TEXTID
PREVIOUS = PREVIOUS
.
IF textid IS INITIAL.
me-&gt;textid = ZCX_EXCEL .
ENDIF.
me-&gt;ERROR = ERROR .
endmethod.</source>
</method>
</CLAS>

19
ZA2X/MSAG/ZABAP2XLSX.slnk Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<MSAG ARBGB="ZABAP2XLSX" MASTERLANG="E" RESPUSER="X0009004" STEXT="Messages for ABAP2XLSX">
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="000" TEXT="&amp; &amp; &amp; &amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="001" TEXT="&amp;&amp;&amp;&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="002" TEXT="&amp; &amp; &amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="003" TEXT="&amp;&amp;&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="004" TEXT="&amp; &amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="005" TEXT="&amp;&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="006" TEXT="&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="010" TEXT="--- 000-009: Various Generic messages"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="011" TEXT="--- 010-049: Descriptions where to put messages"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="012" TEXT="--- 050-"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="013" TEXT="--- 200- : Messages when reading an EXCEL-File"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="014" TEXT="--- 400- : Messages when creating an EXCEL-File"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="015" TEXT="--- 600- : Message when ????"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="016" TEXT="--- 800- : Other messages"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="800" TEXT="Unable to interpret input as column"/>
<t100t SPRSL="E" ARBGB="ZABAP2XLSX" STEXT="Messages for ABAP2XLSX"/>
</MSAG>