E-Rechnungen mit Filemaker

Allgemeines

Was es ist

Eine Filemakerdatei im .fp7-Format. Das ist kein Programm. Sie brauchen das Datenbankprogramm Filemaker Pro in der Version 10 oder neuer.

Was diese Datei macht

Die Datei CLK-E-Rechnung.fp7 erstellt elektronische Rechnungen (den XML-Murks) gemäss Spezifikation Yellowill 2.0 der Postfinance.

Wer diese Datei braucht

Rechnungssteller, die gewissen Kunden elektronische Rechnungen schicken müssen oder wollen.

Was sie nicht macht

Was sie kostet und wo man sie kriegt

Zeit und Nerven. Hier können Sie die Datei CLK-E-Rechnung.fp7 herunterladen. Den vollen Zugriff kriegen Sie mit dem Benutzernamen Admin ohne Passwort oder mit dem Benutzernamen Entwickler und dem Passwort modulo.
Achtung: nie mit vollem Zugriff produktiv arbeiten! Wesentliche Teile funktionieren nur über die Berechtigungen.

Was es dazu braucht (Voraussetzungen)

Aufbau

Tabellen und Layouts

Wir gehen jetzt durch die Layouts der Lösung; dabei können wir gleich die Tabellen anschauen:

Layout Einstellungen (Tabelle Global)

Hat nur einen Datensatz und enthält ein paar Grundeinstellungen, hauptsächlich für den Kopfbereich des XMLs. Der Datensatz wird erstellt, wenn er nicht vorhanden ist, die Felder mit Auto-Enter abgefüllt.

Die Feldnamen sind mit Schnellinfos belegt, die die Feldkommentare anzeigen. Die Feldkommentare sind die Beschreibungen der Felder in der Anleitung der Postfinance zur Schnittstelle Yellobill 2.0. Wenn Sie mit der Maus auf einen Feldnamen zeigen, erfahren Sie, was die Postfinance da von Ihnen will. Das gilt für alle Layouts.

Register XML
Die Angaben für den Kopfbereich des XML sind ziemlich technisch und zum grössten Teil fix vorgegeben. In den Feldern From, Software Name und Software Version können Sie natürlich eingeben, was Sie wollen bzw. Ihnen sinnvoll erscheint.

Das Feld Envelope: Attribute enthält einen Verweis auf die Datei ybInvoice_V2.0.xsd, mit der die XML-Datei validiert wird. Ich habe die Datei auf meinen Server geladen. So lange der lebt und sie dort bleibt, ist es gut. Vielleicht wollen Sie eine Kopie an einem Ort speichern, den Sie selber kontrollieren. Passen Sie dann einfach den Pfad an.

Register Pfade
Die Knöpfe oben dienen der Uebernahme der Daten in eine neue Version der Lösung, die Felder unten legen fest, wo alle 10 Minuten ein Klon gespeichert werden soll, wenn man das entsprechende Skript startet. Dieses dient dazu, nach einem Absturz auf eine saubere Version zurückgreifen zu können und ist bei der Entwicklungsarbeit sinnvoll.

Wenn Sie das Plugin MBS haben, können Sie das Verzeichnis mit einem Klick auf die Schaltfläche wählen.

Register MBS
Hier können Sie Ihre Lizenz für das Filemaker-Plugin MBS von Christian Schmitz testen bzw. neu eingeben.

Layout Mandant (Tabelle Mandant)

Enthält die Angaben des Rechnungsstellers, namentlich dessen BillerID und den Pfad zu dem Ordner in Ihrem Dateisystem, in dem die fertigen XML-Dateien gespeichert werden sollen.

Sie können mehrere Datensätze füllen und somit E-Rechnungen für mehr als einen Rechnungssteller verschicken. Der aktuelle Mandant ist immer derjenige, den Sie zuletzt aufgerufen haben. Wenn Sie nicht den Fehler begehen, mit vollen Zugriffsrechten zu arbeiten, werden Ihnen auch nur die Rechungen dieses Mandanten angezeigt.

Layout Konti (Tabelle Konto)

Hier geben Sie die IBAN oder ESR-Teilnehmer-Nummer ein, auf die die Rechnungsempfänger zahlen sollen. Der Mandant wird automatisch gesetzt und oben angezeigt (siehe Layout Mandant). Jeder Rechnung wird dann genau ein Konto zugeordnet, und zwar automatisch das erste bzw. dasjenige mit der kleinsten Zahl im Feld "Priorität".

Layout Kunden (Tabelle Kunde)

Ein Datensatz ist ein Rechnungsempfänger. Diese Tabelle ist nicht mandatiert, alle Mandanten haben alle Kunden zur Verfügung.

Vorschlag zum Füllen dieser Tabelle: Verpassen sie ihr einen Fremdschlüssel und stellen dann in Ihrer Adress- bzw. Kundentabelle den Bezug her und erlauben das Erstellen von Datensätzen in der E-Rechnungs-Kundentabelle über diese Beziehung.

Nun platzieren Sie auf Ihrem Kundenlayout die Bezugsfelder EillAccountID, NetworkName und NetworkID, und, wenn Sie bisher die MWSt-Nummern Ihrer Kunden nicht gesammelt haben (wozu auch?), auch noch das Feld TaxID.

Solald ein Kunde E-Rechnungen haben will, füllen Sie die Felder aus. Dabei wird automatisch ein Datensatz in den E-Rechnungen erstellt. Was in welches Feld gehört, entnehmen Sie den Feldkommentaren.

Layout Rechnungen (Tabelle Rechnung)

