Difference between revisions of "AqBanking3 Porting"

From GnuCash
Jump to: navigation, search
(Already done)
Line 10: Line 10:
 
* 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.
 
* 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 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.
 
== Tasks ==
 
=== Large tasks ===
 
* 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.
 
=== Small tasks ===
 
 
* 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 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.
 
* 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.
 
* 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.
 +
 +
== Tasks ==
 +
* Transactions, Internal Transactions, Direct Debits
 +
* MT940 Import, MT942 Import, DTAUS Import and Send
  
 
== Further notes ==
 
== Further notes ==
Line 25: Line 23:
 
** http://www.mail-archive.com/aqbanking-devel@lists.sourceforge.net/msg00955.html
 
** http://www.mail-archive.com/aqbanking-devel@lists.sourceforge.net/msg00955.html
 
** 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].

Revision as of 01:23, 13 April 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.

Tasks

  • Transactions, Internal Transactions, Direct Debits
  • MT940 Import, MT942 Import, DTAUS Import and Send

Further notes

The porting is work in progress and can be helped with, followed and tested on the aqbanking3 branch.