Difference between revisions of "List of external software interfaces"

From GnuCash
Jump to: navigation, search
(Removing See also section because the referenced pages are not directly relevant to the subject of this wiki page)
m (Replace www.gnucash.org with template.)
Line 16: Line 16:
 
* direct data manipulation
 
* direct data manipulation
 
** XML ([[GnuCash XML format]])
 
** XML ([[GnuCash XML format]])
*** "The new <nowiki>[1.6]</nowiki> version uses XML (making it much easier to write independent tools to manipulate GnuCash files) …" [[http://www.gnucash.org/docs/v1.6/C/t2780.html#AEN2783 GnuCash 1.6 User Manual]]
+
*** "The new <nowiki>[1.6]</nowiki> version uses XML (making it much easier to write independent tools to manipulate GnuCash files) …" [[{{WebURL}}/docs/v1.6/C/t2780.html#AEN2783 GnuCash 1.6 User Manual]]
 
*** "[''modifying'' the XML is] risky and not recommended" (see [[FAQ#Q: Is there a way to merge two accounts into one? That is, move all transactions from one account into another? That would save a lot of time compaired to moving each transaction!|FAQ]])
 
*** "[''modifying'' the XML is] risky and not recommended" (see [[FAQ#Q: Is there a way to merge two accounts into one? That is, move all transactions from one account into another? That would save a lot of time compaired to moving each transaction!|FAQ]])
 
** [[SQL]]: A generalized backend that supports [http://www.sqlite.org/ SQLite3], [http://www.mysql.com/ MySQL], and [http://www.postgresql.org/ PostgresQL]. This still has some issues with not saving all data in a few corner cases, largely due to flaws in GnuCash's data layer design. Directly querying the database is difficult for anything but the simplest queries, and correctly updating the database without using the GnuCash API is nearly impossible.
 
** [[SQL]]: A generalized backend that supports [http://www.sqlite.org/ SQLite3], [http://www.mysql.com/ MySQL], and [http://www.postgresql.org/ PostgresQL]. This still has some issues with not saving all data in a few corner cases, largely due to flaws in GnuCash's data layer design. Directly querying the database is difficult for anything but the simplest queries, and correctly updating the database without using the GnuCash API is nearly impossible.

Revision as of 20:56, 19 February 2023

This article lists past and present external software interfaces of GnuCash, and suggests possible additional interfaces. It was started to figure out how one can "plug in" to gnucash.

This article is just descriptive, and neither normative nor authoritative.

Current interfaces

  • QIF/OFX/HBCI import (src/import-export (1.8); src/import-export (1.9))
    • From files: There are two different implementations of importing possibilities in gnucash. One is for QIF, the other for OFX and HBCI/AqBanking.
    • OFX Direct Connect via AqBanking library http://www.aquamaniac.de/aqbanking. Aqbanking has also additional import/export facilities which are currently not yet implemented in gnucash, but are almost finished for a MT940 file import. (Note: HBCI and Aqbanking are used interchangeably because the predecessor of Aqbanking only supported the German online banking protocol HBCI, but Aqbanking now supports not only this but additionally other means of online banking protocols plus file importing.)
    • HBCI
    • Bugs for general import, including HBCI/AqBanking import issues [3]
  • direct data manipulation
    • XML (GnuCash XML format)
      • "The new [1.6] version uses XML (making it much easier to write independent tools to manipulate GnuCash files) …" [[Template:WebURL/docs/v1.6/C/t2780.html#AEN2783 GnuCash 1.6 User Manual]]
      • "[modifying the XML is] risky and not recommended" (see FAQ)
    • SQL: A generalized backend that supports SQLite3, MySQL, and PostgresQL. This still has some issues with not saving all data in a few corner cases, largely due to flaws in GnuCash's data layer design. Directly querying the database is difficult for anything but the simplest queries, and correctly updating the database without using the GnuCash API is nearly impossible.
  • custom reports (in the programming language Scheme)
  • Finance::Quote
  • python-gnucash, a set of Python bindings to the GnuCash libraries
  • gnucash-perl, experimental Perl modules to interface the GnuCash file
  • jgnucashlib, Java library for manipulating the GnuCash file (also has database connectors)
  • PyGncLib, python xml bindings and scripts for manipulating the GnuCash xml file

Legacy/unsupported interfaces

These interfaces were supported in prior versions of GnuCash.