Xtract IS Report Nachbearbeitung im SSIS Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Xtract IS Report Postprocessing in SSIS


Die Komponente XTractIS Report bietet die Möglichkeit, bestehende ABAP-Reports als Datenquelle nutzen zu können. Jedoch kommt es vor, dass Reports Gruppierungsinformationen oder andere störende Zwischenzeilen in der Ausgabe erzeugen (wie z.B. auch diverse Trennzeichen oder Spaltenbezeichnungen mitten im Report). Dieser Artikel zeigt, wie mit einem einfachen Script diese datenlosen Zeilen Eliminiert werden können, und wie Informationen, die eigentlich in einem Gruppierungskopf stehen, auf die die einzelnen Zeilen heruntergebrochen werden können.

Das folgende Beispiel extrahiert Daten aus dem Report RFITEMAP. Der Report RFITEMAP - Kreditoren Einzelpostenliste - gruppiert den Report auf den einzelnen Kreditor und wird mit der Transaktion FBL1N aufgerufen.

Nach der Auswahl der Komponente und einfügen in den Datenflusstask springen wir mit einem Doppelklick auf die Komponente in den Editor ab. Es wird eine Variante angewendet, um den Datenbestand für dieses Beispiel überschaubar zu halten.

Um nun fortfahren zu können, muss der Report mindestens einmal mit dem Preview-Button ausgeführt werden. Im jungfräulichen Zustand wird der Report von der Komponente so betrachtet, als hätte er nur eine Spalte. Um weitere Spalten einzufügen, klicken wir mit der Maus an die entsprechende Stelle, an die eine neue Spalte soll. In der Tabelle oben rechts kann dann die Breite der Spalte und der Name definiert werden. Das folgende Bild zeigt den Report nach der Überarbeitung. Nun kann der Report mit den definierten Spalten in den Datenfluss eingebaut werden.


Thumb


Als nächstes fügen wir die Script Komponente in den Datenflusstask ein. Mit einem Doppelklick auf die Komponente gelangen wir in den Script Transformation Editor. In diesem legen wir unter Inputs and Outputs mit Add Column eine neue Output Spalte mit dem Namen "Kreditor" an. Unter den Common Properties der Output Pipeline ändern wir den Wert der Exclusion Group von 0 auf 1.

Image:ScriptTransformation.jpg


Im unteren Bereich des Script Screens befindet sich der Button "Design Script...". Mit diesem gelangen wir in den Visual Basic Editor. In diesem pflegen wir folgende Zeilen ein.

[VB]

Public Class ScriptMain
    Inherits UserComponent
 
    Dim Kreditor As Integer
 
 
    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
 
        Dim retValue As Integer
 
        'Wenn der Datensatz in der Spalte Status einen Hinweis auf einen 
        'Gruppenkopf mit der Kreditoreninformationen(in diesem Fall das Wort "Kredito)
        'enthält, wird der Wert des selbigen Datensatzes der Spalte Zahldatum in der 
        'Variable Kreditor abgelegt. Dort befinden Sie sich bei einem 
        'Gruppenkopf die Kreditoren Informationen.
 
        If Row.Status.ToString().Trim().Contains("Kredito") Then
 
            If Integer.TryParse(Row.ZahlDatum.ToString(), retValue) = True Then
                Kreditor = CInt(Row.ZahlDatum.ToString().Trim())
            End If
 
        End If
 
        'Der Kreditor wird in die Outputspalte geschrieben
        Row.Kreditor = Kreditor
 
        'Datensatz wird in den Output versendet wenn in der Spalte Netto ein Integer Wert enthalten ist. 
        'Diese Spalte dient uns als Indikator für einen relevanten Datensatz.
        If Int32.TryParse(Row.Netto.ToString(), retValue) = True Then Row.DirectRowToOutput0()
 
    End Sub


Dadurch bekommen wir im Standard Output nur die Datensätze mit gefilterten Positionsdaten und in der Spalte Kreditor den jeweiligen Kreditor der Gruppierung und können diese im Datenfluss weiter verwenden.


Thumb

DeutschEnglish
Personal tools
Xtract PPS