Ansicht
Dokumentation

EXIT_SAPLRSTH_002 -

EXIT_SAPLRSTH_002 -

ROGBILLS - Synchronize billing plans   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

SAP-Erweiterung: BRSTEX01, Funktionsexit EXIT_SAPLRSTH_002

Eigendefinierte Hierarchien

1. Anwendungsgebiet des Funktionsexit EXIT_SAPLRSTH_002 im LIS

Im Logistik-Informationssystem kann innerhalb der Standardanalyse ein Hierarchieaufriß nach den von SAP vordefinierten Hierarchien (z.B. Lieferantenklasse oder Produktgruppe) durchgeführt werden.

Darüberhinaus besteht die Möglichkeit, (zu einzelnen Merkmalen einer Info-Struktur) kundenspezifische Hierarchien, sogenannte Allgemeine Hierarchien, anzulegen. (Menüpfad: Logistik -> Logistik-Controlling -> z.B. Einkaufsinfosystem -> Umfeld -> Allg. Hierarchie -> Anlegen.) In der Standardanalyse ist dann auch ein Aufriß nach diesen Hierarchien möglich.

Mit Hilfe der Allgemeinen Hierarchie können zum Beispiel für das Merkmal "Material" beliebige Hierarchien angelegt werden. Hierbei muß jede Materialnummer, die in der Hierarchie enthalten sein soll, fest einem Hierarchieknoten zugeordnet werden.

Mit dem vorliegenden Funktionsexit können ebenfalls kundenspezifische Hierarchien aufgebaut werden. Im Unterschied zu den Allgemeinen Hierarchien müssen aber die einzelnen Merkmalswerte (wie z.B. Materialnummer) den Hierarchieknoten nicht fest zugeordnet werden. Die Zugehörigkeit zu den jeweiligen Hierarchieknoten kann durch eine nahezu beliebige ABAP/4-Routine berechnet werden. (Die Hierarchie kann also über einen Algorithmus definiert sein.) Die Hierarchie wird mit Hilfe dieser ABAP/4-Routine innerhalb des vorliegenden Funktionsexits dynamisch, d.h. erst zur Laufzeit aus den von der Standardanalyse selektierten Merkmalswerten aufgebaut.

Mit dem vorliegenden Funktionsexit ist es beispielsweise möglich, eine Hierarchie für das Merkmal MATNR (Material) zu definieren, wobei die Zugehörigkeit zu den einzelnen Hierarchieknoten dynamisch aus der Materialnummer abgeleitet werden kann. Dies ist zum Beispiel dann denkbar, wenn die Materialnummer eine Schlüsselung enthält, an der die Hierarchie ausgerichtet ist, d.h. wenn aus der Materialnummer ableitbar ist, zu welchem Hierarchieknoten das jeweilige Material gehört.

2. Parameter

Import-Parameter:

  • I_RSTHVKEY,,: Name der ausgewählten Hierarchie
  • I_RSTHIE,,,,: Über diese Tabelle übergibt die Standardanalyse die von ihr selektierten Merkmalswerte an den Funktionsexit.
  • I_SEL,,,,: Objekte des aktuellen Aufrißpfades. Beispiel: Wurde der Lieferant L1 (Datenelement in der Info-Struktur = LIFNR) nach Material M2 (Datenelement = MATNR) aufgerissen, so enthält I_SEL die folgenden Zeichen: #LIFNR#L1#MATNR#M2
Die in der Variable I_SEL gespeicherte Zeichenkette kann durch die folgenden APAP/4-Anweisungen "entpackt" werden:
DATA: BEGIN OF ITAB OCCURS 10,
FIELD(30),
END OF ITAB.
SPLIT I_SEL AT '#' INTO TABLE ITAB.
Anschließend steht jeder von '#' begrenzte Teil der Zeichenkette I_SEL in einer eigenen Zeile der Tabelle ITAB.

Export-Parameter:

  • I_RSTHIE,,,,: Über diese Tabelle übergibt der Funktionsexit den Hierarchiebaum an die Standardanalyse. I_RSTHIE ist somit Import als aus Export-Parameter.
  • I_RSTTYP,,,,: Tabelle mit Informationen zu den Hierarchieknoten. (Der Inhalt von I_RSTTYP wird weiter unten detailliert erläutert.)

Alle anderen Parameter des Funktionsexits werden nicht benötigt.

3. Vorgehen

3.1 Bekanntmachen der Hierarchie gegenüber der Standardanalyse

Zuerst muß die Hierarchie definiert werden. Dies erfolgt durch Pflege des Views VTRSTHVMCS im Customizing oder über die Transaktion SM30. Hierbei ist entweder das Datenelement oder die Domäne des Merkmals einzutragen, für das ein Hierarchieaufriß ermöglicht werden soll. Es ust also genau eines der Felder "Datenelement" oder "Domäne" zu pflegen, wobei folgendes zu beachten ist:

