Show TOC

Transformation für eine Hierarchie anlegenLocate this document in the navigation structure

Verwendung

Sie können Hierarchien flexibel mit Hilfe von Transformationen laden. Die Funktionen der Transformation stehen Ihnen auch für Hierarchien uneingeschränkt zur Verfügung. Jedes Feld der Hierarchiestruktur kann transformiert werden, sowohl die normalen InfoObjects als auch die speziellen InfoObjects der Hierarchien (wie z.B. NODEID). Es ist möglich, aus allen Quellen Hierarchien zu laden. Sie können Hierarchien auch aus DataStore-Objekten oder InfoCubes laden, die Daten müssen dann evtl. mit Hilfe einer Routine (Start-, End- oder Expertenroutine) in die entsprechende Form gebracht werden.

In der Regel werden beim flexiblen Laden die Hierarchien in mehreren Segmenten geladen. Es kann jedoch auch nötig sein, die Hierarchie unsegmentiert zu laden. Dazu können Sie in der Transformation die Option Hierarchie (ein Segment) wählen. Dies ist z.B. nötig beim Fortschreiben von Hierarchien in eine Open Hub Destination. Die Hierarchie liegt dann in einem Format vor, das dem einer flachen Datei ähnlich ist und kann über die Open Hub Destination in weitere Systeme geladen werden.

