Difference between revisions of "AqBanking3 Porting"

From GnuCash
Jump to: navigation, search
(Tasks: Add testing task)
(Further notes)
Line 43: Line 43:
 
** http://article.gmane.org/gmane.comp.finance.aqbanking.devel/1704
 
** http://article.gmane.org/gmane.comp.finance.aqbanking.devel/1704
  
The porting is work in progress and can be helped with, followed and tested on the [http://svn.gnucash.org/trac/browser/gnucash/branches/aqbanking3 aqbanking3 branch].
+
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 11:19, 20 July 2008

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.

These are notes on which tasks need to be completed in order to achieve a full porting to aqbanking3:

Already done

  • 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 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 gnucash-de@lists.gnucash.org (english is also okay in this case).

Further notes

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 list is greatly appreciated!