[gnucash-de] generic-exporter, Konzeptansatzfür mehrOnline-Integration
C. Gatzemeier
c.gatzemeier at tu-bs.de
Sam Jun 21 00:27:56 CDT 2003
Hallo Liste!
Es gibt im Wiki eine Seite mit Ideen für gewünschte und/oder sinnvolle
Features die vielleicht mal aufgegriffen werden könnten.
Viele der beschriebenen Features könnten wahrscheinlich mit einem Schlag
(allerdings einem etwas kräftigerem) erledigt werden wenn man komplementär
zum Importer einen Exporter implementieren würde.
Außerdem könnte damit die "Bankinteraktion" in GnuCash weiter integriert
werden.
Ich habe die Weiterentwicklungseite im Wiki mal bearbeitet und die Idee zum
'''generic-exporter ''' etwas konkretisiert. Es wäre natürlich interessant
welche anderen ideen es noch so gibt.
Hier die Ideen zur Diskussion, weiterehin kann und soll das Konzept natülich
im Wiki weiter verfeinert werden.
http://www.linuxwiki.de/GnuCash/WeiterEntwicklung
Der generic-exporter müsste
* Buchungen die in GnuCash stehen und als unerledigter "Online Auftrag"
markiert sind lesen,
* Konto, BLZ, Empfänger, Ausführungsdatum und Betrag aus den GnuCash
Datenfeldern extrahieren und
* an OpenHBCI (bzw. einer anderem Bankschnittstelle (Datenträger,
Webinterface, etc)) übergeben.
* Den Status der Buchung in GnuCash entspechend auf in Arbeit oder
Ausgeführt setzen.
'''Realisierungsideen:'''
Also der Exporter sucht nach Buchungen die er zur Bankschnittstelle übergeben
soll. Das sind die jenigen in dessen
1. Aktionsfeld ein Geschäftsvorfall steht das er interprtieren kann z.B.
"Überweisung" oder "Lastschrift"
2. Status noch "zu senden" ist.
Dazu müsste natürlich evtl. der Wertebereich des Statusfeldes in GnuCash
erweitert werden.
Zusätzlich bräuchte man wohl noch mindestens einen zusätzlichen Status
s="senden online" oder so, zu den vorhandenen n="noch nicht bestätigt" und
b="bestätigt".
Die gefundenen Buchungen müssen nun interpretiert werden.
Ein Problem stellt sicher der Unterschied der Datenfelder zwischen GnuCash und
der Bankschnittstelle dar.
'''CS:''' Man vergleiche
http://openhbci.sourceforge.net/doc/api/classHBCI_1_1Transaction.html mit den
dokumentierten Zugriffs-Funktionen in src/engine/Transaction.h
Unabhängig ob HBCI, Datenträgeraustausch, oder Webinterface, müssen der Bank
Transaktionendaten übergeben werden die in GnuCash nicht explizit vorhanden
sind:
Unkritisch sind Datum, Betrag, Währung und Kontoinhaber.
Doch
* Empfängername
* Empfängerkonto
* Empfängerbank
sind fraglich denn GnuCash kennt nur Beschreibung und Buchungstext
Sofern die Empfängerangaben nicht von sich aus zu parsen sind müssten sie
natürlich idenentifizierbar gemacht werden, indem man sie in einer bestimmten
Art und Weise kenntlich macht. Kontonummer und BLZ lassen sich
schätzungsweise über KtoBLZcheck identifizieren.
Der Exporter müsste also Beschreibung und Buchungstext durchsuchen Z.B.
Beschreibung: "Hans Musterman" Verwendungszweck
Buchungstext: Konto 123456789 Bank 10000000 noch Verwendungszweck
Schlüsselzeichen wären die Anführungszeichen Konto und Bank. Der Rest würde
als Verwendungszweck identifiziert.
mit ktoBLZcheck könnte es auch genügen wenn der Empfängername in
Anführungszeichen steht:
Beschreibung: "Hans Musterman" 123456789 10000000
Buchungstext: Verwendungszweck
Optional könnten die Daten z.B. zur Konfliktauflösung auch explizit angegeben
werden
Beschreibung: "Hans Musterman" Konto(123456789) Bank(10000000)
Buchungstext: Memo(Bankgebühren für erstes Konto) für drei Monate
oder kürzerer Vorschlag:
Beschreibung: Bankgebühren für erstes Konto <# für drei Monate>
Buchungstext: "Hans Musterman" <123456789 at 10000000>
Das müßte nätürlich noch etwas genauer durchgedacht werden (Eindeutigkeit
Sonderzeichen etc.) aber prinzipiell nicht unmachbar.
----
Nun die von Exporter "geschluckten" dann integrierte Feature Wünsche:
* '''Sammlung von HBCI-Aufträgen in einer Job-Liste'''
um sie später gemeinsam [in einem Rutsch kuzzeitig dafür Online gehen, und
mit einer Pin-Abfrage] ausführen zu können.
RS: Die Job-Liste könnte dabei generell alle ausgeführten und noch
auszuführenden Transaktionen beinhalten. Eine noch nicht ausgeführte
Transaktion hätte dann eben einen anderen Status, als eine bereits
ausgeführte Transaktion.
'''CS''': Das Sammeln von Aufträgen und Abschicken in einem Rutsch ist in
OpenHBCI schon längst eingebaut. Es fehlt lediglich das GUI in GnuCash.
Geschätzter Aufwand ca. 8-12 Stunden. Etwas tricksig ist die Frage, wie und
wann zu einem HBCI-Job dann tatsächlich die GnuCash-Buchungen erstellt werden
sollen (beim Auftrag-Sammeln? Beim Abschicken? Nach erfolgreichem
Abschicken?). Da hatte ich auch keine einfache Antwort.
RS: Vielleicht ließen sich dann die erledigten Jobs durch einfaches editieren
wieder zu neuen Jobs umformulieren (Um z. B. fast gleiche oder gleiche
Überweisungen/Lastschriften mehrmals durchfünren zu können)
'''CS''': Nein, das halte ich für keine so gute Idee. Besser einfach so
Buchungs-Vorlagen programmieren, wie oben erwähnt.
'''Mit Exporter:''' Die "Jobs" stünden im Kontobuch mit entsprechendem Status.
Dort können sie bei Bedarf selbstverständlich auch editiert/kopiert werden.
* '''Generierung von sich ständig wiederholenden
Überweisungen/Lastschriften'''
(z. B. Miete).
'''CS''': Die Verwaltung von Daueraufträgen ist in HBCI und OpenHBCI längst
integriert -- GnuCash muß nur ein GUI dafür bieten. Die Speicherung von
Daueraufträgen in GnuCash ist aber etwas unklar. Die Terminierten Buchungen
haben zum einen genug eigene Probleme und zum anderen sind ein stand-alone
Feature, wo der HBCI-Code keine zusätzlichen Datenfelder mit einbauen
darf/kann. Also besser einfach nur eine GUI für die Dauerauftrags-Verwaltung
bauen und sonst keine weitere Integration erwarten.
'''Mit Exporter:''' Könnten Onlineüberweisungen sofort lokal über Terminierte
Buchungen erzeugt werden. Evtl. ließen sich auch Terminierte Buchungen als
Daueraufträge exportieren (one notwendige neue GUI) so das sie zukünftig bei
der Bank gespeichert sind und so automatisch ausgeführt, und über den
Importer wieder eingelesen werden (die einzelnen Buchungen). (Als in den
blauen Himmel geschriebenes Nonplusulta würde ein kleines Häkchen in der
Terminieren Buchung reichen: [x] automatisch von der Bank ausführen lassen)
* '''Adressbuch für Zahlungs- und Lastschriftempfänger'''
Vielleicht liesse sich ja ja das bereits in GNUCash enthaltene Adressbuch
unter "Geschäft --> Kunden" für diesen Zweck etwas aufbohren. Oder ist das
generell für etwas anderes gedacht?
'''Mit Exporter:''' Wäre auch das Quick-fill Feature für Online Geschäftsfälle
nutzbar.
------------
'''CS''' hatte schon eine Anmerkung zum Exporter gemacht:
> Schöne Idee, geht aber leider nicht. HBCI ist ein add-on zu gnucash und wird
> es aus guten Gründen auch immer bleiben. Mehr dazu schrieb ich neulich auf
> gnucash-de:
>
> Lange Antwort: Die Datenstrukturen *sind* unterschiedlich. In HBCI *gibt* es
> mehr einzelne Textfelder als in einer Gnucash-Transaction.
Zugegeben, doch siehe Ideen zur Realisierung.
> Darüberhinaus legt auch noch jede
> HBCI-Bank andere Sachen in den Verwendungszweck-Feldern ab. Es ist schlicht
> von mir geraten, was denn zur Zeit aus den HBCI-Sachen in die (wenigen)
> gnucash-Textfelder übernommen wird.
Das ist doch Sache des Importers und funktioniert doch ganz gut. Außerdem
lässt sich das ja wie du auch schon beschrieben hast schon jetzt nach
belieben (im code) ändern.
Der Exporter so wie unten beschrieben könnte sogar Buchungen exportierten die
vom derzeitigen importer importiert wurden (man müßte sie nur Duplizieren und
dan das Aktionsfeld und den Status setzen.
> Das gnucash-Feld "Aktion" wird von mir
> nicht genutzt, da es eh nirgendwo in gnucash gescheit implementiert ist.
Gut, doch das schließt nicht aus, dass man es nicht gescheit implementieren
könnte oder. ;-)
> Zusätzlich ist HBCI *immer* nur ein add-on Modul zu gnucash. Alle Funktionen
> davon sind nur über Menüpunkte zugänglich. Alle zusätzlichen Daten, die HBCI
> betreffen, sind in den Konten oder Transactions als zusätzlihe Daten
> gespeichert. Quickfill etc. bezieht sich immer nur auf die "nativen"
> GnuCash-Daten, (bisher) niemals auf Daten von add-on Modulen.
Das ist interessant, d.h. die Zuordnung zum HBCI Konto ist ein extra Datum im
GnuCash Konto?
Der Beschriebene generic-exporter wäre ja auch ein add-on modul. Wenn er
global (ein Durchlauf für alle Konten) arbeiten würde z.B. in der
Kontoübersicht unter Aktionen im Menü zu finden. Die zu exportiernden Daten
fänden sich aber selbstverständlich in den "nativen" GnuCash-Daten.
Gruß
Christian