Besonderheiten in der Transformation von Hierarchien:

  • Zielsegment für Leveltexte:

    Es gibt ein Zielsegment für Leveltexte. Damit können Sie Texte für Hierarchielevel erzeugen oder ändern. Ein Segment für Leveltexte ist in Hierarchie-DataSources nicht vorhanden. Daher ist kein normales Mapping möglich, die Felder werden nicht gefüllt oder müssen durch eine Routine (Start-, End- oder Expertenroutine) gefüllt werden.

  • Wir empfehlen, bei der Zuordnung der Felder im Hierarchiekopf das InfoObject 0H_NORESTNO (Nur zugeordnete Knoten anzeigen) durch eine Konstante auf 'X' zu setzen. Dies bewirkt, dass die nicht zugeordneten Knoten (Attributswerte, die in der Attributstabelle des InfoObjects vorkommen, aber nicht direkt in der Hierachie) nicht in der Hierarchie-SID-Tabelle gespeichert werden und auch nicht zur Laufzeit in den Speicher geladen werden müssen. Dies kann zu einer erheblichen Performance-Verbesserung führen.

  • Abhängigkeiten zur Transfermethode:

    Je nachdem, ob die DataSource über die Transfermethode PSA oder über IDoc lädt, sieht die Quellstruktur in der Transformation anders aus. In beiden Fällen ist das Laden über das PSA möglich, so dass Transformation und DTP genutzt werden können, es gibt allerdings folgende Unterschiede in der Hierarchiestruktur:

    • IDoc-Format:

      Dieses Format wird für viele SAP-Standardhierarchie-DataSources aus SAP-Systemen verwendet. Zudem wird dieses Format in vielen Fällen auch für Dateien und BAPI-DataSources verwendet.

      Hinweis

      BW 3.x-Extraktoren müssen zunächst in die neue DataSource migriert werden. Dabei wird ein PSA mit IDoc-Format generiert. Erst damit können Sie diese 3.x-Hierarchien über den DTP mit Transformation laden.

      Das Knotensegment enthält die Felder IOBJNM und NODENAME. In dem Feld IOBJNM wird der Name eines InfoObjects angegeben, z.B. 0MATERIAL. Dieses Feld sollte in das InfoObject 0H_IOBJNM der Zielhierarchiestruktur abgebildet werden. Gegebenenfalls müssen Sie den Namen anpassen, wenn keine Content-InfoObjects benutzt werden z.B. auf ZCOSTCENTER (beispielsweise durch eine Routine oder Formel). Das Feld NODENAME enthält den Wert des angegeben InfoObjects, dieser Wert muss auf das Ziel-InfoObject in der Hierarchiestruktur übertragen werden z.B. ZCOSTCENTER. Da NODENAME die Werte aller InfoObjects enthält, kann in der Regel ein einfaches 1:1-Mapping auf die Ziel-InfoObjects durchgeführt werden. Das funktioniert nur dann nicht, wenn die Klammerungslänge im Quellsystem und im Zielsystem unterschiedlich sind, dann müssen Sie eine Routine anlegen.

      Wählen Sie ansonsten als Regeltyp Hierarchie-Split, bei nicht geklammerten Merkmalen können Sie auch den Regeltyp Direkte Zuweisung verwenden.

      Intervalle im IDOC-Format: Das Intervallsegment im IDoc-Format ist zu dem Intervallsegment der Zielstruktur nicht kompatibel. Deshalb müssen Sie eine Startroutine anlegen, die den Von-Wert des Intervalles in das Knotenstruktursegment schreibt. Der entsprechende Aufruf dieser Funktion ist per Voreinstellung als Kommentar in einer neu angelegten Startroutine hinterlegt . Sie müssen lediglich die Kommentarzeichen entfernen und gegebenenfalls das richtige Quellfeld des Hierarchiebasismerkmals eintragen. Im Intervallsegment ordnen Sie das LEAFTO-Feld den entsprechenden Ziel-InfoObjects zu. Beachten Sie: das Feld LEAFFROM darf nicht verwendet werden.

    • PSA-Format:

      Die Hierarchiequellstruktur enthält das FIELDNM, das angibt, in welchem Feld der Struktur der Wert des Knotens für diese Zeile steht, z.B. MATNR. Dementsprechend gibt es weitere Felder in der Hierarchiestruktur, in denen die Werte übertragen werden. Das Feld wird in der Transformation dem entsprechenden InfoObject in der Zielstruktur zugeordnet. Das Feld FIELDNM müssen Sie dem InfoObject OH_IOBJNM in der Zielstruktur zuordnen, unter Verwendung des Regeltyps Hierarchieableitung.

      Hinweis

      Das Feld NODENAME enthält im Unterschied zum IDoc-Format nur die Werte der Textknoten und muss nur dem Ziel-InfoObject 0H_HIERNODE zugeordnet werden.

  • Ableitung von InfoObject-Namen:

    Das InfoObject 0H_IOBJNM (Merkmale für Hierarchien) ist dafür da, aus den zugeordneten Feldnamen die InfoObject-Namen abzuleiten. Dazu ordnen Sie dem Feld FIELDNM (Feldname) das InfoObject 0H_IOBJNM zu. In den Regeldetails wählen Sie den Regeltyp Hierarchie Merkmal herleiten. Zur Laufzeit wird nun im Feld 0H_IOBJNM automatisch das InfoObject eingetragen, das dem entsprechenden Feldnamen zugeordnet ist, der in FIELDNM zur Laufzeit steht.

  • Aufspaltung des Knotennamens (Hierachie-Split):

    Der Regeltyp Hiearchie-Split wird verwendet, wenn das Feld NODENAME aus Hierarchiestrukturen im IDoc-Format den Ziel-InfoObjects der Hierarchie zugewiesen wird. Das Feld NODENMAME muss dem Basismerkmal und den externen Merkmalen der Hierarchie zugewiesen werden. Als Regeltyp im Regeldetail-Dialog der Transformation wird nun der Regeltyp Hierarchie-Split verwendet. Der Wert im Feld 0H_IOBJNM der Zielhierarchiestruktur muss den Namen des Knoten-InfoObjects enthalten. Der Hierarchie-Split entnimmt dem Feld NODENAME zur Laufzeit den relevanten Teil des Wertes in die entsprechenden Klammerungskomponenten des Ziel-InfoObjects.

    Beispiel

    Im Beispiel sei 0H_IOBJNM = 0COSTCENTER, NODENAME = 44442222222222. Das Merkmal 0COSTCENTER (Länge 10) ist an 0COSTAREA (Länge 4) geklammert, demenstprechend sind beide InfoObjects in der Zielstruktur vorhanden und NODENAME ist beiden InfoObjects unter Verwendung des Regeltyps Hierarchie-Split zugeordnet. Zur Laufzeit entnimmt der Hierarchie-Split aus NODENAME die entsprechenden Klammerungskomponenten und schreibt Sie in die Merkmale fort, so dass sich für die Zielstruktur ergibt: 0COSTCENTER = 2222222222 und 0COSTAREA = 4444.

    Hinweis

    Der Hierarchie-Split orientiert sich an den Klammerungsinformationen des Ziel-InfoObjects, dementsprechend kann der Regeltyp nicht verwendet werden, wenn die Längen der Ziel-InfoObjects nicht den Längen der zusammengesetzten Werte in NODENAME entsprechen.

  • Objektidentifikation:

    Das InfoObject 0OBJECTID (Objektidentifikation in Segmente) wird verwendet, wenn mehrere Hierarchien in einem Request geladen werden. Dies ist für normale DataSources nicht relevant, da normalerweise immer nur eine Hierarchie pro Request geliefert wird.

Prozess
  1. In der Data Warehousing Workbench wählen Sie unter Modellierung den InfoProvider-Baum.

  2. Navigieren Sie zu Ihrem Merkmal. Wählen Sie im Kontextmenü an der Hierarchie des Merkmals Transformation anlegen.

  3. Wählen Sie die entsprechende Quelle für Ihre Transformation aus und wählen Sie Transformation anlegen. Das System schlägt Ihnen eine Transformation vor, die Sie so übernehmen können oder Ihren Anforderungen entsprechend anpassen können.

  4. In der Pflege der Transformation können Sie über Quellsegmente auswählen Quellsegmente und Zielsegmente auswählen Zielsegmente das entsprechende Segment auswählen, für das Sie die Transformation anlegen möchten. Sie müssen mindestens eine Transformation für den Hierarchiekopf und eine für die Hierarchieknoten anlegen. In den Drop-Down-Listen der Auswählschalter für die Segmente sind die Segmente in der passenden Reihenfolge für Quelle und Ziel angeordnet.

  5. Gehen Sie weiter vor wie in der allgemeinen Vorgehensweise zum Anlegen von Transformationen beschrieben.

    Weitere Informationen: Transformation anlegen