So konfigurieren Sie Talend-SAP-Komponenten: tSAPTableInput für SAP Application Tables

So konfigurieren Sie Talend-SAP-Komponenten: tSAPTableInput für SAP Application Tables

Mit dieser Artikelreihe möchten wir die Talend SAP Schnittstellen vorstellen. Dieser erste Artikel beschäftigt sich mit der Komponente tSAPTableInput, die für die Extraktion von SAP Tabellen bzw. Views entwickelt wurde.

Jede SAP Komponente bietet einen Imort-Dialog, der eine Suche nach dem technischen Namen oder der Beschreibung des zu verwendenden SAP Objekts bietet. Im Fall einer SAP Tabelle oder View wird eine Detail-Sicht mit der Feldstruktur sowie eine Datenvorschau angeboten.  


Figure 1: Importdialog SAP Tabelle, KNA1 Feldstruktur

 

Wenn die Metadaten eine Tabelle bzw. View in das Repository intgriert wurden, kann die Komponente für die Extraktion in einen Datafluss integirert werden. Dort kann eine weitere Konfiguration erfolgen, beispielsweise die zu extrahierenden Felder ausgewählt oder Filter definiert werden.

Die Filter werden als Schlüssel-Wert Paar konfiguriert wobei die Werte von einfachen Anführungzeichen umschlossen werden. Natürlich können die Werte auch von Kontextparametern ausgelesen oder von anderen Komponenten bereitgestellt werden. Mehrere Bedingungen werden über AND/OR miteinander verknüpft. Neben den Standard-Vergleichsoperatoren kann auch das ABAP Äquivalent verwendet werden (also EQ, LT, LE, GT, GE).

Folgende Besonderheiten sollten bei Verwendung dieser Komponente beachtet werden:

1. Die Extraktion kann bei größeren Datenmengen abbrechen

Vorschlag: Partitionieren der Daten mittels der Filterfunktionalität der Komponente tSAPTableInput und dem Einsatz anderer Talend Standard-Komponenten

Der unten dargestellte Datenfluss zeigt das partitionierte Laden von Kundenstammdaten aus der SAP Tabelle KNA1 über die Länderschlüssel definiert in der Tabelle T005. Die Verarbeitung erfolgt in zwei teilen. Zunächst werden die Länderschlüssel aus der Tabelle T005 abgerufen und in einer HashMap gespeichert. In einem Folgeschritt wird über diese Einträge iteriert und über die Filterfunktionalität alle Kunden je Land aus der Tabelle KNA1 abgerufen. Zuletzt wird der Gesamtextrakt in eine Snowflake Tabelle geschrieben.

tSAPTableInput
Figure 2: Batch-Load, KNA1 Beladung nach Länderschlüssel

 

Die Filterbedingung wird dynamisch pro Iteration gesetzt. Der jeweils aktuelle Wert wird von der Komponente tFlowToIterate ausgelesen. Die Konfiguration für tSAPTableInput schaut wie folgt aus:

tSAPTableInput
Figure 3: tSAPTableInput Filterbedingung

Wenn eine SAP Tabelle zuviel Datensätze enthält um diese in einem Abruf zu extrahieren, bietet das zuvor beschriebene Vorgehen eine Möglichkeit die Daten zu verarbeiten. Natürlich funktioniert dies auch mit Bewegungsdaten. Ein Teil dieser Daten ist Kopf- und Positionstabelle organisiert. Beinhaltet die Kopftabelle Erstellungs- und Änderungsdatum kann daraus u.U. ein Delta abgeleitet werden.

Abbildung 4 zeigt einen Ansatz für die Deltabeladung von Fakturen

tSAPTableInput

Figure 4: Konzept zum Abrufen von Delta-Datensätzen, Transaktionsdaten - Rechnungsposten

tSAPTableInput

2. Einige Werte in einer Tabelle werden anders gespeichert als sie in einem Frontend wie in der SAP GUI angezeigt werden. Dies wird durch sogenannte Conversion-Exits während der Ausführungszeit gesteuert. Dieses Verhalten wird wichtig, wenn Tabellen mit währungsrelevanten Beträgen extrahiert werden.

Nachfolgend ein Beispiel:

Es wurde ein Finanzbeleg für das führende Ledger erstellt. Zu Demonstrationszwecken wurde die Währung auf Tunesischen Dinar eingestellt. Diese Währung wird mit 3 Dezimalstellen definiert und dementsprechend in der Anwendung angezeigt.

tSAPTableInput
Figure 5: FI-Beleg SAP FB03, Währung TND

 

Auf Tabellenebene werden solche Werte jedoch nur mit zwei Dezimalstellen gespeichert. Im Falle von Währungen mit mehr oder weniger Nachkommastellen muss diese umgerechnet werden, um den korrekten Betrag zu erhalten. Ohne diese Konvertierung sehen extrahierte Werte wie unten gezeigt aus und führen zu falschen Berechnungen.

tSAPTableInput
Figure 6: FI-Dokumentenpositionen mit tSAPTableInput extrahieren, Filte nach Dokument mit TND-Währung

 