Wird das Feld "Datenelement" gefüllt, so ist der Hierarchieaufriß in allen Info-Strukturen möglich, die ein Merkmal enthalten, das auf dieses Datenelement verweist.

Wird das Feld "Domäne" gefüllt, ist der Hierarchieaufriß in allen Info-Strukturen möglich, die ein Merkmal enthalten, dessen Datenelement die angegebene Domäne hat.

3.2 Übergabe der Daten von der Standardanalyse an den Funktionsexit

Wählt der Benutzer in der Standardanalyse beim "Hierarchieaufriß" eine kundendefinierte Hierarchie aus, so übergibt die Standardanalyse alle selektierten Merkmalswerte in der Tabelle I_RSTHIE an den vorliegenden Funktionsexit. Der Funktionsexit baut aus diesen Merkmalswerten die gewünschte Hierarchie auf, um sie dann der Standardanalyse zurückzugeben.

Die weitere Vorgehensweise verdeutlicht das folgende Beispiel:

4. Beispiel: Hierarchie "Materialgruppe"

4.1 Beschreibung

Im weiteren wird von der nachfolgend abgebildeten Hierarchie ausgegangen, die die Materialien M1, M2, ... , M8 und die beiden Hierarchieebenen "Materialhauptgruppe" (Main Group) und "Materialgruppe" (Group) enthält. Die Materialien M7 und M8 sind keinem Hierarchieknoten zugeordnet.

                   Main Group 1         Main Group 2
                      /     \                 !
                     /       \                !
                Group 1.1   Group 1.2      Group 2.1
                    !        /  \          /  !  \
                    !       /    \        /   !   \
                   M1      M2    M3     M4   M5    M6     M7    M8

Falls die Standardanalyse die Materialien M1, M3, M4, M5, M6, M7, M8 selektiert hat, werden diese sechs Materialien dem Funktionsexit über die Tabelle I_RSTHIE übergeben, wobei nur das Feld NAME gefüllt ist.

        Tabelle I_RSTHIE:      ID  TYPE  NAME
                                         M1
                                         M4
                                         M5
                                         M6
                                         M7
                                         M8

Aus diesen Eingabedaten und der Hierarchiedefinition muß der Funktionsexit den folgenden Baum ableiten:

                                 ~ROOT
                               /   !   \
                            /      !      \
                         /         !         \
              Main Group 1   Main Group 2   ~NON_HIER
                     /             !          !   !
                    /              !          !   !
                Group 1.1       Group 2.1     !   !
                   !           /   !  \       !   !
                   !          /    !   \      !   !
                  M1        M4    M5   M6     M7  M8

Ein Hierarchiebaum muß immer den künstlichen Wurzelknoten ~ROOT besitzen, dem alle darunterliegenden Teilbäume zugeordnet sind und zwar auch dann, wenn es nur einen Teilbaum gibt.

Sofern es Materialien gibt, die keinem Hierarchieknoten zugeordnet sind (wie oben M7 und M8), kann man für sie den künstlichen Knoten ~NON_HIER einrichten, sofern diese Materialien in der Standardanalyse sichtbar sein sollen.

4.2 Output des Funktionsexits (im vorliegenden Beispiel)

4.2.1 Tablle I_RSTHIE:

Der Funktionsexit muß folgende Felder der Tabelle I_RSTHIE füllen:

  • I_RSTHIE-TYPE : Knotentyp (z.B. 'M' für Material, 'G' für Gruppe)
  • I_RSTHIE-NAME : Schlüssel des Knotens (z.B. 'M1', 'Group 1')
  • I_RSTHIE-LEVEL : Ebene des Knotens im Baum

Der Hierarchiebaum muß links-rekursiv in die interne Tabelle I_RSTHIE übertragen werden. Die Tabelle muß also folgenden Inhalt haben:

             TYPE    NAME         TLEVEL
             ROOT    ~ROOT        1
             MG      MainGroup 1  2
             G       Group 1.1    3
             M       M1           4
             MG      MainGroup 2  2
             G       Group 2.1    3
             M       M4           4
             M       M5           4
             M       M6           4
             NONH    ~NON_HIER    2
             M       M7           3
             M       M8           3

Die vordefinierten Namen (ROOT, ~ROOT, NONH und ~NON_HIER) müssen über die zugehörigen Konstanten angesprochen werden, die im Include LRSTHTP1 definiert sind. Dadurch lassen sich auch Tipfehler mit nachhaltiger Wirkung vermeiden.

4.2.2 Tablle I_RSTTYP:

