Difference between revisions of "List of external software interfaces"

From GnuCash
Jump to: navigation, search
(more information)
(reorg; mv'd your text to Talk; sorry if overstepping any bounds.. intentions good)
Line 1: Line 1:
:Note: The main place for submitting enhancement requests is the bugzilla database, see [[Bugzilla]]. 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.
+
:'''Warning: this article is ''descriptive'', and neither ''normative'' nor ''authoritative.'''''
  
:Also: Can you please state the purpose of this page a bit more clearly? Should this be a status report of the currently existing interfaces? Or do you want to collect all interfaces that someone could imagine? In the latter case, I'd strongly suggest that you make it really totally obvious whether these 1. are currently existing and working, 2. used to exist and might be reactivated with moderate effort, or 3. are totally new features which would require really a lot of work. If you add descriptions like these as far as you know then, I'd gladly fill in the rest. --[[User:Cstim|Cstim]] 04:33, 23 February 2006 (EST)
+
This article lists past and present external software interfaces of [[GnuCash]], and suggests possible additional interfaces.
  
This article lists past and present external software interfaces of [[GnuCash]], and suggests possible additional interfaces.  In-process extensibility features are not listed (e.g. custom Scheme reports).
+
==Current interfaces==
 
 
* [[Wikipedia:remote procedure call|RPC]] (bitrotted [http://lwn.net/Articles/43856/])
 
* [[Wikipedia:Perl|Perl]] bindings (bitrotted [http://lwn.net/Articles/43856/])
 
 
* [[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
Line 14: Line 11:
 
** [[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.
 
* direct data manipulation
 
* direct data manipulation
** XML, "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]])
+
** XML <!-- todo: link to schema/DTD or equivalent -->
** PostgreSQL
+
*** "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]])
 +
** PostgreSQL <!-- todo: link to SQL DDL or equiv. -->
 
* 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.
 +
* custom reports ([[Wikipedia:Scheme|Scheme]])
 +
* <code>Finance::Quote</code> <!-- maybe this doesn't belong in this list.. is it intended to be extensible? -->
 +
 +
==Legacy/unsupported interfaces==
 +
These interfaces were supported in prior versions of GnuCash.
 +
 +
* [[Wikipedia:remote procedure call|RPC]] (bitrotted [http://lwn.net/Articles/43856/])
 +
* [[Wikipedia:Perl|Perl]] bindings (bitrotted [http://lwn.net/Articles/43856/])
 +
 +
==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.
  
==Wish list==
 
 
* [[Wikipedia:CORBA|CORBA]], to communicate with a running GnuCash instance.  E.g., a running GnuCash incarnates a CORBA object of type:
 
* [[Wikipedia:CORBA|CORBA]], to communicate with a running GnuCash instance.  E.g., a running GnuCash incarnates a CORBA object of type:
 
<pre>interface GnuCash // simplified
 
<pre>interface GnuCash // simplified
Line 49: Line 58:
 
     raises (GnuCashException);
 
     raises (GnuCashException);
 
};</pre>
 
};</pre>
* linkable [[Wikipedia:library (computer science)|library]]
+
* linkable [[Wikipedia:library (computer science)|library]] (see also [[WishList#Export an API]])
 
** 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 10:43, 23 February 2006

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.

Current interfaces

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)
    • for communicating with a running GnuCash instance
    • for manipulation of GnuCash database or XML file directly

See also