So konfigurieren Sie Talend SAP Komponenten

tSAPTableInput für SAP Application Tables

Talend SAP Komponente

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.

Talend SAP Importdialog, KNA1 Feldstruktur
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).

Konfiguration der Talend SAP Komponente

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.

Talend SAP Batch Load
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:

Filter der Talend SAP Komponente
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

Delta Logik für die Talend SAP Komponenten
Figure 4: Konzept zum Abrufen von Delta-Datensätzen, Transaktionsdaten – Rechnungsposten

Neben tSAPTableInput gibt es eine weitere Talend-SAP-Komponente, mit der große Mengen von SAP-Tabellendaten geladen werden können. Diese Option wird in einem separaten Knowledge Base-Artikel beschrieben.

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.

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.

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.

Beispiel einer Talend SAP Integration
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.

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.

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 der Originaltabelle auf der sie basiert (KNA1).

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.

[[ Dieser Artikel ist am 1. Oktober 2019 im Talend Blog erschienen ]]

cimtAcademy

Erweitern Sie außerdem Ihr Wissen in unseren kostenlosen cimt Webinaren und Workshops. Am 14. Oktober veranstalten wir unser Webinar „SAP Readiness Check“. Lernen Sie wie Sie den SAP Readiness Check im Rahmen Ihres Transformationsprojektes richtig nutzen können und was bei dem Einsatz zu beachten ist. Weitere Informationen finden Sie hier.

Kontakt

Rouven Homann
Management Partner

Telefon: +49 (0)40 53302-444
E-Mail: rouven.homann@cimt-ag.de
Twitter: twitter.com/cimtag
Termin vereinbaren

Kommende Veranstaltungen

Datum/Zeit Veranstaltung
17.10.2019
18:00
Data Science in der Cloud macht saubere Luft messbar
cimt ag Hamburg, Hamburg Deutschland
21.10.2019
11:00 - 12:00
Webinar „SAP Solution Manager: Prozessmanagement“
cimt ag Hamburg, Hamburg Deutschland
22.10.2019
14:00 - 18:00
Trust & Speed - 360° Customer Data Hub und Data Governance
cimt ag Hamburg, Hamburg Deutschland
29.10.2019
15:00 - 19:30
„Step up to the Cloud“ Veranstaltung in Köln
cimt ag (CGN), Köln
11.11.2019 - 13.11.2019
09:00 - 18:00
Data Vault 2.0 Bootcamp
cimt ag Hamburg, Hamburg Deutschland

cimtAcademy

Jetzt registrieren und keine Veranstaltungen mehr verpassen.







div#stuning-header .dfd-stuning-header-bg-container {background-image: url(https://www.cimt-ag.de/wp-content/uploads/2017/10/home-start2_low.jpg);background-color: #848484;background-size: cover;background-position: center center;background-attachment: fixed;background-repeat: no-repeat;}#stuning-header div.page-title-inner {min-height: 300px;}div#stuning-header .dfd-stuning-header-bg-container.dfd_stun_header_vertical_parallax {-webkit-transform: -webkit-translate3d(0,0,0) !important;-moz-transform: -moz-translate3d(0,0,0) !important;-ms-transform: -ms-translate3d(0,0,0) !important;-o-transform: -o-translate3d(0,0,0) !important;transform: translate3d(0,0,0) !important;}