Die Tabelle I_RSTTYP beschreibt die Ebenen der Hierarchie, die in der Tabelle I_RSTHIE enthalten ist. Das Feld TYPE beschreibt den Typ, ROLNM das Datenelement und DOMN die Domäne der jeweiligen Hierarchieebene. Das Feld TDOMNM definiert die technische Domäne, aus der in der Standardanalyse die Texte für die Hierarchieknoten ermittelt werden.

Für das vorliegende Beispiel sieht die Tabelle I_RSTTYP z.B. wie folgt aus:

           TYPE   ROLNM    DOMNM    TDOMNM    HPOST
           MG     MGroup   MGroup   MGroup
           G      ZGroup   ZGroup   ZGroup
           M      MATNR    MATNR    MATNR     X

Das Feld I_RSTTYP-HPOST enthält den Wert X, wenn der zugehörige Knotentyp Werte in der Info-Struktur enthält. Normalerweise trifft dies nur für die Blätter des Baumes zu. Das folgende Beispiel verdeutlicht jedoch einen Fall, bei dem auch ein Hierarchieknoten mit 'X' markiert werden muß. Es handelt sich hierbei um eine Kundenhierarchie mit den Kunden K1, K2, K3 und K4 (vgl. die nachfolgende Abbildung).

                        K1
                     /  !  \
                   K2  K3  K4

In dieser Hierarchie können auch Hierachieknoten (wie z.B. K1) Werte in der zugrundeliegenden Info-Struktur besitzen. Es handelt sich deshalb um eine sogenannte "bebuchbare" Hierarchie.

Hat z.B. die Kennzahl "Umsatz" bei K1 den Wert 40 DM, bei K2 10 DM, bei K3 20 DM und bei K4 30 DM, so würde die Standardanalyse bei K1 einen Umsatz von 100 DM ausweisen, da es sich um eine bebuchbare Hierarchie handelt. Bei der Summierung einer Kennzahl werden also nicht nur die Werte der jeweils direkt abhängigen Knoten, sondern zusätzlich auch der Kennzahlenwert des Hierarchieknoten selbst mit aufsummiert. Aus diesem Grund empfiehlt es sich, die obige Hierarchie wie folgt aufzubauen:

                       K1
                    / / \ \
                   /  !  !  \
                 K1  K2  K3  K4.

Hat die Hierarchie diesen Aufbau, so erscheinen die Kunden K1 bis K4 nachdem auf der übergeordneten Aufrißliste der Kunde K1 aufgerissen wurde. Damit wären in der Aufrißliste auch alle Merkmale (Kunden) zu sehen, deren Kennzahlwerte für die übergeordnete Ebene aufsummiert wurden.

Die Tabelle I_RSTHIE hätte in diesem Fall den folgenden Inhalt:

                    TYPE    NAME        TLEVEL
                    ROOT    ~ROOT       1
                    MC      K1          2
                    C       K1          3
                    C       K2          3
                    C       K3          3
                    C       K4          3

5. Mehrfachzuordnungen (Links)

5.1 Mehrfachzuordnungen von Blättern

Wenn ein Blatt (z.B. eine Materialnummer) mehreren Hierarchieknoten (z.B. Materialgruppen) zugeordnet werden soll, ist dieses Blatt mehrfach in die interne Tabelle I_RSTHIE einzutragen.

5.2 Mehrfachzuordnungen von Hierarchieknoten

Wenn ein Hierarchieknoten (z.B. Materialgruppe) mehreren übergeordneten Hierarchieknoten (z.B. Materialhauptgruppen) zugeordnet werden soll, kann dies über sogenannte Links realisiert werden. Beim vorliegenden Funktionsexit sind solche Links mit Hilfe von zusätzlichen Hierarchieknoten einzubauen. In der folgenden Abbildung ist der Hierarchieknoten 4 den übergeordneten Knoten 1 und 2 zugeordnet. Aufzulösen ist diese Mehrfachzuordnung über einen zusätzlichen Knoten 4, der auf den eigentlichen Knoten 4 verweist. Beim zusätzlichen Knoten ist das Feld LINK auf 'X' zu setzen. (vgl. den folgenden Aufbau der Tabelle I_RSTHIE

            ~ROOT                               ~ROOT
           /     \                            /      \
          /       \                          /         \
         1         2        ==>            1            2
       /   \     /  \                     /  \         /  \
      /     \  /     \                   /    \       /     \
     3       4        5                 3      4<----4       5
     !      / \       !                 !     / \            !
     M1    M2 M3      M4               M1    M2 M3           M4

Tabelle I_RSTHIE:                     TYPE   NAME     TLEVEL  LINK
                                      ROOT   ~ROOT    1
                                      A      1        2
                                      B      3        3
                                      M      M1       4
                                      B      4        3
                                      M      M2       4
                                      M      M3       4
                                      A      2        2
                                      B      4        3       X
                                      B      5        3
                                      M      M4       4






General Material Data   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 28914 Date: 20240601 Time: 095925     sap01-206 ( 224 ms )