Difference between revisions of "List of external software interfaces"

From GnuCash
Jump to: navigation, search
(reorg; mv'd your text to Talk; sorry if overstepping any bounds.. intentions good)
(more comments)
Line 1: Line 1:
:'''Warning: this article is ''descriptive'', and neither ''normative'' nor ''authoritative.'''''
+
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 lists past and present external software interfaces of [[GnuCash]], and suggests possible additional interfaces.
+
'''This article is just ''descriptive'', and neither ''normative'' nor ''authoritative.'''''
  
 
==Current interfaces==
 
==Current interfaces==
 
* [[Wikipedia:Quicken Interchange Format|QIF]]/[[Wikipedia:Open Financial Exchange|OFX]] import
 
* [[Wikipedia:Quicken Interchange Format|QIF]]/[[Wikipedia:Open Financial Exchange|OFX]] import
** from files
+
** From files: There are two different implementations of importing possibilities in gnucash. One is for QIF, the other for OFX and HBCI/AqBanking.
 
*** CSV/TSV/[[Wikipedia:Microsoft Excel|XLS]]/[[Wikipedia:OpenDocument|ODS]] → QIF conversion (see [[FAQ#Q: How do I convert from CSV, TSV, XLS (Excel), or SXC (!OpenOffice.org Calc) to a QIF?]])
 
*** CSV/TSV/[[Wikipedia:Microsoft Excel|XLS]]/[[Wikipedia:OpenDocument|ODS]] → QIF conversion (see [[FAQ#Q: How do I convert from CSV, TSV, XLS (Excel), or SXC (!OpenOffice.org Calc) to a QIF?]])
*** OFX
+
*** See bugs for QIF import: [http://bugzilla.gnome.org/buglist.cgi?product=GnuCash&bug_status=NEW&bug_status=REOPENED&bug_status=ASSIGNED&bug_status=UNCONFIRMED&component=QIF%20Import]
 +
*** OFX import from file
 +
**** bugs for OFX import: [http://bugzilla.gnome.org/buglist.cgi?product=GnuCash&bug_status=NEW&bug_status=REOPENED&bug_status=ASSIGNED&bug_status=UNCONFIRMED&component=OFX%20Import]
 
**** [http://libofx.sourceforge.net/ libofx]
 
**** [http://libofx.sourceforge.net/ libofx]
** [[FAQ#Q:_My_bank_offers_OFX_Direct_Connect.__How_do_I_use_that.3F|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.
+
** [[FAQ#Q:_My_bank_offers_OFX_Direct_Connect.__How_do_I_use_that.3F|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.)
 +
** Bugs for general import, including HBCI/AqBanking import issues [http://bugzilla.gnome.org/buglist.cgi?product=GnuCash&bug_status=NEW&bug_status=REOPENED&bug_status=ASSIGNED&bug_status=UNCONFIRMED&component=Import]
 
* direct data manipulation
 
* direct data manipulation
** XML <!-- todo: link to schema/DTD or equivalent -->
+
** XML; there is currently no valid schema/DTD existing for the current XML file format. The existing DTDs in gnucash are outdated and do not describe the current file format correctly.
 
*** "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) …" [[http://www.gnucash.org/docs/v1.6/C/t2780.html#AEN2783 GnuCash 1.6 User Manual]]
 
*** "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]])
 
*** "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]])
** PostgreSQL <!-- todo: link to SQL DDL or equiv. -->
+
** PostgreSQL <!-- todo: link to SQL DDL or equiv. --> The postgreSQL backend is not actively maintained and has several serious issues [http://bugzilla.gnome.org/buglist.cgi?product=GnuCash&bug_status=NEW&bug_status=REOPENED&bug_status=ASSIGNED&bug_status=UNCONFIRMED&component=SQL%20Backend]
* QOF access to the data file. I hope http://qof.sourceforge.net does offer some documentation about how this is intended to work, but I don't understand it so far.
+
* QOF access to the data file. I hope http://qof.sourceforge.net does offer some documentation about how this is intended to work, but I don't understand it so far. For some part it could be used as a command-line utility to import and export various data parts into and from the gnucash file.
* custom reports ([[Wikipedia:Scheme|Scheme]])
+
* custom reports (in the programming language [[Wikipedia:Scheme|Scheme]])
* <code>Finance::Quote</code> <!-- maybe this doesn't belong in this list.. is it intended to be extensible? -->
+
* <code>Finance::Quote</code> <!-- maybe this doesn't belong in this list.. is it intended to be extensible? Yes it is -->
  
 
==Legacy/unsupported interfaces==
 
==Legacy/unsupported interfaces==
Line 59: Line 62:
 
};</pre>
 
};</pre>
 
* linkable [[Wikipedia:library (computer science)|library]] (see also [[WishList#Export an API]])
 
* linkable [[Wikipedia:library (computer science)|library]] (see also [[WishList#Export an API]])
 +
*** Note that the modular structure of gnucash "almost" already offers this -- the "engine" module is pretty much exactly this kind of API. Except that nobody recently tried to use it from anywhere outside of gnucash.
 
** for communicating with a running GnuCash instance
 
** for communicating with a running GnuCash instance
 
** for manipulation of GnuCash database or XML file directly
 
** for manipulation of GnuCash database or XML file directly

Revision as of 12:52, 23 February 2006

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 import
    • 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.)
    • Bugs for general import, including HBCI/AqBanking import issues [3]
  • direct data manipulation
    • XML; there is currently no valid schema/DTD existing for the current XML file format. The existing DTDs in gnucash are outdated and do not describe the current file format correctly.
      • "The new [1.6] version uses XML (making it much easier to write independent tools to manipulate GnuCash files) …" [GnuCash 1.6 User Manual]
      • "risky and not recommended" (see FAQ)
    • PostgreSQL The postgreSQL backend is not actively maintained and has several serious issues [4]
  • QOF access to the data file. I hope http://qof.sourceforge.net does offer some documentation about how this is intended to work, but I don't understand it so far. For some part it could be used as a command-line utility to import and export various data parts into and from the gnucash file.
  • custom reports (in the programming language Scheme)
  • Finance::Quote

Legacy/unsupported interfaces

These interfaces were supported in prior versions of GnuCash.

Prospective interfaces

The main place for submitting enhancement requests is the Bugzilla database. Feel free to collect anything you want here on this page, especially any kind of overview, but please keep in mind that single issues are followed by the developers in Bugzilla much more closely.

  • CORBA, to communicate with a running GnuCash instance. E.g., a running GnuCash incarnates a CORBA object of type:
interface GnuCash // simplified
{
  exception GnuCashException

  typedef string Guid;

  struct Split
  {
    Guid id;
    boolean reconciledState;
    string value;
    string quantity;
    Guid account;
  };

  typedef sequence<Split> SplitSeq;

  struct Transaction
  {
    Guid id;
    string datePosted;
    string dateEntered;
    string description;
    SplitSeq splits;
  };

  void submitTransaction(in Transaction t)
    raises (GnuCashException);
};
  • linkable library (see also WishList#Export an API)
      • Note that the modular structure of gnucash "almost" already offers this -- the "engine" module is pretty much exactly this kind of API. Except that nobody recently tried to use it from anywhere outside of gnucash.
    • for communicating with a running GnuCash instance
    • for manipulation of GnuCash database or XML file directly

See also