2008-10-01

jGnucashLib - Java-Gnucash Bibliothek, Viewer und scriptbarer Editor mit Plugins

Hallo,

euch könnte interessieren, daß Version 2.0.0 von jGnucashLib fertig ist.
(eigentlich sogar 2.0.3)

http://apps.sourceforge.net/mediawiki/jgnucashlib/index.php?title=Main_Page

Früher konnte man mit der GPL-Version nur Gnucash-Dateien durch
eigene Java-Programme lesen. Jetzt gibt es wesentlich mehr:

* jGnucashLib kann lesen und schreiben und nutzt die Features von Java6.
(Um eigene Programme zu schreiben, die Gnucash lesen und schreiben sollen)
Bei Änderungen an einer Gnucash-Datei bleiben incl. Zeilenumbrüchen
alle nicht geänderten Teile erhalten. Die Bibliothek hat sich im
jahrelangen Einsatz
als sicher bewiesen.
Wer dem nicht traut: Ein Text-diff zwischen original und mit dieser Bibliothen
veränderter Datei (nach einem gunzip natürlich) ergiebt eine einfach
für Menschen
mit XML-Erfahrung verständliche Ausgabe.

* jGnucashViewer ist ein Standalone-Viewer als direkt ausführbare Jar-Datei.

* Bei jGnucasEditor wird es spannend.
Der Editor ist definitiv nicht als Ersatz für Gnucash gedacht sondern
als sehr grundlegender Editor, welcher eine Hülle für Plugins und Scripte
bietet um Fibu-Aufgaben zu automatisieren.
Das bisher wichtigste Plugin dafür ist das HBCI-Plugin:

HBCI-Buchungen werden nicht einfach nur auf ein Gnucash-Konto
eingetragen, welches das Bank-Konto representiert und gehen alle nach
"Ausgleichskonto-EUR" sondern man kann für wiederkehrende Buchungen
Reguläre Ausdrücke und Scripte hinterlegen.

Allgemeines:
* Bereits bestehende Buchungen, welche nur um 1-2 Tage zu früh oder spät
liegen, werden verschoben
* Buchungen, welche in Gnucash aber nicht auf der Bank auftauchen, werden
mit einem TODO in der Beschreibung markiert.
* Buchungen mit einem TODO oder NAK sowie mit OK und nicht ausgeglichene
Buchungen werden verscheiden markiert.
* Nach jedem Tag, für den Buchungen importiert wurden, wird eine leere
Buchung in das Ausgleichskonto eingefügt, welche in der Beschreibung das
erwartete Saldo laut HBCI, das tatsächliche Saldo laut Gnucash und die
potentielle Differenz nennt. (Zum einfachen Abgleich)
* importierte Buchungen tragen die original-Daten aus HBCI als nicht sichtbare
Attribute, so daß sie in einem späteren Import eindeutig einer Bank-Buchung
zugeordnet werden können. (Daten bleiben bei Bearbeitung mit Gnucash
erhalten.)

Scripte:
* Jedes Script hat einen regulären Ausdruck und wird für neu zu importierende
Buchungen angewendet, welche auf diesen Ausdruck passen.
(z.B. ".*ARAL.*" -> Buche Vorsteuer und Netto-Betrag auf 2 bestimmte Konten)
* Für ganz einfache Fälle kann man in einer Config statt einem Script
auch einfach
nur ein alternatives Ziel-Konto angeben.
* Jede der Unmengen an Script-Sprachen, welche Java mit JSR223 unterstützt
sind möglich. (Default ist Javascript aber auch PHP, Python, Perl, ...
geht alles)
* Scripte können uneingeschränkt auf die gnucash-Datei und externe
Daten zugreifen
(z.B. herausfinden ob und wie viel Rücklagen für eine Bestellung
gebildet wurden
oder bei einer erkannten Nachnahme-Zahlung auf externen Website den
Bestell-Status ändern)

Script-Editor:
* Es steht ein Script-Editor bereit, der auf Wunsch hoch kommt, wenn für eine
Buchung kein bestehendes Script passt und man wählt, daß man ein neues
erstellen möchte.
* Der Editor markiert den regulären Ausdruck farblich, je nachdem ob er zu der
aktuellen Buchung matched oder nicht
* Der Editor kann das Script Test-Laufen, d.h. auf einer leeren
Gnucash-Datei auf der
jedes Konto, welche das Script mit getAccountbyID oder getAccountbyName
holen will automatisch angelegt wird. Die Ergebniss-Buchungen erscheinen dann
neben dem Editor zur Kontrolle


Beispielanwendungen für bestehende Plugins:
* bekannte, wiederkehrende Ausgaben/Einnahmen-Buchungen gleich mit der korrekten
Umsatzsteuer buchen
* Abbuchungen des Fianzamtes entsprechend dem Buchungstext in
Einkommenssteuer, Umsatzsteuer und Soli aufspalten und als eine
Split-Buchung anlegen
(funktioniert hier super)
* Wiederkehrende Abbuchungen für Versicheurngen automatisch buchen
(incl. Aufteilung falls mehrere Versicherungen gesammelt abgebucht wurden)

Beispielanwendungen für geplante Plugins:
* hereinkommende PDF oder Text -Rechnungen, Paypal/ebay-Emails,
Kreditkarten-Abrechnungen,...
parsen und mit minimalem, manuellem Aufwand verbuchen
* Inventur-Differenzen automatisiert verbuchen
* den Fibu-Teil von Ebay-Bestellungen automatisieren


Viel Spaß damit,
Marcus Wolschon
Kommentar veröffentlichen