Anwendungsbeispiel Klassenattribut
Siehe Kategorie: ABAP OO.
Hier ein sinnvolles Beispiel für ein Klassenattribut, wie es in einem Projekt genutzt wurde.
Selektion Daten
In einer Methode GET_HEADERTEXTE werden aus einer Tabelle DD04T u. a. die Feldlängen zu einer Reihe von Datenelementen in eine itab LT_TEXTE geschrieben.
DATA: lt_texte TYPE TABLE OF dd04t.
lv_spras = sy-langu.
SELECT *
into TABLE lt_texte
FROM dd04t
WHERE ( rollname = 'AUFTYP' OR "Auftragstyp
rollname = 'CRMT_ORDER_NO' OR "Auftrags-ID
...
rollname = 'CRMT_ISA_AUC_QUOTE_TYPE' ) "Angebotsart
AND ddlanguage = lv_spras.
Schreiben interne Tabelle in Klassenattribut
Diese Tabelle wird nun als Instanzattribut "GT_TEXTE" in die Klasse geschrieben.
me->gt_texte = lt_texte.
Definition Klassenattribut in Klasse
Das Klassenattribut GT_TEXTE wird unter dem Reiter "Attribute" mit der Sichtbarkeit "Private" (da es nur innerhalb der Klasse gelesen wird) definiert.
Lesen Klassenattribut in Methode
In der Methode FILL_HEADERTEXT wird das Klassenattribut GT_TEXTE gelesen. Aus dem Importparameter IV_ROLLNAME und dem Klassenattribut GT_TEXTE wird nun die Feldlänge mittlerer Länge zurückgegeben in den Returningparameter RV_SCRTEXT_M.
Das Klassenattribut kann hier ausgelesen werden mit dem Befehl
me->gt_texte
Aufruf private Methode FILL_HEADERTEXT
Die Methode FILL_HEADERTEXT wird nun aufgerufen mit den jeweiligen Datenelementen, z. B. "AUFTYP". Da in der Methode FILL_HEADERTEXT die Texte aus dem Klassenattribut GT_TEXTE gelesen werden, muss hier nicht die Tabelle übergeben werden.
CALL METHOD me->FILL_HEADERTEXT
EXPORTING
IV_ROLLNAME = 'AUFTYP'
RECEIVING
RV_SCRTEXT_M = es_forms_headertext-text_auftyp.
CALL METHOD me->FILL_HEADERTEXT
EXPORTING
IV_ROLLNAME = 'CRMT_ORDER_NO'
RECEIVING
RV_SCRTEXT_M = es_forms_headertext-text_aufid.
...

