Warenkorb
0
Wagen 0
Telefonische Beratung +49 (0) 441-30 43 76 40
Die Erstellung und der Versand von elektronischen Rechnungen im ZUGFeRD- oder Factur-X-Format sind in vielen Branchen mittlerweile ein Standard. Um diesen Prozess zu automatisieren und zu vereinfachen, können Sie FileMaker und das Mustang Project in Verbindung mit JSON als Austauschformat nutzen. Diese Anleitung zeigt Ihnen Schritt für Schritt, wie Sie eine elektronische Rechnung mit FileMaker erstellen, diese in JSON exportieren, mit dem Mustang Project in eine ZUGFeRD-konforme PDF umwandeln und schließlich versenden können.
Das Mustang Project ist eine Open-Source-Java-Bibliothek, die es ermöglicht, elektronische Rechnungen im ZUGFeRD- und Factur-X-Format zu erstellen und zu verarbeiten. Um diese Bibliothek auf einem Apple Mac oder einem Windows-PC zu nutzen, müssen einige Schritte durchgeführt werden, darunter die Installation von Java, das Herunterladen der Mustang Project-Bibliothek und die Einrichtung der Entwicklungsumgebung.
Inhaltsverzeichnis
Das Mustang Project wurde entwickelt, um die Erstellung und Verarbeitung von ZUGFeRD- und Factur-X-konformen Rechnungen zu unterstützen. Diese Rechnungsformate kombinieren PDF-Dokumente mit maschinenlesbaren XML-Daten, die sowohl von Menschen als auch von automatisierten Systemen verarbeitet werden können. ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) und Factur-X sind standardisierte Formate, die vor allem in Deutschland und Frankreich verwendet werden, um den Rechnungsprozess zwischen Unternehmen und Behörden zu vereinfachen.
Das Mustang Project ist eine Java-basierte Bibliothek, die entwickelt wurde, um die Einbettung von ZUGFeRD- und Factur-X-Daten in PDF-Rechnungen zu ermöglichen. Es bietet eine Vielzahl von Funktionen, die es Entwicklern ermöglichen, elektronische Rechnungen zu erzeugen, die den aktuellen rechtlichen und technischen Standards entsprechen.
Das Mustang Project wird von einer Open-Source-Community entwickelt und gepflegt, die sich auf die Förderung des elektronischen Rechnungsaustauschs konzentriert. Die Initiative wird von Konik.io unterstützt, einer Plattform, die Werkzeuge für die automatisierte Rechnungsverarbeitung bereitstellt. Die Entwicklergemeinschaft besteht aus Experten auf dem Gebiet der elektronischen Rechnungen, die es sich zur Aufgabe gemacht haben, eine leistungsfähige und kostenlose Lösung für Unternehmen jeder Größe anzubieten.
Die Open-Source-Natur des Projekts ermöglicht es jedem, zur Weiterentwicklung der Bibliothek beizutragen. Gleichzeitig können Unternehmen und Entwickler die Bibliothek kostenfrei nutzen, um eigene Lösungen für den elektronischen Rechnungsaustausch zu entwickeln.
Eine der Hauptstärken des Mustang Projects liegt in seiner Flexibilität. Die Bibliothek kann in verschiedene Umgebungen integriert werden, darunter auch FileMaker. FileMaker-Nutzer, die Rechnungen generieren und diese als elektronische ZUGFeRD- oder Factur-X-Rechnungen ausgeben möchten, können das Mustang Project nutzen, um diese Prozesse zu automatisieren. Hier sind einige der wichtigsten Möglichkeiten, die das Mustang Project in Verbindung mit FileMaker bietet:
Mit FileMaker können Unternehmen Rechnungsdaten speichern, verwalten und verarbeiten. Durch die Integration des Mustang Projects ist es möglich, diese Rechnungsdaten in standardisierte elektronische Rechnungen zu konvertieren, die den Anforderungen von ZUGFeRD und Factur-X entsprechen. Der Ablauf könnte beispielsweise so aussehen:
Durch die Automatisierung dieses Prozesses können Unternehmen nicht nur Zeit sparen, sondern auch sicherstellen, dass ihre Rechnungen den geltenden Standards entsprechen.
Neben der Erstellung von Rechnungen ermöglicht das Mustang Project auch die Verarbeitung von empfangenen elektronischen Rechnungen. Wenn ein Unternehmen eine ZUGFeRD- oder Factur-X-Rechnung erhält, kann diese mit dem Mustang Project eingelesen und die relevanten XML-Daten extrahiert werden. Diese Daten können dann direkt in FileMaker importiert und zur weiteren Verarbeitung genutzt werden, beispielsweise für die Buchhaltung oder das Bestandsmanagement.
Dies schafft die Möglichkeit, den Rechnungsprozess zu automatisieren und Fehler bei der manuellen Dateneingabe zu reduzieren. FileMaker kann die XML-Daten extrahieren, in die entsprechenden Datenbankfelder einspeisen und so den Workflow effizienter gestalten.
Da das Mustang Project als Open-Source-Lösung kostenlos zur Verfügung steht, bietet es vor allem kleinen und mittleren Unternehmen eine kosteneffiziente Möglichkeit, elektronische Rechnungen zu implementieren. Der Verzicht auf teure proprietäre Softwarelösungen ermöglicht es Unternehmen, den elektronischen Rechnungsaustausch zu modernisieren und gleichzeitig Kosten zu sparen.
FileMaker, als flexible und benutzerfreundliche Plattform, ermöglicht es Unternehmen, ihre eigenen individuellen Lösungen zur Rechnungsverarbeitung zu entwickeln und das Mustang Project nahtlos zu integrieren.
Dank der Offenheit und Flexibilität von FileMaker und dem Mustang Project können Unternehmen ihre Lösungen genau an ihre spezifischen Anforderungen anpassen. Das Mustang Project kann so konfiguriert werden, dass es die spezifischen Geschäftsprozesse des Unternehmens unterstützt, während FileMaker als zentrale Datenbank- und Automatisierungsplattform dient.
Beispielsweise könnte ein Unternehmen, das in einer bestimmten Branche tätig ist, bestimmte Informationen in die ZUGFeRD-Rechnung einbetten oder spezielle Anpassungen für internationale Rechnungen vornehmen. Durch den Einsatz von FileMaker und Mustang Project ist es möglich, diese Anforderungen in einer maßgeschneiderten Lösung zu implementieren.
Die Integration mit FileMaker eröffnet zahlreiche Möglichkeiten, um den Rechnungsworkflow zu automatisieren, die Effizienz zu steigern und Fehler zu minimieren. Für Unternehmen, die ihre Rechnungsprozesse digitalisieren möchten, bietet die Kombination von FileMaker und Mustang Project eine ideale Plattform zur Umsetzung dieser Ziele. Egal ob es um die Erstellung von Rechnungen, den Empfang von Rechnungen oder die Anpassung an branchenspezifische Anforderungen geht – das Mustang Project bietet eine flexible und zukunftssichere Lösung.
Erstellen Sie eine einfache Rechnung mithilfe der Mustang Project-Bibliothek. Erstellen Sie eine Datei namens ZUGFeRDTest.java mit dem folgenden Inhalt:
import org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromA3;
public class ZUGFeRDTest {
public static void main(String[] args) {
try {
ZUGFeRDExporterFromA3 exporter = new ZUGFeRDExporterFromA3();
exporter.load("input.pdf");
exporter.export("output_with_zugferd.pdf");
System.out.println("Rechnung erfolgreich erstellt.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Speichern Sie die Datei im selben Verzeichnis wie die JAR-Datei.
Navigieren Sie im Terminal zu Ihrem Verzeichnis:
cd ~/Documents/mustang_project
Kompilieren Sie das Java-Programm:
javac -cp mustangproject.jar ZUGFeRDTest.java
Führen Sie das Java-Programm aus:
java -cp .:mustangproject.jar ZUGFeRDTest
Achten Sie darauf, dass in macOS : als Trennzeichen verwendet wird, um mehrere Pfade zu trennen. Wenn alles korrekt eingerichtet ist, sollten Sie sehen, dass die PDF-Rechnung erfolgreich erstellt wurde.
Zunächst müssen Sie zwei Tabellen in FileMaker erstellen, in der Sie die Rechnungs- und Positionsdaten speichern. Die beiden Tabellen werden über die Rechnungsnummer miteinander verknüpft (1:n). Wenn Sie bereits eine FileMaker-Lösung mit entsprechenden Tabellen haben, können Sie diesen Schritt überspringen.
Im folgenden finden Sie die grundlegenden Felder, die Sie für die Erstellung einer Rechnung benötigen:
Sie sollten Ihre Rechnungsdaten in eine JSON-Struktur umwandeln, die als Austauschformat zwischen FileMaker und dem Mustang Project dient. Verwenden Sie die JSONSetElement-Funktion von FileMaker, um die Daten zu formatieren.
Zuerst erstellen Sie in der Rechnungspositionen-Tabelle ein Formelfeld, das für jede Position das JSON-Objekt enthält. Nennen wir das Feld z.B. Position_JSON.
Berechnungsdefinition für das Feld Position_JSON in der Rechnungspositionen-Tabelle:
JSONSetElement ( "{}" ;
["description"; Positionen::Beschreibung ; JSONString] ;
["quantity"; Positionen::Menge ; JSONNumber] ;
["price"; Positionen::Preis ; JSONNumber]
)
Diese Berechnung erstellt ein JSON-Objekt für jede Rechnungsposition mit den Attributen description, quantity, und price.
In der Rechnungstabelle verwenden Sie nun die List-Funktion, um alle Positionen zusammenzuführen. Dies wird in der Hauptberechnung als Array von JSON-Objekten unter dem Key „items“ eingefügt.
Hauptberechnungsformel in der Rechnungstabelle:
Variable setzen [$json; Wert:
JSONSetElement ( "{}" ;
["invoice_number"; Rechnungen::Rechnungsnummer ; JSONString] ;
["invoice_date"; Rechnungen::Rechnungsdatum ; JSONString] ;
["customer";
JSONSetElement ( "{}" ;
["name"; Rechnungen::Name ; JSONString] ;
["address"; Rechnungen::Adresse ; JSONString]
); JSONObject
] ;
["items";
"[" & Austauschen ( Liste ( Rechnungspositionen::Position_JSON ) ; ¶ ; "," ) & "]" ; JSONRaw]
;
["total"; Rechnungen::Gesamtbetrag ; JSONNumber]
)]
Erklärung der Berechnung
Nach der Ausführung dieser Berechnungen erhalten Sie ein vollständig formatiertes JSON-Dokument, das die Rechnung mit den entsprechenden Positionen enthält. Dieses Dokument könnte dann als JSON-Datei exportiert oder weiterverarbeitet werden.
Beispiel für das finale JSON-Dokument
{
"invoice_number": "2024001",
"invoice_date": "2024-08-01",
"customer": {
"name": "Max Mustermann",
"address": "Musterstraße 1"
},
"items": [
{
"description": "Produkt A",
"quantity": 2,
"price": 50.00
},
{
"description": "Produkt B",
"quantity": 1,
"price": 100.00
}
],
"total": 200.00
}
Das Ergebnis dieses Skripts ist eine saubere JSON-Struktur, die alle relevanten Rechnungsinformationen enthält, einschließlich der Artikeldetails.
Sobald die Daten in der Rechnungstabelle vorliegen, müssen Sie eine PDF-Rechnung generieren. Dies geschieht über den FileMaker-Befehl „Datensätze als PDF speichern“. Wir gehen in diesem Beispiel davon aus. dass Sie die Rechnung aus dem Datenbezug der Positionen heraus erzeugen.
Variable setzen [$path; Wert: Get ( TemporaryPath ) & „Rechnung_“ & Rechnungen::Rechnungsnummer & „.pdf“]
Datensätze als PDF speichern [Dialog: Aus; $path; Verzeichnisse erstellen: Aus ; Alle aufgerufenen Datensätze]
Dieses Skript speichert die Rechnung als PDF-Datei im temporären Verzeichnis.
Nun wird das Mustang Project verwendet, um die JSON-Daten zu verarbeiten und die ZUGFeRD-Daten in die PDF einzubetten.
Das Mustang Project ist eine Java-basierte Bibliothek, die Sie verwenden können, um die JSON-Daten in das ZUGFeRD-konforme XML umzuwandeln und in die PDF-Datei einzubetten. Ein einfaches Java-Skript kann die JSON-Daten verarbeiten und die ZUGFeRD-Daten in die PDF-Rechnung integrieren.
import org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromA3;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
// JSON-Daten aus FileMaker erhalten (hier als Beispiel-Hardcode, in der Realität aus einer Datei oder DB)
String jsonString = "{\"invoice_number\": \"2024-001\", \"invoice_date\": \"2024-08-01\", \"customer\": {\"name\": \"Musterkunde\", \"address\": \"Musterstraße 12\"}, \"items\": [{\"description\": \"Beratung\", \"quantity\": 5, \"price\": 100.0}], \"total\": 500.0}";
JSONObject json = new JSONObject(jsonString);
// ZUGFeRDExporter initialisieren
ZUGFeRDExporterFromA3 exporter = new ZUGFeRDExporterFromA3();
// Rechnung (PDF) laden
exporter.load("rechnung.pdf");
// ZUGFeRD-Daten aus JSON extrahieren und setzen
exporter.setZUGFeRDInvoiceDetailsFromJSON(json);
// Exportieren der ZUGFeRD-konformen PDF
exporter.export("rechnung_with_zugferd.pdf");
System.out.println("ZUGFeRD-Rechnung erfolgreich aus JSON-Daten erstellt.");
}
}
Dieses Java-Skript liest die JSON-Daten ein, wandelt sie in ZUGFeRD-XML um und bettet diese Daten in die PDF ein.
Die JSON-Daten, die Sie in FileMaker generiert haben, müssen an das Java-Skript übergeben werden. Dies kann über eine Textdatei geschehen, die FileMaker erstellt, oder direkt über das Kommandozeilenargument des Java-Skripts.
Beispiel: Speichern Sie die JSON-Daten in eine Datei:
Variable setzen [$jsonFilePath; Wert: Get ( TemporaryPath ) & "invoice_data.json"]
Exportiere alle Feldwerte [Rechnungen::JSON_Daten; "$jsonFilePath"]
Im Java-Skript können Sie dann diese Datei einlesen und verarbeiten.
Verwenden Sie ein Shell-Skript oder Batch-Skript, um das Java-Skript aus FileMaker heraus aufzurufen. Dies kann mithilfe des Send Event-Befehls in FileMaker erfolgen.
Beispiel für ein Shell-Skript
#!/bin/bash
java -cp mustangproject.jar org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromA3 -input "/Pfad/zu/rechnung.pdf" -output "/Pfad/zu/rechnung_with_zugferd.pdf" -json "/Pfad/zu/invoice_data.json"
Dieses Shell-Skript führt das Java-Skript aus, das die PDF mit den ZUGFeRD-Daten versieht.
Nachdem die ZUGFeRD-konforme PDF-Rechnung erstellt wurde, können Sie sie über FileMaker direkt an den Kunden per E-Mail versenden.
Verwenden Sie das FileMaker E-Mail-Skript, um die ZUGFeRD-Rechnung als Anhang zu versenden:
E-Mail senden [Über E-Mail-Client; An: Kunden::E-Mail; Betreff: "Ihre Rechnung"; Nachricht: "Sehr geehrter Kunde, anbei erhalten Sie Ihre elektronische Rechnung."; Anhänge: "$path_to_final_pdf"]
Dieses Skript versendet die fertige PDF-Rechnung per E-Mail.
Um aus FileMaker heraus verschiedene ZUGFeRD- und Factur-X-Formate im Mustang Project anzusprechen, erfolgt die Steuerung über den Java-Exporter ZUGFeRDExporterFromA3. Die Auswahl des Formats und Profils (z.B. Basic, Comfort, Extended oder Factur-X EN16931) wird dabei über Methoden wie setProfile() definiert.
Aus FileMaker heraus können Sie mithilfe von Shell-Skripten oder Batch-Dateien den Java-Exporter aufrufen und die gewünschten Parameter für das jeweilige Profil übergeben. Der Ablauf sieht so aus:
Beispiel in Java
exporter.setProfile(ZUGFeRDProfile.BASIC);
Durch die Parameterwahl im Skript wird das gewünschte Format direkt angesprochen.
Das Mustang Project unterstützt mehrere Formate für den Export elektronischer Rechnungen, insbesondere im ZUGFeRD- und Factur-X-Standard. Diese Standards definieren verschiedene Profile, die den Umfang und die Art der eingebetteten Daten bestimmen. Hier ist eine Liste der Hauptformate und Profile, die vom Mustang Project unterstützt werden, sowie deren jeweilige Namen für den Aufruf.
Mit dieser Anleitung können Sie den Prozess der Erstellung und des Versands von elektronischen ZUGFeRD-Rechnungen in FileMaker unter Verwendung des Mustang Projects und JSON als Austauschformat vollständig automatisieren. Durch die Verwendung von JSON als Datenformat wird die Handhabung der Rechnungsdaten vereinfacht und die direkte Arbeit mit XML vermieden. Die Kombination von FileMaker, Java und dem Mustang Project bietet eine flexible und leistungsfähige Lösung für die Verarbeitung von elektronischen Rechnungen.
Die Alternative zur Nutzung des Mustang Projektes zur Erstellung elektronischer Rechnungen ist die direkte Implementierung in FileMaker zur Erzeugung und bei Bedarf zum Einlesen elektronischer Rechnungen. FileMaker stellt alle Scriptbefehle zur Verfügung, um XML-Dateien zu erstellen und zu lesen. Allerdings kann FileMaker keine PDF/A-Dateien im ZUGFeRD-Standard mit Bordmitteln erstellen, dafür wird das MBS FileMaker Plugin und das DynaPDF-Plugin benötigt. Mit dieser Methode hat man insgesamt noch flexiblere Möglichkeiten und kann auch weitere Formate wie z.B. XRechnung oder UBL-Rechnungen integrieren, muss dann aber jedes einzelne XML-Format selbst in FileMaker integrieren.
Hinzufügen von {{itemName}} zum Warenkorb
Hinzugefügt {{EinkaufsName}} zum Warenkorb