In 10 Tagen einmal um die SAP-ERP-Welt - Tag 2

Dieser Artikel bietet einen Überblick über die jeweiligen Hierarchien des SAP-ERP-Systems und legt dar, welche Tabellen bei Bedarf mindestens einzubeziehen sind.

Die Hierarchien des SAP-ERP-Systems lassen sich gleichermaßen ordentlich strukturieren wie die Bewegungs- und Stammdaten, welche in den vorherigen Artikeln ansatzweise beschrieben wurden. Hinsichtlich der Hierarchien ist aber zu beachten, dass diese in unterschiedlicher Art und Weise definiert werden.

Zum Beispiel können die erforderlichen Tabellen für die Hierarchien des SAP-ERP-Systems folgendermaßen fürs Erste hinreichend gegliedert werden:

ModulTabelleBeschreibung
SETSETCLSSetklassen
SETHEADERSetkopf und Setverzeichnis
SETNODEUntergeordnete Sets in Sets
SETLEAFWerte in Sets
TKCHTKCHVSAP-EIS: Hierarchievarianten
TKCHHSAP-EIS: Hierarchie-Header
TKCHNSAP-EIS: Hierarchieknoten
TKCHWSAP-EIS: Hierarchiedaten
T011T011Bilanz/GuV-Strukturen
FAGL_011PCBil/GuV-Struktur: Positionen der Bil/GuV-Struktur
FAGL_011SCBil/GuV-Struktur: Zuordnung Bil/GuV-Pos. – Setname
FAGL_011ZCBil/GuV-Struktur: Zuordnung Bil/GuV-Pos. Hauptbuchkonten
FAGL_011FCBil/GuV-Struktur: Zuordnung Bil/GuV-Pos. – Funktionsbereiche
FAGL_011VCBil/GuV-Struktur: Saldowechselpositionen
STPOSTKOStücklistenkopf
STPOStücklistenposition
MASTVerbindung Material – Stückliste
T179T179Materialien: Produkthierarchien
KNVHKNVHKundenhierarchien
LFMHLFMHLieferantenhierarchie
PRHIPRHIProjektstrukturplan, Kanten (Hierarchieanzeiger)

Innerhalb der SET-Tabellen werden unter anderem Gruppierungen für folgende Stammdaten definiert:

  • Kostenstellen (SETCLASS = 0101)
  • Kostenarten (SETCLASS = 0102)
  • Innenaufträge (SETCLASS = 0103)
  • Statistische Kennzahlen (SETCLASS = 0104)
  • Leistungsarten (SETCLASS = 0105)
  • Profitcenter (SETCLASS = 0106)
  • Kostenträger (SETCLASS = 0108)
  • Sachkonten (SETCLASS = 0109)
  • Funktionsbereiche (SETCLASS = 0112)
  • Konsolidierungseinheiten (SETCLASS = 0301)
  • Konsolidierungspositionen (SETCLASS = 0302)
  • Konsolidierungsunterpositionen (SETCLASS = 0303)

Im Rahmen einer SQL-Datenbank lohnt sich meistens der Einsatz einer übergeordneten Archiv-Tabelle für Hierarchien, welche die einzelnen Hierarchiedefinitionen einheitlich und kompakt zusammenführt.
Als Beispiel dient folgender Datensatzaufbau:

