[vc_row][vc_column width=”2/3″][dfd_heading subtitle=”” delimiter_settings=”delimiter_style:solid|delimiter_width:80|delimiter_height:1″ undefined=”” title_font_options=”tag:h3″ subtitle_font_options=”tag:div”]tSAPTableInput für SAP Application Tables[/dfd_heading][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][vc_column_text]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 Import-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

© cimt ag – cimt ag

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

© cimt ag – cimt ag

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

© cimt ag – cimt ag

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

© cimt ag – cimt ag

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.

© cimt ag – cimt ag

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.

© cimt ag – cimt ag

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

© cimt ag – cimt ag

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).

© cimt ag – Privat

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.

© cimt ag – cimt ag

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.

© cimt ag – cimt ag

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).

© cimt ag – cimt ag

Ü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 ]]

[/vc_column_text][/vc_column][vc_column width=”1/3″ col_shadow=”box_shadow_enable:disable|shadow_horizontal:0|shadow_vertical:15|shadow_blur:50|shadow_spread:0|box_shadow_color:rgba(0%2C0%2C0%2C0.35)” col_shadow_hover=”box_shadow_enable:disable|shadow_horizontal:0|shadow_vertical:15|shadow_blur:50|shadow_spread:0|box_shadow_color:rgba(0%2C0%2C0%2C0.35)” css=”.vc_custom_1556178166249{padding-right: 20px !important;padding-left: 20px !important;background-position: center !important;background-repeat: no-repeat !important;background-size: contain !important;}”][vc_row_inner css=”.vc_custom_1556178375626{border-top-width: 2px !important;border-right-width: 2px !important;border-bottom-width: 2px !important;border-left-width: 2px !important;padding-top: 20px !important;padding-right: 20px !important;padding-bottom: 20px !important;padding-left: 20px !important;border-left-color: #dc6e14 !important;border-left-style: dotted !important;border-right-color: #dc6e14 !important;border-right-style: dotted !important;border-top-color: #dc6e14 !important;border-top-style: dotted !important;border-bottom-color: #dc6e14 !important;border-bottom-style: dotted !important;border-radius: 2px !important;}”][vc_column_inner][dfd_heading subtitle=”” delimiter_settings=”delimiter_style:solid|delimiter_width:80|delimiter_height:1″ undefined=”” title_font_options=”tag:h2″ subtitle_font_options=”tag:div”]Kontakt[/dfd_heading][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][dfd_info_box title=”Rouven Homann” subtitle=”Managing Partner” main_content=”” read_more=”title” icon_type=”custom” main_style=”style-3″ main_layout=”layout-3″ link=”url:mailto%3Arouven.homann%40cimt-ag.de|||” undefined=”” icon_size=”100″ title_font_options=”tag:div” subtitle_font_options=”tag:div” icon_image_id=”9131″][vc_column_text]

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

[/vc_column_text][/vc_column_inner][/vc_row_inner][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][vc_row_inner css=”.vc_custom_1556178375626{border-top-width: 2px !important;border-right-width: 2px !important;border-bottom-width: 2px !important;border-left-width: 2px !important;padding-top: 20px !important;padding-right: 20px !important;padding-bottom: 20px !important;padding-left: 20px !important;border-left-color: #dc6e14 !important;border-left-style: dotted !important;border-right-color: #dc6e14 !important;border-right-style: dotted !important;border-top-color: #dc6e14 !important;border-top-style: dotted !important;border-bottom-color: #dc6e14 !important;border-bottom-style: dotted !important;border-radius: 2px !important;}”][vc_column_inner][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][dfd_heading subtitle=”” delimiter_settings=”delimiter_style:solid|delimiter_width:80|delimiter_height:1″ undefined=”” title_font_options=”tag:h4″ subtitle_font_options=”tag:div”]Kommende Veranstaltungen[/dfd_heading][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][dfd_blog_posts posts_to_show=”3″ thumb_rounded=”6″ post_show_meta=”” sort_panel_alignment=”text-left” post_content_style=”tiny” post_categories=”veranstaltungen” tutorials=””][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][/vc_column_inner][/vc_row_inner][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][vc_row_inner css=”.vc_custom_1556178375626{border-top-width: 2px !important;border-right-width: 2px !important;border-bottom-width: 2px !important;border-left-width: 2px !important;padding-top: 20px !important;padding-right: 20px !important;padding-bottom: 20px !important;padding-left: 20px !important;border-left-color: #dc6e14 !important;border-left-style: dotted !important;border-right-color: #dc6e14 !important;border-right-style: dotted !important;border-top-color: #dc6e14 !important;border-top-style: dotted !important;border-bottom-color: #dc6e14 !important;border-bottom-style: dotted !important;border-radius: 2px !important;}”][vc_column_inner][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][dfd_heading subtitle=”Jetzt registrieren und keine Veranstaltungen mehr verpassen.” delimiter_settings=”delimiter_style:solid|delimiter_width:80|delimiter_height:1″ undefined=”” title_font_options=”tag:h3″ subtitle_font_options=”tag:div”]cimtAcademy[/dfd_heading][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″]



    [dfd_delimiter delimiter_style=”dfd-delimiter-with-line” undefined=””][dfd_spacer screen_wide_spacer_size=”20″ screen_normal_resolution=”1024″ screen_tablet_resolution=”800″ screen_mobile_resolution=”480″][vc_column_text]Informationen zur Datenverarbeitung[/vc_column_text][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row]

    Nach oben scrollen