On May 12, 2006, at 3:38 AM, Christian Stimming wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi David,

David Reiser schrieb:
The more obvious problem with the null bankID institutions is that you can't use the "Select the Bank for this User" dialog in aqbanking setup to get the necessary connection data for the affected OFX institutions.

well, that particular dialog probably needs to be fixed. It sounds as if there is some segfault if no bankid was entered -- maybe you can collect
and report a back trace?

Something less than a segfault, as aqbanking is still running and usable, the new user definition just disappears. I'll see if I can trap it with gdb.


But the real problem is somewhere else:

How big is the performance penalty for using bankID+bankName as the
internal aqbanking index key for the bank data? I'd really like to see
it be possible to have a null bankID because Vanguard refuses
connections if it gets any incorrect data in the ofx connect request.

I understand why you would like to have that. However, this is where it hits the limits of a protocol-abstraction layer like aqbanking: For the first important protocol (HBCI), using "bankID+bankName" as an index key
is plain wrong! Instead, HBCI explicitly specifies bankID (well, plus
country code) and *only* this as index key for a bank. If we add the
bankName, we will run into all kinds of trouble because the user might
enter the bankName in whatever different way it ever occurs to him. So
for HBCI, one *must* use only the bankID as the index key -- everything
else will fail miserably.

This is the explanation why the aqbanking protocol-abstraction still
assumes the bankID as unique index key. If I understand you correctly,
then in OFX we should not rely on this assumption anymore. Do the OFX
specifications actually define a clear index key of the bank? (I have
never worked with the OFX specs; I only know the HBCI ones.) I find it
hard to believe the specs don't define something like this.

I'm with you on this, but if such an index is specified, either it has changed or the banks aren't following it uniformly (or maybe Microsoft, the source of the numerically labelled xml files I use via Jeremy Jongsma, has an inconsistency in their data set). There are a few non-numeric FID's in the current data set, and FIPID's seem sparser than I would expect. My guess is that there was some uncertainty in early adopters, the committee has recommended that FIPID's be the definitive identifier, but not all banks/institutions have made the changes. Many banks do use the RTN both as the bankId and either the FID or FIPID. grumble, grumble. The other possibility is that the 'banks' ARE following a standard, but credit card companies and investment institutions haven't figured it out yet.


For a while I thought about the possibility of generating an ID for OFX
institutions that lacked them. But that gets ugly very fast: neither
aux1 nor aux1+aux2 is unique in the current data set. aux1+bankName
might be, but that's still ugly.

In any case we need some unique index key throughout the aqbanking
library, and because of the historical HBCI background, this happens to
be the bankID (plus country code). If OFX requires something else as
identification, then we have two choices:

1. Change the unique index key of the banks in aqbanking, and make the
bankID field optional as seems to be appropriate for OFX (but not for
HBCI, as explained above)

2. Change the interpretation of the bankID field in the OFX backend, but still use it as the unique index key for aqbanking. In other words, the
bankId should not be transmitted to the OFX server but still be used
inside aqbanking.

Clearly #2 is the much easier solution here... wait a sec: If you look
into src\plugins\backends\aqofxconnect\plugin\context.c and search for
"BankCode", you will encounter this comment:

  /* only copy bank id if it is a number (-> routing number)
   * otherwise it serves only identification purposes for this backend
   * and doesn't represent a routing number */

Can you try to enter a bankId whose first character is a letter instead
of a digit? :-)

I can define a bank for a user this way, but it is all manual (can't use Select the Bank for this User), and I'm forced to look through banks.data in an external text editor to determine the ofx server address.

Martin's response regarding new libofx code is probably the right answer to the fill-in-the-server-address issue.

I'll dig some more, but I'm getting more sure that the ofx backend isn't handling the return data as smoothly as it should. I'll collect the Sending and Receiving headers from all my accounts. The backend parser is expecting to use the bankId as the identifier, but ofx institutions without RTN's are sending either FID or FIPID from the ofx spec. That's when Qbankmanager is saying "Please choose an account to use for this retrieval" and gnucash-hbci is claiming no transactions within the date range.


Regards,

Christian



--
David Reiser
[EMAIL PROTECTED]



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Aqbanking-devel mailing list
Aqbanking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aqbanking-devel

Reply via email to