Seite 1 von 1

Zugriff auf Lex-DB per ODBC

Verfasst: Fr 3. Mai 2019, 13:15
von tn1000
Hallo zusammen,

hat hier jemand zufällig Kenntnis von der Tabellenstruktur von Warenwirtschaft Premium?

In einer Exceldatei ziehen wir aus verschiedenen Quellen Daten zusammen, um diverse Auswertungen machen zu können. U.a. greifen wir auch per ODBC auf die Daten der Lexware WaWi zu und importieren diese zur Weiterverarbeitung in Excel. Insbesondere geht es um die Angebote, Rechnungen, ABs, usw.
Die Erstellung der SQL-Abfragen war viel Herumprobiererei, da die Tabellenstruktur und insbesondere die Verknüpfungen zwischen Tabellen nicht öffentlich dokumentiert zu sein scheinen. In allen Fällen, bis auf einen, erhalten wir mittlerweile genau die gewünschten Daten.

Ein Problem, was bisher nicht gelöst werden konnte, sind jedoch die Angebote.
Es sollen innerhalb eines gewissen Zeitraums alle Angebote abgefragt werden. Die Abfrage dazu lautet in etwa:

Code: Alles auswählen

SELECT FK_Auftrag.Datum_erfassung AS 'Datum',
FK_Auftrag.AuftragsNr AS 'Belegnr.',
FK_Vertreter.szBezeichnung AS 'VB',
FK_Auftrag.szUserdefined4 AS 'MW-Status',
FK_Auftrag.AuftragsKennung AS 'Kennung',
FK_Auftrag.KundenNr AS 'Kd.-Nr.',
FK_Auftrag.KundenMatchcode AS 'Matchcode',
FK_Auftrag.szUserdefined1 AS 'Stichwort',
FK_Auftrag.szUserdefined2 AS 'EK',
FK_Auftrag.Summen_netto_haupt AS 'Summe netto',
LX_KOSTENSTELLE.szBezeichnung AS 'KST',
LX_KOSTENTRAEGER.szBezeichnung AS 'KTR'
FROM F1.FK_Auftrag FK_Auftrag
LEFT OUTER JOIN F1.FK_Vertreter FK_Vertreter ON FK_Auftrag.lVertreterID = FK_Vertreter.lID
LEFT OUTER JOIN F1.LX_KOSTENSTELLE LX_KOSTENSTELLE ON FK_Auftrag.Kostenstelle = LX_KOSTENSTELLE.lID_Kostenstelle
LEFT OUTER JOIN F1.LX_KOSTENTRAEGER LX_KOSTENTRAEGER ON FK_Auftrag.Kostentraeger = LX_KOSTENTRAEGER.lID_Kostentraeger
WHERE FK_Auftrag.Datum_erfassung>{ts '2015-12-31 00:00:00'} AND FK_Auftrag.AuftragsKennung=0
ORDER BY FK_Auftrag.Datum_erfassung DESC
Allerdings brauchen wir in der Auswertung auch den Status eines Angebots. In Lexware selbst kann man für Aufträge Verkauf in den Ansichtseinstellungen die Spalte Bearbeitungsstatus einblenden, die anzeigt, ob ein AG in Bearbeitung, angenommen oder erledigt ist.
Lexware premium[Aufträge Verkauf].png
Wir konnten nur kein passendes Feld in der Tabelle Auftrag zu diesem Bearbeitungsstatus ausfindig machen.
Die Vermutung liegt nahe, dass dieses Spalte im Lexware-Client gar kein wirkliches Tabellenfeld wiedergibt, sondern von der Anwendung in irgendeiner Form errechnet wird (hard-coded) und somit gar nicht direkt per ODBC abfragbar ist. Oder der Status befindet sich in einer anderen Tabelle, die mit FK_Auftrag referenziert wurde. Das ist wirklich schwierig herauszubekommen.

Kann hierzu jemand helfen?

Unser aktueller Workaround ist leider etwas lästig. Wir exportieren nämlich die Lexware-Ansicht nach Excel. Dies liefert zwar die gewünschten Daten, lässt jedoch keinerlei Automatisierung zu. Es muss immer jemand händisch tun, dabei ist das Ziel die Daten täglich in die Excelauswertung neu zu exportieren.