Template für cloudfähige Debitor Schnittstellen

Template für cloudfähige Debitor Schnittstellen

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erzeugt: 05.11.2019
Aktualisiert: 26.04.2022 | Beispieltemplates sind ab 6.5.0.16 als eingebauter Code vorhanden.

Es gibt zwei Arten von cloudfähigen Debitor Schnittstellen:

Es gibt eine Beispiel-Debitoren-Schnittstelle, welche für beide Arten zeigt, was man implementieren muss, um eine lauffähige cloudfähige Fibu-Schnittstelle zu erstellen.

  • Ab Vertec 6.4.0.19 als FibuExampleExtension.py im Ordner Extensions in Ihrem Vertec Installationsverzeichnis, welche 2 unabhängige Klassenenthält:
    • ExampleOnlineDebiExtension, welche ohne Files arbeitet.
    • ExampleOfflineDebiExtension, welche filebasiert ist und jeweils beim Buchen oder Stornieren eine Datei liefert.

    Um die Beispiel-Schnittstelle zu implementieren, wird in Vertec damit ein Script erstellt und dieses als Extension registriert. Wie das geht, ist im Artikel Arbeiten mit Schnittstellen (Extensions) detailliert beschrieben.

  • Ab Vertec 6.5.0.16 können Sie dafür in Vertec im Ordner Einstellungen > Extensions eine Extension registrieren und als Extension-ID FibuExampleExtension.ExampleOnlineDebiExtension bzw. FibuExampleExtension.ExampleOfflineDebiExtension angeben.

ExampleOnlineDebiExtension

Die Klasse für Online Debitor Schnittstellen enthält folgende Einstiegspunkte:

TryPostInvoiceBookings(self, invoiceList)

Diese Methode wird direkt von Vertec aufgerufen und dient dazu, die Rechnungen in der Buchhaltung zu buchen.

Bei diesem Vorgang wird auch die Debitoradresse geschrieben.

Ihr Argument ist eine Liste von Vertec-Rechnungsobjekten. Die Liste enthält nur gültige Rechnungen. Die Konsistenzprüfung wird vor dem Aufruf dieser Methode durchgeführt.

Es muss eine Liste von Strings zurückgegeben werden mit der gleichen Länge wie die Liste der Rechnungen.

  • Jeder String ist mit der Rechnung auf dem gleichen Index verknüpft.
  • Ist die Zeichenkette leer, wird die Rechnung von Vertec als gebucht betrachtet.
  • In jedem anderen Fall muss die Fehlermeldung in den String geschrieben werden.

 Beispiel

        invoicelist[0] - response[0] = ""
        rechnungsliste[1] - antwort[1] = ""
        invoicelist[2] - response[2] = "Ein erster Fehler ist aufgetreten"
        invoicelist[3] - response[3] = "Es ist ein zweiter Fehler aufgetreten"
        rechnungsliste[4] - antwort[4] = ""

Die Rechnungen mit dem Index 0,1 und 4 werden in Vertec verbucht.

Die anderen Rechnungen werden nicht verbucht.

Zusätzlich wird dem Benutzer der erste Fehler als Fehlermeldung angezeigt: "Ein erster Fehler ist aufgetreten". Es wird jeweils nur der erste Fehler angezeigt.

TryCancelInvoiceBookings(self, invoiceList)

Diese Methode wird direkt von Vertec aufgerufen und dient dazu, Rechnungen in der Buchhaltung zu stornieren.

Ihr Argument ist eine Liste von Vertec-Rechnungsobjekten. Die Liste enthält nur gültige Rechnungen. Die Konsistenzprüfung wird vor dem Aufruf dieser Methode durchgeführt.

Es muss eine Liste von Strings zurückgegeben werden mit der gleichen Länge wie die Liste der Rechnungen.

  • Jeder String ist mit der Rechnung auf dem gleichen Index verknüpft.
  • Ist die Zeichenkette leer, wird die Rechnung von Vertec als gebucht betrachtet.
  • In jedem anderen Fall muss die Fehlermeldung in den String geschrieben werden.

 Beispiel

        invoicelist[0] - response[0] = ""
        rechnungsliste[1] - antwort[1] = ""
        invoicelist[2] - response[2] = "Ein erster Fehler ist aufgetreten"
        invoicelist[3] - response[3] = "Es ist ein zweiter Fehler aufgetreten"
        rechnungsliste[4] - antwort[4] = ""

Die Rechnungen mit dem Index 0,1 und 4 werden in Vertec storniert.

Die anderen Rechnungen werden nicht storniert.

Zusätzlich wird dem Benutzer der erste Fehler als Fehlermeldung angezeigt: "Ein erster Fehler ist aufgetreten". Es wird jeweils nur der erste Fehler angezeigt.

ImportPayments(self, invoiceList)

Diese Methode wird direkt von Vertec aufgerufen und dient dazu, Zahlungen aus der Buchhaltung ins Vertec zu importieren.

Ihr Argument ist eine Liste von Vertec-Rechnungsobjekten. Die Liste enthält nur gültige Rechnungen. Die Konsistenzprüfung wird vor dem Aufruf dieser Methode durchgeführt.

