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.