Generic Import API

Olaf Faaland ofaaland at
Mon Apr 21 23:47:51 CDT 2003

d'OH!  Thanks for pointing that out.

I did find the docs helpful, but since this is my first foray into coding with 
the engine, I spent most if my time trying to understand how to create a 
proper transaction.

With the engine documentation in particular, I found it difficult to see the 
forest for the trees.  There are so many public functions, and nothing that I 
found in the doxygen-generated files gives a typical sequence of calls - 
creating objects to store your book, account(s), transaction, splits, filling 
up some of the common fields, and then committing/adding.  I got much of that 
from the "Engine Introduction" node of the, but I did not 
see anything covering how to associate a split with an account and a 
transaction, or indicating that those were separate function calls.  So a 
reference in the doxygen-generated stuff would have helped, but not answered 
all of my questions.

It's the sort of thing where a very brief overview or example would have sped 
up my process considerably; but that might qualify as something that is more 
likely to get out of date than it is to be useful; and in the end, if someone 
can't figure it out from the documentation that is available, it may be that 
they aren't capable of getting anything useful done.  I don't really know.  

Having said all that, I'd be happy to make an annotated code snippet that uses 
your importer and shows these things, if you like.  I have 2 kids competing 
with gnucash for my time, so it would take a little while.

In any case, thanks for writing the API.  I found it quite easy to use once I 
got the context down.


On Monday 21 April 2003 08:44 pm, Benoit Grégoire wrote:
> On April 21, 2003 12:10 am, Olaf Faaland wrote:
> > Hi,
> >
> > I'm playing with the import API written by Benoit.  Using the OFX and
> > HBCI imports as a model, I've written a quickie test import, but I have
> > two questions:
> Wow, I am glad someone besides me and cstim is playing with it!  Are the
> docs helpfull?
> > 1. From what I can see of the OFX and HBCI code, the transactions
> > initially created are never balanced; that is, they have only one split,
> > and the GUI always prompts the user to select the 2nd account for the 2nd
> > split.  Is that what really happens?  I have access to neither type of
> > service to test my understanding.
> This is what USUALLY happens, but not always. Some transactions are added
> already balanced.  The GUI will only ask the user for a destination split
> if the transaction isn't balanced when it is passed to the importer.
> > 2. My test import creates what appears to me to be a single valid
> > transaction. Specifically, there is only one TX shown in the register,
> > and diffing the before and after data files shows only one
> > <gnc:transaction> object, containing 2 splits.  It shows in the importer,
> > however, with two rows.  I've attached the pertinent part of a screen
> > shot, and my code.  Am I doing something obviously wrong?
> LOL, you are adding it twice:
>   	DEBUG("OPF: gnc_file_olaf_import(): Adding the transaction...\n");
>         gnc_gen_trans_list_add_trans(gnc_olaf_importer_gui, olaf_trans);
> 	/* Instead of xaccTransCommitEdit(gnc_trans)  */
> 	gnc_gen_trans_list_add_trans(gnc_olaf_importer_gui, olaf_trans);

More information about the gnucash-devel mailing list