Das Positionsanalyse-Modul „VAT-Audit“ repliziert steuerrelevante Belege mithilfe des Java-Connectors JCo aus der SAP-Datenbank in eine lokale AMANA-Datenbank, um Analysen durchführen zu können. Auf Seite des VAT-Audit sorgt die AMANA-Schnittstelle DataGate für das Lesen und Schreiben der Daten; auf SAP-Seite kommt ein von AMANA angepasster RFC_READ_TABLE Baustein zum Einsatz. Das in der SAP-Installation enthaltene BAPI (Business Application Programming Interface) „RFC_READ_TABLE“ dient zum Auslesen und Übertragen von SAP Datenbanktabellen. Die Breite der Datensätze ist auf 512 Zeichen beschränkt. Es wurde zunächst überlegt, diesen Standardbaustein einzusetzen, aber dessen Implementierung ist für eine genaue und performante Analyse von Belegdaten unbrauchbar; man stünde vor der Herausforderung, eine große Anzahl von Datensätzen in Teilstücken über die Schnittstelle zu extrahieren und auf der Clientseite wieder zusammenzufügen. Die Amana consulting GmbH hat den ABAP Quellcode des RFC_READ_TABLE so verändert, dass Datensätze von bis zu 2 KB übertragen werden können. Des Weiteren wurden Features wie z. B. die Unterstützung einer Order-By-Clause implementiert. Der AMANA-Baustein erhält einen eigenen Namen und eine eigene Function Group; er steht nicht mit dem Original in Konflikt, falls beide Funktionen parallel verwendet werden. In diesem Dokument wird beschrieben, wie das AMANA BAPI im SAP-System installiert wird, um mit dem VAT-Audit zu kommunizieren. 1. Ausgangslage2. Installation des Bausteins Z_RFC_READ_TABLEUm vom externen System VAT-Audit auf den von AMANA entwickelten Baustein Z_RFC_READ_TABLE zugreifen zu können, sind mehrere Einstellungen und Konfigurationen auf den beteiligten SAP-Servern notwendig. Zunächst wird eine Funktionsgruppe angelegt und schließlich der eigentliche Baustein konfiguriert und aktiviert. SE80: Erstellen einer FunktionsgruppeFür das von AMANA ausgelieferte BAPI muss auf dem SAP Server eine Funktionsgruppe ausgewählt werden. Für AMANA Programme kann unter der Transaktion SE80 eine neue Gruppe angelegt werden. Für Customer sind die Präfixe Y und Z reserviert und müssen verwendet werden. Die Gruppe wird als lokales Objekt angelegt.
SE37: Erstellen des BAPIIn der SAP-GUI wird die Transaktion SE37 aufgerufen um dort den AMANA-Baustein Z_RFC_READ_TABLE neu zu erstellen. Für den Baustein kann auch ein anderer Name gewählt werden, allerdings muss dies in Koordination mit AMANA geschehen, da dieser Name die wesentliche Vereinbarung ist, über welche die beiden Systeme VAT-Audit und SAP kommunizieren. Der Baustein wird der Function group Z_AMANA zugeordnet.
SE37 Konfiguration des BAPINach dem Anlegen der Funktion werden die Reiter des Subdialogs nacheinander mit Werten befüllt. Grundeinstellungen (a), Eingabeparameter (b), Ausgabeparameter (c) Tabellen (d), Ausnahmen (e) und nicht zuletzt der Quellcode (f) müssen dem SAP-System bekannt gemacht werden. a) Auf dem ersten Reiter des Subdialogs, “Eigenschaften”, wird die Option “Remote fähiger Baustein” gewählt.
b) Auf dem zweiten Reiter “Import” werden die Importparameter der Funktion hinterlegt:
c) Der Originalbaustein wurde um den Exportparameter RECORD_COUNT erweitert, der bei gesetztem Eingangsparameter nur die Datensätze zählt
d) Die verwendeten Tabellen werden im Reiter “Tabellen” konfiguriert. Hauptunterschiede zum Original-RFC sind die neue Order-By-Clause sowie die Struktur der Ausgabetabelle: TBL2048 statt TAB512.
e) Die Funktion wirft verschiedene Exceptions, die im Reiter “Ausnahmen” angegeben werden:
f) Schließlich wird der Quellcode der AMANA Implementierung in das Eingabefeld des Reiters Quelltext kopiert. Bereits vorhandener Code wird überschrieben. Anschließend wird die Funktion über das Icon in der Symbolleiste aktiviert.
3. SAP-BenutzerFür den Datenabzug wird ein technischer SAP-Benutzer benötigt. Folgende Berechtigungen werden benötigt. - DDIF_FIELDINFO_GET (Funktionsbausstein)
- RFC1 (Funktionsgruppe)
- RFCPING (Funktionsbausstein)
- RFC_GET_FUNCTION_INTERFACE (Funktionsbausstein)
- RFC_METADATA_GET (Funktionsbausstein)
- SDIFRUNTIME (Funktionsgruppe)
- SYST (Funktionsgruppe)
- Z_AMANA (Funktionsgruppe)
Zusätzlich eine Leseberechtigung für die Prüfungsrelevanten Tabellen (siehe 1. Ausgangslage). 4. Vorbereitung VAT-Server Damit Seitens des VAT-Audit eine JCO-Verbindung über die Schnittstelle aufgebaut werden kann muss im Tomcat-Server im Lib-Verzeichnis die Bibliothek SAPJCO3.jar und SAPJCO3.dll hinterlegt werden. Anbindung der Datenbankariante Variante 1: Konfiguration JNDI (Datasource) Datenbankverbindung mit Benutzer/PasswortKopieren Sie bitte den passenden JDBC Treiber in das lib-Verszeichnis des Apache Tomcat Servers (%TOMCAT_HOME%/lib). In der context.xml des Apache Tomcat Servers muss innerhalb des <Context> Blockes ein passender Resource-Eintrag für die Datenbankverbindung angelegt werden: Beispiel Datasource Eintrag für MSSQL: Code Block |
---|
language | xml |
---|
title | MSSQL Datasource |
---|
linenumbers | true |
---|
| <Resource name="jdbc/gtcvatdatasourcevatauditdatasource" auth="Container"
type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://[SERVER-ADRESS]:[PORT];DatabaseName=[DATABASE_NAME]"
username="[USERNAME]" password="[PASSWORD]" maxTotal="20" maxIdle="10"
maxWaitMillis="-1"/> |
Beispiel Datasource Eintrag für Oracle: Code Block |
---|
language | xml |
---|
title | Oracle Datasource |
---|
linenumbers | true |
---|
| <Resource name="jdbc/gtcvatdatasourcevatauditdatasource" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@[SERVER-ADRESS]:[PORT]:[INSTANCE]"
username="[USERNAME]" password="[PASSWORD]" maxTotal="20" maxIdle="10"
maxWaitMillis="-1"/> |
Im Datasource Eintrag passen Sie bitte die SERVER-ADRESSE des Datenbankservers, den Datenbanknamen und Benutzer/Passwort entsprechend Ihrer aufgesetzten Datenbank an. Variante 2: Konfiguration JNDI (Datasource) Datenbankverbindung mit Windows-UserKopieren Sie bitte den passenden JDBC Treiber in das lib-Verszeichnis des Apache Tomcat Servers (%TOMCAT_HOME%/lib). Die Datenbankverbindung in der context.xml des Tomcat-Servers kann alternativ über den Windows-User in dessen Kontext der Tomcat läuft aufgebaut werden. Dazu sind folgende Schritte durchzuführen: Microsoft SSPI Treiber herunterladen (sqljdbc 7.0): https://www.microsoft.com/de-de/download/sqljdbc_7.0 Info |
---|
Wichtig hierbei ist verwendete JAVA Version: Bei einem 64-bit JAVA wird x64-Version des Treibers benötigt, bei einem 32-bittigen Java entsprechend die x86-Version. |
Der Treiber wird in einer selbstentpackenden EXE geliefert, die bspw. per 7-Zip entpackt werden kann oder alternativ kann der Treiber als tar.gz-Archiv heruntergeladen werden. Kopieren Sie die sqljdbc_auth.dll aus dem Unterordner "/auth" in das "\windows\system32" Verzeichnis ihrer Windowsinstallation. - Kopieren Sie aus dem Unterordner des Treibers "/jre8" die Datei sqljdbc42 in das "/bin"-Verzeichnis ihrer installierten JAVA-Version (die vom Tomcat verwendet wird).
In der context.xml des Tomcat-Servers muss ein passender Datasource-Eintrag für die Datenbankverbindung konfiguriert werden: Code Block |
---|
language | xml |
---|
title | MSSQL Datasource |
---|
linenumbers | true |
---|
| <Resource
name="jdbc/gtcvatdatasourcevatauditdatasource"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://[SERVER-NAME]\SQLEXPRESS;DatabaseName=[DATABASE_NAME];Integratedsecurity=SSPI"
maxTotal="20" maxIdle="10"
maxWaitMillis="-1"/> |
Zudem muss der Windows-User in den "Tomcat Properties" eingetragen werden - siehe Abbildung: Info |
---|
Bitte beachten, dass der Benutzer auch die Berechtigung hat sich als „Dienst“ anzumelden, sonst startet der Tomcat nicht mehr. |
TLS-Verbindung zum SQL-Server einrichtenAb der Treiberversion 10.x von mssql-jdbc (Microsoft SQL-Server) muss eine Verbindung ohne TLS explizit konfiguriert werden, ansonsten geht der Treiber von einer TLS-Verbindung aus und erwartet dafür vorgesehen Zertifikate. Um diese zu deaktivieren, muss die context.xml des Tomcat-Servers wie folgt erweitert werden: 5. VerbindungstestAuf der AMANA-Seite der Schnittstelle wird dem VAT-Audit die JCO-Verbindung bekannt gemacht. Der berechtigte Benutzer meldet sich im VAT-Audit (VAT@GTC) an und wechselt in den Dialog Einstellungen Verbindungsparameter. Dort hinterlegt er die Verbindungsdaten für den (technischen) SAP-Benutzer, der die Belegdaten über den RFC replizieren darf. Neben Benutzername und Passwort sind die Parameter Host, Instanznummer, Client ID (Mandant) und der SAP Router die entscheidenden Einträge. Über die Schaltfläche „Erweiterter Verbindungstest“ gelangt man in den Dialog, in welchem man den RFC ansprechen kann.
VerbindungstestIm Erweiterten Verbindungstest der AMANA-Anwendung kann man sowohl den Original-RFC, als auch den durch AMANA angepassten Z_RFC_READ_TABLE ansprechen. Die Eingabeparameter QUERY_TABLE und DELIMITER werden unterstützt. Die Anzahl der zurückgegebenen Datensätze wird auf 100 beschränkt, so dass man den Verbindungstest auch gegen große Datenbanktabellen ausführen kann.
|