Bei der Erstellung von Report Painter bzw. Report-Writer-Berichten wird eine sog. Berichtstabelle verwendet, die je nach Arbeitsgebiet variiert. Häufig verwendete Berichtstabellen sind bspw.:
- CCSS - Gemeinkostencontrolling
- GLPCT - Profitcenter-Rechnung
- RWCOOM - Berichtstabelle Gemeinkostencontrolling (Spez. Auswertungen)
- V_GLFLEXT - Flexibles Hauptbuch
In diesen Tabellen bzw. Strukturen sind von SAP vordefinierte Merkmale und Basiskennzahlen enthalten, die aber bei Bedarf erweitert werden können. Hierzu sind ein gewisses Verständnis der zugrundeliegenden Datenstrukturen sowie ABAP/4-Programmierkenntnisse erforderlich.
Die Definition der Berichtstabellen sowie der entsprechenden Datenversorungsroutinen sind in den Tabellen T804* hinterlegt, die Pflege erfolgt über die Transaktion GRCT.
Es werden die ausgelieferten Berichtstabellen angezeigt. Im Detailbild der ersten Pflegeebene ist u.a. eine sog. Zusatzstruktur angegeben, in der wiederum ein Customer-Include enthalten ist, in dem bei Bedarf eigene Felder hinzugefügt werden können.
Folgendes Beispiel soll dies veranschaulichen:
In der Berichtstabelle CCSS soll das Merkmal "Kostenstellenverantwortlicher" eingefügt werden. Das Feld ist im Kostenstellenstamm enthalten (CSKS-VERAK) und wird bei der Datenselektion des Berichts aus dem Kostenstellenstammsatz nachgelesen.
Feld in Zusatzstruktur ergänzen
Zur Berichtstabelle CCSS ist die Zusatzstruktur CCR1S zugeordnet. In ihr ist der Customer-Include CI_CC1S enthalten. In diesen fügen wir unser neues Feld hinzu (SE11). Dies sollte idealerweise im Kundennamensraum erfolgen, da ja nicht auszuschließen ist, dass SAP in kommenden Releases die Berichtstabellen um neue Felder erweitert. Für das Beispiel verwenden wir ZZ_VERAK des Typs VERAK.
Füllroutine implementieren und zuweisen
Die Füllroutine wird in dem zur Berichtstabelle zugeordneten Formpool hinterlegt.
Zur Tabelle CCSS ist dies SAPFK21R. Dieses Programm enthält bereits Includes für kundeneigene Routinen (u.a. FK21REZZ). Da es sich trotzdem um einen Teil des SAP-Standard handelt, muss das kundeneigene Coding entweder im Rahmen eines Enhancements implementiert werden oder man benötigt den entsprechenden SSCR-Schlüssel für das Objekt und verwendet den Modifikationsassistenten.
Die Füllroutine wird unter "spezielle Merkmale" dem System bekannt gemacht.
Die Füllroutinen haben folgende Übergabeparameter:
--> TAB | Aktuelle Tabelle aus der gelesen wird |
--> DEF_FLD | Wert des bestimmendes Feld (optional) |
--> CNV_FLD1 | Wert des 1. Konvertierungsparameters (optional) |
--> CNV_FLD2 | Wert des 2. Konvertierungsparameters (optional) |
--> CNV_FLD3 | Wert des 3. Konvertierungsparameters (optional) |
<-- FLD | Wert des zu füllenden Feldes |
Beispiel-Coding für Füllroutine
FORM Z21_FILL_VERAK USING TABLE LIKE T804E-TAB
KOKRS LIKE CCR1S-KOKRS
VERAK LIKE CCR1S-ZZ_VERAK.
DATA: L_KOSTL LIKE CSKS-KOSTL.
CASE TABLE.
WHEN 'COSP'.
IF COSP-OBJNR(2) = 'KS'. L_KOSTL = COSP-OBJNR+6(10). ENDIF.
WHEN 'COSS'.
IF COSS-OBJNR(2) = 'KS'. L_KOSTL = COSS-OBJNR+6(10). ENDIF.
WHEN 'COEP'.
IF COEP-OBJNR(2) = 'KS'. L_KOSTL = COEP-OBJNR+6(10). ENDIF.
WHEN 'COEJ'.
IF COEJ-OBJNR(2) = 'KS'. L_KOSTL = COEJ-OBJNR+6(10). ENDIF.
WHEN OTHERS.
CLEAR L_KOSTL.
EXIT.
ENDCASE.
Check l_kostl ne space.
Select single verak from csks into verak
Where kokrs = kokrs
And kostl = l_kostl
And datbi >= O_SEL_DATE. ”BerichtsVARIABLE
If sy-subrc ne 0.
Clear verak.
Endif.
ENDFORM.
Im Ergebnis steht nun das Merkmal "Kostenstellenverantwortlicher" wie gewohnt im Kontext des CO-Reportings zur Verfügung und kann nun im Report Painter bzw. Report Writer Umfeld verwendet werden.