Ein Datensatz ist eine Rechnung. Die Tabelle ist mandatiert; d.h. jede Rechnung ist genau einem Mandanten zugeordnet. Arbeiten Sie mit normalem Zugriff, sehen Sie nur die Rechnungen des aktuellen Mandanten.

Layout Rechnungsdetail

In der Rechnung stehen zur Hauptsache das Rechnungsdatum, die Fälligkeit, das Total und die MWSt-Zusammenfassung, sowie ein Verweis auf genau einen Kunden und ein Konto, auf das dieser zahlen soll.

Layout Posten (Tabelle Posten)

Die einzelnen Rechnungsposten, daraus werden in de E-Rechnung "Line Items". Eine E-Rechnung funktioniert nur mit Posten, da nur auf dieser Ebene die Angaben verstaut werden, die der Kunde in der Rechnung haben will (meistens Auftragsnummer, Objektreferenz o.ä.).
Die Posten sind Kinder der Rechnungen und somit natürlich auch mandatiert.

Achtung: Das Feld "Rate" muss der MWSt-Zusammenfassung wegen indexierbar sein, Sie dürfen es also nicht in ein Formelfeld verwandeln, das den Betrag aus Ihrer eigenen Lösung zieht. Es enthält den MWSt-Satz als Zahl zwischen 0 und 100 (also 8 für 8%).
Vorschlag für die Integration: sie erstellen den Posten der E-Rechnung dadurch, dass Sie vom Posten in Ihrem System mit dem Schritt Feldwert setzen das Feld Rate füllen. Damit wird der Datensatz überhaupt erstellt und ihr Fremdschlüssel automatisch gefüllt - und natürlich alle übrigen Felder, die Sie ja in Formelfelder umgewandelt haben.

Layout Rechnungslauf (Tabelle Lauf)

Bei einem Rechnungslauf wird für jede Rechnung eine XML-Datei generiert und bei Ihnen abgelegt. Der Datensätz enthält nur eine Seriennummer und einen Zeitstempel. Er besagt, welche Rechnung wann verarbeitet wurde.

Sie können den Rechnungslauf von diesem Layout aus oder von der Rechnungsliste aus starten. Die Ergebnismenge spielt keine Rolle, es werden alle Rechnungen des aktuellen Mandanten genommen, die noch in keinem Lauf stecken.

Mit dem roten X können Sie einen Lauf löschen. Dabei wird der Datensatz im Layout Lauf gelöscht und in den zugehörigen Rechnungen der Fremschlüssel geleert, so dass diese wieder als unverarbeitet gelten.

Layout Protokolldateien (Tabelle Protokolle)

Die Postfinance gibt Ihnen eine Protokolldatei zurück, in der steht, was aus Ihren eingelieferten Rechnungen geworden ist. Da es sich dabei ebenfalls um eine XML-Datei handelt, müssen wir die auseinandernehmen und für Filemaker lesbar machen. In der Tabelle Protokolle können wir pro Datensatz eine Protokolldatei erfassen (bzw. einen Verweis darauf). Das Skript nimmt die Datei dann mit dem wunderbaren XSLT von Jens Teich (hoch soll er leben) auseinander, legt die Elemente in die Tabelle XML und setzt die Datensätze in einer weiteren Hilfstabelle namens Protokollauswertung wieder zusammen.

Im Layout Protokolldateien lesen Sie dann, wie viele Rechnungen empfangen wurden, und ob Sie in Ordnung waren. Das Portal rechts zeigt diejenigen, die nicht verarbeitet oder vom Empfänger refusiert wurden. Mit den Links können Sie zu diesen Rechnungen wechseln.

Ablauf

Vorbereitung: Integration in Ihre Lösung

E-Rechnungen erstellen

Wenn Sie einen Ablauf für den Rechnungsdruck haben, muss bei den Kunden, die E-Rechnungen wollen - erkennbar daran, dass sie eine EBillAccountID haben - der Ablauf auf einen andere Schiene verzweigen. Ich gehe davon aus, dass wir die PDFs dem XML beilegen:

E-Rechnungen einreichen

Bevor Sie damit auf die Postfinance losgehen und gebührenbelastete Rückweisung riskieren, prüfen Sie die XML-Dateien wenigstens stichprobenweise und ganz bestimmt beim ersten Mal mit einem XML-Programm oder Online-Validierungsdienst.
Den habe ich im Layout RechnungDetail im Register "Validator" eingebaut. Der Skriptknopf "Validieren mit xmlvalidator.org" versucht die Prüfung mit Hilfe des Plugins MBS im Webviewer vorzunehmen. Beachten Sie, dass der Aufruf der Seite und die Validierung etwas Zeit brauchen. Achten Sie auf die Statusleiste unten im Webviewer.

Es gibt verschiedene Wege, die XMLs nun der Postfinance zu übergeben. Sie haben alle gemeinsam, dass diese Filemakerlösung keinen davon beschreitet. Sie müssen die Dateien selbst hochladen. Die Postfinance empfiehlt ihr "Business Interface".

Protokoll auswerten

Beehrt die Postfinance Sie mit einer Protokolldatei, legen Sie sie an einen Ort, den Sie wiederfinden, gehen Sie in der E-Rechnungsdatei ins Layout "Protokolldateien" und drücken Sie auf "Neue Protokolldatei einlesen". Das Skript fragt nach dem Speicherort und zeigt Ihnen dann, was drin steht.

Viel Glück und Erfolg!

Hier geht's zum Entwickler

Zur Seite mit den Filemaker-Lösungen von CLK

Zur Heimseite von CLK


Best viewed with any browser Valid HTML 4.01!