INHALTSVERZEICHNIS
Anwendungsfall
Über die digitalen Workflows der Upload24 GmbH werden Eingangsrechnungen verarbeitet und freigegeben. Für die automatische und manuelle Zuordnung von Kreditoren, Sachkonten und Kostenstellen soll direkt auf die eGecko-Datenbank zugegriffen werden. So sind keine Exporte o.ä. notwendig und der Anwender kann direkt auch auf neue oder geänderte Datensätze zugreifen.
Technisches Vorgehen
Die eGecko-Daten werden auf einem Microsoft SQL Server vorgehalten. Die Softwarekomponenten der Upload24 greifen per SQL Authentifizierung lesend auf die relevanten Tabellen zu.
Mandanten
Haupttabelle ist hier die Tabelle "[integris].[betrstaette]".
USE [egecko_data]; SELECT DISTINCT bez AS Mandant ,'' AS Kreditorname -- Attribut leeren, wenn neuer Mandant ausgewählt wird ,'' AS Kreditornummer -- Attribut leeren, wenn neuer Mandant ausgewählt wird FROM [integris].[betrstaette];
Kreditoren
Haupttabelle für die Kreditoren ist die Tabelle "[integris].[personenkonto]". Für Kreditoren ist die Kontenart "K" hinterlegt. Für die Zuordnung von Anschrift und Mandant müssen weitere Tabellen eingebunden werden.
USE [egecko_data]; SELECT p.[kontonummer] AS 'Kreditornummer' ,p.[bezeichnung] AS 'Kreditorname' ,a.[strasse] + ' ' + Convert(nvarchar, a.[hausnummer]) + ', ' + a.[plz] + ' ' + a.[ort] AS 'Kreditoradresse' ,p.[ust_ident_nummer] ,p.[steuernummer] ,bank.[iban] FROM [integris].[personenkonto] p INNER JOIN [integris].[geschaeftspartner] g ON p.[geschpartner_id] = g.[geschpartner_id] INNER JOIN [integris].[anschrift] a On g.[anschrift_id] = a.[anschrift_id] INNER JOIN [integris].[firma] f ON p.[orgunit_nr] = f.[orgunit_nr] INNER JOIN [integris].[betrstaette] b ON b.[firma_id] = f.[firma_id] INNER JOIN [integris].[bankverbindung] bank on p.[orgunit_nr] = bank.[orgunit_nr] WHERE b.[bez] = '#Mandant#' AND ...
Sachkonten
Haupttabelle für die Sachkonten ist die Tabelle "[integris].[sachkonto]". Für die Einschränkung der Auswahl anhand des Mandanten müssen weitere Tabellen eingebunden werden.
USE [egecko_data]; SELECT s.[bezeichnung] AS 'Sachkonto' ,s.[kontonummer] AS 'Kostenstelle' FROM [integris].[sachkonto] s INNER JOIN [integris].[firma] f ON s.[orgunit_nr] = f.[orgunit_nr] INNER JOIN [integris].[betrstaette] b ON b.[firma_id] = f.[firma_id] WHERE b.[bez] = '#Mandant#' AND (s.[bezeichnung] LIKE '%#Sachkonto#%' OR s.[kontonummer] LIKE '%#Sachkonto#%') AND s.[bebuchbar] = '1';
Kostenstellen
Haupttabelle für die Sachkonten ist die Tabelle "[integris].[kostenstelle]". Für die Einschränkung der Auswahl anhand des Mandanten müssen weitere Tabellen eingebunden werden.
USE [egecko_data]; SELECT k.[bezeichnung] AS 'Kostenstellename' ,k.[kostenstelle_nr] AS 'Kostenstelle' FROM [integris].[kostenstelle] k INNER JOIN [integris].[firma] f ON k.[orgunit_nr] = f.[orgunit_nr] INNER JOIN [integris].[betrstaette] b ON b.[firma_id] = f.[firma_id] WHERE b.[bez] = '%#Mandant#%' AND (k.[bezeichnung] LIKE '%#Kostenstelle#%' or k.[kostenstelle_nr] LIKE '%#Kostenstelle#%') AND b.[bebuchbar] = '1';
Währung
Haupttabelle ist hier die Tabelle "[integris].[waehrung]".
USE [egecko_data]; SELECT [waehrungsschl] AS 'Währung' FROM [integris].[waehrung];
Notwendige Zuarbeiten
Für den Zugriff wird neben dem Datenbankserver und dem Datenbanknamen ein SQL-Benutzerkonto mit lesenden Rechten auf die notwendigen Tabellen benötigt.