CREATE TABLE [dbo].[T_ARCHIVE_HIERARCHY](

    [Client] [nvarchar](3) NOT NULL,

    [HierarchyType] [nvarchar](4) NOT NULL,

    [HierarchyDomain] [nvarchar](12) NOT NULL,

    [HierarchyName] [nvarchar](50) NOT NULL,

    [ParentLevel] [nvarchar](2) NOT NULL,

    [ParentName] [nvarchar](50) NOT NULL,

    [ParentType] [nvarchar](1) NOT NULL,

    [ParentLine] [nvarchar](10) NOT NULL,

    [ChildName] [nvarchar](50) NOT NULL,

    [ChildType] [nvarchar](4) NOT NULL,

    [ChildOrder] [nvarchar](5) NOT NULL,

    [LevelOrder] [nvarchar](100) NULL,

    [Level00] [nvarchar](50) NULL,

    [Level01] [nvarchar](50) NULL,

    [Level02] [nvarchar](50) NULL,

    [Level03] [nvarchar](50) NULL,

    [Level04] [nvarchar](50) NULL,

    [Level05] [nvarchar](50) NULL,

    [Level06] [nvarchar](50) NULL,

    [Level07] [nvarchar](50) NULL,

    [Level08] [nvarchar](50) NULL,

    [Level09] [nvarchar](50) NULL,

    [Level10] [nvarchar](50) NULL,

    [Level11] [nvarchar](50) NULL,

    [Level12] [nvarchar](50) NULL,

    [Level13] [nvarchar](50) NULL,

    [Level14] [nvarchar](50) NULL,

    [Level15] [nvarchar](50) NULL,

    [Level16] [nvarchar](50) NULL,

    [Level17] [nvarchar](50) NULL,

    [Level18] [nvarchar](50) NULL,

    [Level19] [nvarchar](50) NULL,

 CONSTRAINT [PK_T_ARCHIVE_HIERARCHY] PRIMARY KEY CLUSTERED

(

    [Client] ASC,

    [HierarchyType] ASC,

    [HierarchyDomain] ASC,

    [HierarchyName] ASC,

    [ParentLevel] ASC,

    [ParentName] ASC,

    [ParentType] ASC,

    [ParentLine] ASC,

    [ChildName] ASC,

    [ChildType] ASC,

    [ChildOrder] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

Innerhalb dieser SQL-Tabelle können die Hierarchiedefinitionen gleichzeitig in zweifacher Form gespeichert werden:

  • zeilenweise mit Parent-Child-Beziehungen und
  • spaltenweise mit festen Ebenenzuordnungen.

Über den ChildType kann hierbei differenziert werden nach

  • Stammdateneinträgen sowie
  • End- und Zwischenknoten.

Die dazugehörigen Texte der Hierarchieelemente sollten ebenfalls zentral aus den jeweiligen Text- bzw. Stammtabellen gespeichert werden. Als Beispiel dient folgender Datensatzaufbau:

CREATE TABLE [dbo].[T_ARCHIVE_HIERARCHY_TEXT](

    [Client] [nvarchar](3) NOT NULL,

    [HierarchyType] [nvarchar](4) NOT NULL,

    [HierarchyDomain] [nvarchar](12) NOT NULL,

    [MemberName] [nvarchar](50) NOT NULL,

    [MemberType] [nvarchar](4) NULL,

    [MemberTextDE] [nvarchar](50) NULL,

    [MemberTextEN] [nvarchar](50) NULL,

    [MemberTextES] [nvarchar](50) NULL,

    [MemberTextFR] [nvarchar](50) NULL,

    [MemberTextIT] [nvarchar](50) NULL,

 CONSTRAINT [PK_T_ARCHIVE_HIERARCHY_TEXT] PRIMARY KEY CLUSTERED

(

    [Client] ASC,

    [HierarchyType] ASC,

    [HierarchyDomain] ASC,

    [MemberName] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

Für die Befüllung dieser beiden Archiv-Tabellen gibt es grundlegende SQL-Prozeduren.

Fazit

Wenn die definierten Hierarchien in dieser gespeicherten Form vorliegen, können diese genauso leicht wie die Texttabellen mit den entsprechenden Stammdaten verknüpft werden. Und es gilt die Anmerkung: ohne eine strukturierte Zusammenführung der einzelnen Hierarchiedefinitionen ist eine richtige Verknüpfung mit den jeweiligen Stammdaten in vielen Fällen nur äußerst mühselig möglich.

Wir hoffen, dass die formulierten Ansatzpunkte als Hilfestellung dienen und etwas Licht in das Dickicht der SAP-Tabellen bringen.

Der nächste Artikel wird ein mehrstufiges Schichten-Modell für den SAP-Datenfluss innerhalb von MS-SQL/AS-Datenbanken thematisieren und allgemeingültige Begriffe darlegen, welche in der SAP-Welt eine zentrale Bedeutung haben.

Wie immer wünschen wir viel Spaß bei der Arbeit und frohes Gelingen.