Re: API-Addition

Martin Preuss <[email protected]> Thu, 21 Apr 2005 20:37:09 +0200
Newsgroups gmane.comp.finance.libofx.devel
Message-ID <[email protected]>
Hi,

On Thursday 21 April 2005 16:11, Benoit Grégoire wrote:
[...]
> > suggests: Handle OFX/OFC files. Why would you want to support QIF or
> > others ? Most applications already have their own implementation for
> > these other formats, so they don't need LibOFX to do that.
>
> Last I looked, most of them only had a very minimal implementation of QIF.
Right, though this is quite a simple file format the details are quite... 
spicy ;-)

> > What you're trying to do here is exactly what AqBanking is doing:
> > AqBanking tries to abstract online banking and file import/export, so at
> > least for me (and Gnucash, KMyMoney, QBankManager and later MoneyPenny)
> > LibOFX doesn't need to support any other type than OFX/OFC.
>
> It sure was never marketed that way to GnuCash, and even if we have
> Christian Stimmings on the Team, it the first I've heard about it.  In fact
> all I've heard untill now (even if I did contribute build patches to it) is
> "If you are not in Germany it of no use to you".
That was true as long as OpenHBCI was used. However, AqBanking is a complete 
new project (and in conjunction with the HBCI backend) the successor of 
OpenHBCI.

AqBanking is an abstract online banking layer (see my homepage in the footer 
below). Its concept has prooven to be working because currently AqBanking 
provides (via backends):
- German HBCI
- OFX Direct Connect
- German DTAUS discs (paperless exchange with banks using floppy discs)
- German value cards (GeldKarte)

It also contains bank information modules (about 25,000 US banks, 20,000 
German banks and about 1,000 Austrian banks) and a generic import/export 
framework.

[...]
> It's always been told clearly that Libofx wanted to be a financial layer
> eventually.  When I asked to re-use some of the HBCI work, I was told that
> none of it was general enough was general enough, and didn't pursue it
> further.
As I said, that was true with OpenHBCI which only was an implementation of 
HBCI (and could not be used for anything else).

[...]
> Are you claming that AqBanking knows which fields are used and how they are
> used in every single country in the world?  I presume not.  No one can.
> Heck, handling currencies properly is still a problem for most packages.
That's true, but my OFX importer (which is a plugin using LibOFX) works quite 
well so far. Of course I don't know how *all* fields are eventually used in 
every country, but I have quite an overview (because AqBanking aims towards 
the internation audience, not a single country), and the following fields are 
commonly used in identifying bank accounts around the world:
- Bank code (sort code, routing number, Bankleitzahl)
- sometimes branch id (not in some EU countries)
- account id of some sort (mostly a number)

The SWIFT documents also state that these are the values by which an account 
is to be identified (and these are BTW the values which are usede to 
construct the IBAN code).

So having these fields in LibOFX is vital to my backend.

Your constructed account id is not helping there, and as someone pointed out 
it isn't even unique.

So why don't you want me to add these 3 fields to OFXAccountInfo ?

[...]
> You can have the user identify to which real world account it corresponds. 
See, this shouldn't be necessary, the program could do that automatically if 
it is handed the information which is available. I'd like to reduce user 
interaction to a minimum.

> If you have a better format to suggest and can be represented as a single
> string, I am listening.
That's my point: I dont think this is necesary. However, for compatibility 
reasons I wouldn't want to drop this field, either, just want to add the 
threee fields...

>
> > It's just as simple as this: I'm using LibOFX to get as much information
> > from OFX/OFC files as possible. Having to parse basic information (which
> > comes in single, distinguishable elements) out from an artificially
> > combined item kinda defeats this purpose.
>
> Off course it does, it's meant to be read by human, and to be and
> unformatted string of bytes for a computer to be used for account matching.
But the computer can't do this with your constructed id. With this id I can 
only match the account against those I already have from LibOFX, but in some 
cases the account already existed before invoking LibOFX (and has not the 
same id assigned like the one you construct). So in this case automatic 
matching is impossible.

[...]
> You make it sound as though I try to prevent your from doing so, I don't! 
> I just want you to do it with a separate low-level API.
As I see it: Currently LibOFX *is* the lowlevel API, at least when it comes to 
your plans to make it a generic online banking/import layer (no insult 
intended: LibOFX is really good at handling OFX files, and I consider that 
real good lowlevel stuff).

Abstracting all differences between multiple file formats should be a higher 
level, just above the currently available one in LibOFX (this is in my case 
done in AqBanking).


regards
Martin


-- 
"Things are only impossible until they're not"

LibChipcard - http://www.libchipcard.de/
AqBanking - http://www.aquamaniac.de/aqbanking/
OpenHBCI - http://www.openhbci.de/


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id396&op=click