Es gibt drei Fälle:

  1. Zahlungsimport auf einer einzelnen Rechnung ausgeführt: Die Liste enthält nur eine Rechnung.
  2. Zahlungsimport auf einer Liste von Rechnungen ausgeführt: Die Liste enthält alle Rechnungen der Liste.
  3. Zahlungsimport global aufgerufen: Die Liste enthält alle Rechnungen, die nicht bezahlt sind.

Es müssen in Vertec Zahlungen erstellt und der Rechnung zugeordnet werden. 

Wenn in Vertec kein Zahlungstyp mit dem Code AUTO vorhanden ist, wird einer erstellt.

Ausserdem muss die Rechnung als bezahlt markiert werden, wenn sie vollständig bezahlt wurde.

In der Beispiel-Extension wird der Rechnung eine Zahlung von 9.95 hinzugefügt. Ausserdem wird beim Buchen die Personenkontonummer auf Adressen auf 1 gesetzt. Diese Nummer muss von der Fibu kommen, bitte Kommentar im Code beachten.

ExampleOfflineDebiExtension

Die Klasse für Offline Debitor Schnittstellen enthält folgende Einstiegspunkte:

PostInvoiceBookings(self, invoiceList)

Die Methode wird von Vertec direkt aufgerufen und dient dazu, Rechnungen in der Buchhaltung zu verbuchen. Als Argument wird eine Liste von Rechnungen übergeben. Die Liste enthält nur gültige Rechnungen, da die Konsistenzprüfung vor dem Aufruf dieser Methode durchgeführt wird.

Dabei wird auch die Debitoradresse in der Buchhaltung geschrieben bzw. upgedatet.

Rückgabewert ist ein Tupel (filname, fileAsByteArray), welches von Vertec gespeichert wird.

Was passiert, wenn der Buchungsvorgang fehlschlägt

Wirft die Schnittstelle eine Exception, dann gilt in Vertec der gesamte Buchungsprozess als gescheitert. In diesem Fall wird keine der Rechnungen in der Liste auf gebucht gesetzt. Das impliziert, dass alle Rechnungen in der Liste gleichzeitig in die Fibu gebucht werden müssen, da sonst Abweichungen zwischen Vertec und der Fibu entstehen können.

CancelInvoiceBookings(self, invoiceList)

Die Methode wird von Vertec direkt aufgerufen und dient dazu, Rechnungen in der Buchhaltung zu stornieren. Als Argument wird eine Liste von Rechnungen übergeben. Die Liste enthält nur gültige Rechnungen, da die Konsistenzprüfung vor dem Aufruf dieser Methode durchgeführt wird.

Rückgabewert ist ein Tupel (filname, fileAsByteArray), welches von Vertec gespeichert wird.

ImportPayments(self, invoiceList)

Diese Methode wird direkt von Vertec aufgerufen und dient dazu, Zahlungen aus der Buchhaltung ins Vertec zu importieren.

Ihr Argument ist eine Liste von Vertec-Rechnungsobjekten. Die Liste enthält nur gültige Rechnungen. Die Konsistenzprüfung wird vor dem Aufruf dieser Methode durchgeführt.

Die Implementierung sollte dem Benutzer die Möglichkeit geben, eine Zahlungsdatei zum Importieren und Verarbeiten auszuwählen.

Es gibt drei Fälle:

  1. Zahlungsimport auf einer einzelnen Rechnung ausgeführt: Die Liste enthält nur eine Rechnung.
  2. Zahlungsimport auf einer Liste von Rechnungen ausgeführt: Die Liste enthält alle Rechnungen der Liste.
  3. Zahlungsimport global aufgerufen: Die Liste enthält alle Rechnungen, die nicht bezahlt sind.

Es müssen in Vertec Zahlungen erstellt und der Rechnung zugeordnet werden. 

Wenn in Vertec kein Zahlungstyp mit dem Code AUTO vorhanden ist, wird einer erstellt.

Ausserdem muss die Rechnung als bezahlt markiert werden, wenn sie vollständig bezahlt wurde.

In der Beispiel-Extension wird der Rechnung eine Zahlung von 9.95 hinzugefügt. Ausserdem wird beim Buchen die Personenkontonummer gesetzt auf Adressen, welche noch keine solche Nummer haben. Die entsprechenden Zahlen kommen von der Systemeinstellung Nächste Debitornummer.

Implementierungsdetails

Folgende Hinweise sollten beachtet werden beim Implementieren einer neuen Schnittstelle:

Folgendes darf von der Schnittstelle NICHT geschrieben werden:

  • Der Zustand gebucht auf der Rechnung wird von der Vertec Business-Logik gesetzt und darf nicht separat von der Extension gesetzt werden.
  • Dasselbe gilt für die persistenten Buchhaltungs-Attribute auf der Rechnung (die Werte mit bhXX), welche ebenfalls von Vertec automatisch beschrieben werden.

Folgendes MUSS von der Schnittstelle geschrieben werden:

  • Die Belegnummer (rechnung.belegnr) muss von der Extension gesetzt werden, denn ohne eine Belegnummer kann nicht storniert werden. Bei Buchhaltungen, welche ohne Belegnummern arbeiten, kann einfach 0 hineingeschrieben werden.

Ausgabe

Es werden Prints in die Python Konsole geschrieben beim Buchen und Stornieren.

Bitte wählen Sie Ihren Standort