Difference between revisions of "AqBanking3 Porting"

From GnuCash
Jump to: navigation, search
(Further notes)
(Port to AqBanking 3.x is done long since...)
Line 1: Line 1:
AqBanking3 (and gwenhywfar3) is the most recent library family for online banking by Martin Preuss. It is not source-compatible to aqbanking2. Hence, the current gnucash only compiles and runs with aqbanking2.
+
AqBanking 3.x (and Gwenhywfar 3.x) is the most recent library family for online banking by Martin Preuss. It is not source-compatible to aqbanking2. Hence, older Gnucash releases did compile and run with AqBanking 2.x.
  
These are notes on which tasks need to be completed in order to achieve a full porting to aqbanking3:
+
This page did describe the necessary changes needed for Gnucash supporting the most recent AqBanking versions.
 
+
Since the release of Gnucash 2.2.7 Gnucash fully supports the newest AqBanking releases. Hence this page is empty now.
== Already done ==
+
If you are interested in the gory details of what has been done already, please checkout [http://wiki.gnucash.org/wiki/index.php?title=AqBanking3_Porting&oldid=4798 this page's history].
* Some functions are merely renamed; in gnc-hbci-utils.h line 32 you just have to activate the #ifdef so that the #defines for the renames are being used.
 
* The AB_Banking_ActivateAllProviders() call is no longer necessary and can disappear.
 
* The functions using GWEN_XML_Parse are no longer necessary - that job is offered by GWEN_Gui_CGui_GetRawText().
 
* Instead of only calling AB_Banking_Init(), we additionally have to call AB_Banking_OnlineInit() if we intend to use the online banking features. The former is needed for when we only use the file import facilities.
 
* The largest sub-task is that aqbanking2 offered in the library a caching of the entered PIN (caching in memory during one session), whereas aqbanking3 doesn't offer this anymore. Hence, gnucash needs to implement such caching itself. In the gnucash-1.8.x series which used the OpenHBCI library (or was it aqbanking1?)  gnucash already had such a caching, but it was deleted subsequently because aqbanking2 did this for us.
 
* Another sub-task is the processing of the data returned from the online jobs. Currently, these are retrieved from the AB_JOB after execution, but in aqbanking3, the AB_JOB won't offer any return data anymore. Instead, the returned data must be retrieved from an AB_IMEXPORTER_CONTEXT. Coincidentally this is already implemented in the file importer submodule of hbci (mt940 import, dtaus import) and only needs to be used from the online-banking parts of the hbci module.
 
* Another sub-task is that the enqueing of online jobs is not anymore done in a queue which is managed by aqbanking, but instead gnucash has to pass one complete AB_JOB_LIST2 with all the jobs (well, usually only one) to aqbanking. Functionally, this isn't any different from what gnucash currently does, but it's a bunch of type and name changes.
 
* Another sub-task is that the GUI callback functions are no longer registered via calls to aqbanking functions, but instead via calls to GWEN_GUI_* functions. Functionally, this isn't any different from what gnucash currently does, but it's a bunch of type and name changes only.
 
* A small task is to hook up our gnucash logging functions into the gwenhywfar logging framework by using GWEN_Gui_LogHook, as Martin pointed out.
 
* Transactions, Internal Transactions, Direct Debits
 
 
 
== Tasks ==
 
=== Implement remaining features ===
 
* MT940 Import
 
* MT942 Import
 
* DTAUS Import and Send
 
=== Testing / Feedback ===
 
As [http://lists.gnucash.org/pipermail/gnucash-de/2008-June/005986.html announced] on the german user mailinglist the current implementation reached a stage where feedback of users is needed.
 
The developers successfully fetched online account balances and transactions, and transferred money.
 
Debit notes should work now too, but are yet completely untested. Currently any AqBanking related import feature is still missing.
 
 
 
If you want to go for a test, you can find patches for Gnucash 2.2.4 and Gnucash 2.2.5 here:
 
:http://micha.lenk.info/g4moupaengecee9c/
 
 
 
You can find also experimental Debian packages here:
 
:http://aqbanking.alioth.debian.org/debian/experimental/
 
 
 
If you prefer the hard way, you can find the development branch here:
 
:http://svn.gnucash.org/repo/gnucash/branches/aqbanking3
 
which you can check out and keep up to date as described on the [[Subversion]] page.
 
 
 
Please send any comments to [mailto:gnucash-de@lists.gnucash.org gnucash-de@lists.gnucash.org] (english is also okay in this case).
 
 
 
== Further notes ==
 
* Some hints were given by Martin here:
 
** http://www.mail-archive.com/aqbanking-devel@lists.sourceforge.net/msg00945.html
 
** http://www.mail-archive.com/aqbanking-devel@lists.sourceforge.net/msg00955.html
 
** http://article.gmane.org/gmane.comp.finance.aqbanking.devel/1704
 
 
 
The porting has happened on the aqbanking3 branch initially, but has been merged back into trunk now and is proposed for a backport to the stable branch for inclusion in GnuCash 2.2.6.
 
 
 
Any testing and reporting on the gnucash-de or gnucash-devel [[Mailing Lists|mailing list]] is greatly appreciated!
 

Revision as of 10:30, 24 March 2009

AqBanking 3.x (and Gwenhywfar 3.x) is the most recent library family for online banking by Martin Preuss. It is not source-compatible to aqbanking2. Hence, older Gnucash releases did compile and run with AqBanking 2.x.

This page did describe the necessary changes needed for Gnucash supporting the most recent AqBanking versions. Since the release of Gnucash 2.2.7 Gnucash fully supports the newest AqBanking releases. Hence this page is empty now. If you are interested in the gory details of what has been done already, please checkout this page's history.