Gnucash MT940 file import

Christian Stimming stimming at tuhh.de
Fri Jul 4 01:35:45 CDT 2003


-----BEGIN PGP SIGNED MESSAGE-----

On Donnerstag, 3. Juli 2003 23:49, Benoit Grégoire wrote:
> On July 3, 2003 03:40 pm, you wrote:
> > Hi Benoit, I'd like to take a stab at providing MT940 support, do you
> > have any tips for importing files with gnucash?
>
> The first step would be to take a look at the documentation for: the
> generic import module, the header files transaction.h and account.h.  They
> are all documented with doxygen.  Those docs live in src/doc/html.  To get
> them, you can either download a gnucash tarball, they will already be
> included.  Or you can download gnucash cvs and run make doc (you'll need
> doxygen installed if you go this route).

Just to add a note here: The header files are much more documented in the HEAD 
(experimental/unstable) branch of CVS, which is not available as a tarball. 
It has to be downloaded from anonymus CVS. The tarballs are from the 
gnucash-1-8-branch, which is the stable gnucash version (1.8.4 is latest 
IIRC), but the files in the 1.8-branch are much less documented. I.e. if you 
look for documentation, please always look into gnucash HEAD. If you want a 
stable program to test some new code with, you can choose either to use 
1.8-branch or HEAD branch. Except for some small changes in header file names 
(date.h -> gnc-date.h) those two branches are still relatively comparable to 
each other.

> After that, I don't know the scope of the MT940 standard (couldn't find any
> info in english or french about it).  With a little more info, I may be
> able to guide you better.

I know SWIFT MT940 from our HBCI work -- it's the data format in which the 
banks send us the transaction reports. We have (well, Martin Preuss has) 
therefore a MT940 parser in the LGPL library OpenHBCI, http://www.openhbci.de 
, parser in 
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/openhbci/openhbci/src/openhbci/core/swiftparser.cpp?rev=1.22&content-type=text/vnd.viewcvs-markup
However, that code is in C++ and the results are of course stored in 
OpenHBCI's internal data structures. 

On the other hand OpenHBCI comes with a full C wrapper layer. You might be 
interested in the code in gnucash's 
src/import-export/hbci/gnc-hbci-gettrans.c, function trans_list_cb() -- this 
is where the HBCI transaction report entries get converted into gnucash 
Transactions. If you don't have any MT940 parser currently at hand, it might 
be worth a try to extend OpenHBCI's swiftparser.cpp so that it also accepts a 
character buffer (that was read from a file) as data source, and can then be 
treated just as the existing import-export/hbci code already does.

I'm one of the developers of OpenHBCI, so if you have any suggestions like 
that (which would a) increase our developer/ user base and b)improve our 
parser code) they might well be picked up quickly.

> Actual programming would be in C, in a new import module.  If you are 
> serious about coding it, I'll be happy to create and commit a new skeleton
> import module to jump start you (including menu item, file selection and
> build system integration).  

Of course Benoit is probably much better than me for file importing (cause 
that's what he already implemented in gnucash), so this offer sounds well 
worth a try :-)

Christian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iQCVAwUBPwSvwmXAi+BfhivFAQFXewP/dx72EMWOgxF64a6bgTnku4U185FPt5+a
vM6UXQgFH6XPi3ln86rkflG3lV0yB1lKmoEHKHp8UvZhLIyzKkXM0ddpF+G79/D1
rLjOOAlB60u9FI4e/+9m+WY83RDuOC5OXTca6blyVjwV9EnfBRi2PJlNYICW1oNZ
x094kiMpCMI=
=VvLO
-----END PGP SIGNATURE-----



More information about the gnucash-devel mailing list