Anstatt den Wert nach eigener Logik zu berechnen, wird dringend empfohlen SAP Standard Funktionen für die Konvertierung zu verwenden. Ein möglicher Ansatz besteht darin, den Datenfluss in Dokumenten mit einer Währung mit zwei Dezimalstellen und denjenigen, die konvertiert werden müssen, zu trennen. Für die Konvertierung kann das BAPI Interface verwendet werden. Es erlaubt den Aufruf von SAP Funktionsbausteinen und kann die Werte währungsabhängig in das richtige Format umwandeln

Für die Konvertierung müssen die zu bearbeitenden Finanzbelegpositionen (BSEG) ermittelt werden. Dies geschieht durch eine Suche in den Tabellen BKPF und TCURX. Die Kopftabelle BKPF enthält die Informationen der Belegwährung (Feld WAERS). In TCURX wird die Anzahl der Nachkommastellen pro Währung angegeben. Danach werden alle Belegpositionen mit einer Belegwährung mit mehr oder weniger zwei Dezimalstellen zur Konvertierung übergeben.

Für die Konvertierung wird der Standard Function Module BAPI_CURRENCY_CONV_TO_EXTERNAL verwendet. Da dieser nicht remotefähig ist, fungiert ein benutzerdefiniertes BAPI als Wrapper, um die Werte zu übergeben. Solche Funktionsbausteine ​​können von der Talend-Komponente tSAPBapi verwendet werden, die auch im unten gezeigten Talend-Auftragsablauf verwendet wird.

tSAPTableInput
Figure 7: Talend Job Flow

 

Zu Demonstrationszwecken wird der konvertierte Wert (vom Funktionsbaustein abgerufen) als separates Feld WRBTR_CURR hinzugefügt und zeigt nun den korrekten Betrag an, wie er im SAP GUI Frontend angezeigt wird (siehe Abbildung 8).


Figure 8: Auszug aus der Ergebnisdatei

 

3. Berechtigungen

Sehr häufig besteht die Anforderung, den Zugriff auf Tabellenfelder im Voraus zu beschränken (aufgrund gesetzlicher oder organisatorischer Anforderungen). Das heißt, bevor die Daten von Talend verarbeitet werden. Dies kann einfach realisiert werden, indem benutzerdefinierte Views ohne die Felder erstellt werden, deren Verwendung aus verschiedenen Gründen verboten ist.

Als nächstes wird die dem von Talend verwendeten SAP-Konto zugewiesene Berechtigung auf die Verwendung dieser zulässigen Ansichten beschränkt. Berechtigungsobjekte S_TABU_DIS und S_TABU_NAM ermöglichen eine detaillierte Definition des Zugriffs auf Tabellenebene. Das folgende Beispiel basiert auf der SAP-Anwendungstabelle KNA1 die Kundenstammdaten enthält. Darauf aufbauend wird eine benutzerdefinierte Ansicht ZVKNA1 mit einer Teilmenge der Originalstruktur erstellt.

tSAPTableInput
Figure 9: Benutzerdefinierte SAP-Sicht mit begrenztem Feldsatz. Die Struktur basiert auf der Anwendungstabelle KNA1

 

Die Rolle für das SAP-Konto wird angepasst um den Lesezugriff aus den erstellten benutzerdefinierten Ansichten zu ermöglichen. Zunächst sollte die Ansicht einer Berechtigungsgruppe zugewiesen werden, auf die Talend zugreifen kann (hier ZETL). Anschließend wird diese Gruppe zum Berechtigungsobjekt S_TABU_DIS hinzugefügt, um das Lesen aus der View zu ermöglichen. Darüber hinaus können einige weitere erforderliche Einzelzugriffe mithilfe von S_TABU_NAM verwaltet werden.

tSAPTableInput
Figure 10: Berechtigungssetup für den Zugriff auf die benutzerdefinierte View

Aufgrund des oben beschriebenen Setups ist der Zugriff auf die benutzerdefinierte View zulässig, für die SAP-Anwendungstabelle jedoch verboten. In Talend Studio kann jetzt auf die benutzerdefinierte View ZVKNA1 zugegriffen werden, jedoch nicht auf das Originaltabelle auf der sie basiert (KNA1).

tSAPTableInput
Figure 11: Originaltabelle wegen fehlender Berechtigungen nicht zugänglich

 

 

Über den Autor:

Markus arbeitet als BI-Berater mit Fokus auf SAP BI-Produktportfolio sowie Talend bei der cimt ag. Er ist Teil des Teams, das für die Entwicklung und den Support der Talend SAP-Komponenten verantwortlich ist.

Die Cimt ag ist seit mehr als 10 Jahren der einzige Talend SI Platinum und der erste Cloud Expert Partner Partner in der DACH- und Benelux-Region und arbeitet mit mehr als 200 Beratern zusammen auf Ihre Herausforderungen in der BI-Welt und darüber hinaus.

Cimt als SAP Silver Partner ist auch Entwicklungspartner von Talend und kann Ihnen einen umfassenden Service für Ihre SAP-Integration bieten.

An der Diskussion teilnehmen

0 Comments

Hinterlasse eine Antwort

Your email address will not be published. Required fields are marked *