Difference between revisions of "AqBanking3 Porting"

From GnuCash
Jump to: navigation, search
(more notes)
Line 3: Line 3:
 
These are notes on which tasks need to be completed in order to achieve a full porting to aqbanking3:
 
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.
 
* 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.
* Some hints were given by Martin here:
+
* The AB_Banking_ActivateAllProviders() call is no longer necessary and can disappear.
** http://www.mail-archive.com/aqbanking-devel@lists.sourceforge.net/msg00945.html
+
* The functions using GWEN_XML_Parse are no longer necessary - that job is offered by GWEN_Gui_CGui_GetRawText().
** http://www.mail-archive.com/aqbanking-devel@lists.sourceforge.net/msg00955.html
+
 
 +
== 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.
 
* 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 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 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.
 
* 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.
 
* 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.
 +
 +
== 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

Revision as of 14:48, 17 November 2007

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().

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 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 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 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.

Further notes