Zum Inhalt

Diamant/3

Schnittstelle: Diamant/3


Allgemein

Die Schnittstelle zwischen Octoflex und Diamant/3 bildet folgende Funktionen ab

  • Export: Export der Belege aus Octoflex als Datei um diese in Diamant/3 manuell zu importieren
  • Import: Auslesen der offenen Posten aus Diamant/3 um in Octoflex die Verkaufs-Belege als Erledigt zu markieren.

Voraussetzungen

Schnittstellenbeschreibung

Datenexport

Die Konfiguration des Datenexports erfolgt analog zum DATEV-Export. Dabei wird lediglich als Ausgabe eine Diamant/3 kompatible CSV-Datei erzeugt.
Zur Aktivierung ist in Octoflex per Einstellungen -> Global -> Vorgaben -> DATEV-Einstellungen -> Export der Parameter DATEV-Format = DIAMANT/3 zu setzen.
Unterstützt werden die folgenden Exporte: Bewegungsdaten Verkauf / Bewegungsdaten Einkauf / Stammdaten

Datenimport

Allgemein

Hinweis

Diamant/3 bietet keinen Datenexport, weshalb die Daten direkt aus der Datenbank ausgelesen werden müssen, es muss also vom Administrator ein Lesezugriff auf die Diamant/3 für Octoflex eingerichtet werden.
Dabei ermöglicht Diamant/3 keine Zuordnung einzelner Zahlungen zu bestimmten Belegen, so dass lediglich der Gesamt-Saldo zurückgemeldet, damit Belege in Octoflex als gebucht/erledigt markiert werden können, nicht aber, wie Octoflex-üblich, die einzelnen Zahlungen zu den Belegen erfasst werden.

Der Import ist als Kommandozeilenaufruf realisiert, der z.B. als geplante Task täglich laufen kann um die Daten in Octoflex zu übernehmen.
Im Octoflex-Programmverzeichnis ist der folgende Befehl auszuführen, dabei ist darauf zu achten die Werte in den spitzen Klammern entsprechend anzupassen sind.

Hinweis

Zum Testen kann der Befehl in der Konsole ausgeführt und später als geplante Task eingerichet werden. Alle Aktionen werden in der Konsolenausgabe protokolliert.

TaskRunner.bat
    -host <schema@server>
    -user <octoflex user>
    -pass <octoflex passwort>
    -task import-diamant

Funktionsweise

Der Datenimport führt die folgende Abfrage auf der Diamant-Datenbank aus

SELECT B.Belegnummer,
       B.InterneBelegnummer,
       B.Belegdatum,
       B.Belegart,
       Bu.Soll,
       Bu.Haben,
       O.Betrag,
       O.Zeitstempel
FROM sa001.dbo.Beleg B,
     sa001.dbo.Buchung Bu,
     sa001.dbo.OP O
WHERE B.DVBelegnummer = Bu.DVBelegnummer
  AND Bu.DVBuchungsnummer = O.DVBuchungsnummer
  AND Bu.Buchungskz <> 'I'
  AND B.Belegart IN ('AR', 'AG', 'ER', 'EG')
  AND O.Zeitstempel BETWEEN @from AND @to
ORDER BY o.Zeitstempel ASC

Die Eindeutige Zuordnung erfolgt über das Feld InterneBelegnummer. Es wird erwartet, dass hier eine eindeutige Übereinstimmung zum Octoflex besteht. Datenzeilen mit unbekannter oder leerer InternerBelegnummer werden ignoriert.
Eine Datenzeile hat entweder Soll oder Haben. Im Feld Betrag steht der Rest-Saldo (bzw. leer).

Hinweis

Eingangsrechnungen und Eingangsgutschriften werden bisher nicht unterstützt und ignoriert

Für jede Datenzeile wird in Octoflex der ensprechende Beleg geladen und wenn

  • Betrag (Diamant/3) = Summe (in Octoflex), dann wird der Beleg nur verbucht (Status = BU)
  • Betrag (Diamant/3) = 0 bzw. leer, dann wird in Octoflex eine Zahlung eingetragen und der Beleg erledigt (Status = ER)
  • Betrag (Diamant/3) <> Summe (in Octoflex), dann wird in Octoflex eine Zahlung eingetragen und der Beleg verbucht (Status = BU)

Nach erfolgtem Import wird die Variable DIAMANT_IMPORT_ZEITSTEMPEL auf Datum/Uhrzeit des Import-Laufs gesetzt. Beim nächsten Aufruf werden nur noch Datensätze geladen, bei denen der Zeitstempel größer ist, als der Wert, daher ist zu gewährleisten, dass der Rechner, der den Import ausführt Datum/Uhrzeit mit dem Diamant/3 Server abgleicht bzw. eine gemeinsame Zeitquelle verwendet.

Hinweis

Ist ein Beleg mehrfach in Diamant/3 vorhanden hat jeweils der letzte Eintrag Priorität und überschreibt ggf. vorherige Buchungen in Octoflex.