QIF spec ambiguity in example file

Daniel White twinbee42 at skytopia.com
Tue Apr 29 10:57:56 EDT 2014


> Because there is a !Type:xxx after the !Account.

There doesn't seem to be. Here is the URL again - it's at the end:
http://svn.gnucash.org/trac/browser/gnucash/trunk/src/import-export/qif-imp/file-format.txt

And here's the example. There's no "!Type" after "!Account" as you can see:

***********************************BEGIN:
!Account
NAssets:Investments:Mutual Fund
TInvst
D10/30/2006
Q0.9
T500
PPurchase
NBuyX
L[Assets:Investments:Mutual Fund:Cash]
YFOO
^
D11/28/2006
Q0.897
T100
PSale
NSellX
L[Assets:Investments:Mutual Fund:Cash]
YFOO
^
**************************************END

Regards, Daniel


On Tue, 29 Apr 2014 15:42:21 +0100, Derek Atkins <warlord at mit.edu> wrote:

> Hi,
>
> "Daniel White" <twinbee42 at skytopia.com> writes:
>
>>> I think you're confusing account definitions from actual transaction
>>> definition.  Accounts only use N, T, D, L, and B.  Whereas N, T, D, Q,
>>> T, P, N, L, Y, and $ are most definitely "transaction" fields.
>>
>> Under "Account Information Format" (which sounds like an "account
>> definition"
>> to me - is that what you meant?), it lists / and $ as well (B is not
>> listed).
>> But even then, the N code could represent either the N from the
>> account definition'
>> or N from the 'transaction' - which is it to be? It's ambiguous, at  
>> least
>> as far as I can see.
>
> I don't understand why it's ambiguous..  !Account uses one set of
> fields, and transactions use another set of fields, and yes, the set
> overlaps.  I don't understand how that is ambigious.
>
> I have no idea what / and $ are for account information.  I don't see
> anything in the gnucash code that would handle those tags.
>
>> How do we know when the text "!Account" appears, that a transaction  
>> follows
>> as opposed to defining an account?
>
> Because there is a !Type:xxx after the !Account.
>
>> In the example shown, the first 'N' is "NAssets:Investments:Mutual
>> Fund". The second
>> 'N' is "BuyX". However, there is no caret (^) to separate the types,
>> and so there
>> is ambiguity between what N is supposed to mean what (yes I know a human
>> can take a very good guess at what they mean, but arbitrary text in
>> those fields
>> could make this theoretically impossible for even a human to
>> parse). The same problem
>> goes for the 'T', and 'D' codes. Are they supposed to mean an account
>> definition or
>> a transaction? How can we know that for sure? It seems N and T are part  
>> of
>> the "Account Information Format", but then what magically makes D part
>> of the
>> "Investment transaction format" instead which comes on the very next  
>> line!
>
> Could you attach the example file you're looking at?  You're probably
> missing a !-line that switches the parse context.
>
>> Thanks for trying to make sense of this issue.
>>
>> Regards, Daniel
>
> -derek
>
>>
>> You use !Account to specify the source account for a !Type:xxx when
>> specifying multi-account QIF files.
>>
>> On Mon, 28 Apr 2014 17:06:10 +0100, Derek Atkins <warlord at mit.edu>  
>> wrote:
>>
>>> Ricardo Biloti <biloti at gmail.com> writes:
>>>
>>>> Dear John
>>>>
>>>> I totally agree with you. I am trying myself to write some scripts to
>>>> produce QIF file from my personal sources and I am struggling with
>>>> lack of
>>>> precise information on QIF specification.
>>>>
>>>> Personally, I would like to see the complete reference for the
>>>> (subset) QIF
>>>> format that Gnucash understands, as well as a rich list of sample
>>>> transactions and their QIF translation.
>>>
>>> You are welcome to go ask Intuit for that..  I doubt it will go very
>>> well.
>>>
>>> All the "documentation" for the Quicken Interchange Format (QIF) has
>>> been through reverse-engineering.  So what you get is what you get.
>>>
>>> As for the original issue:
>>>
>>>> After the "!Account" line, we have listed the control chars: N, T,
>>>> D, Q, T, P, N, L, Y. However, the only control chars listed for the
>>>> "Account Information Format" are: N, T, D, L, /, and $. So I'm
>>>> guessing Q, P and Y must be referring to perhaps the control chars
>>>
>>> I think you're confusing account definitions from actual transaction
>>> definition.  Accounts only use N, T, D, L, and B.  Whereas N, T, D, Q,
>>> T, P, N, L, Y, and $ are most definitely "transaction" fields.
>>>
>>> You use !Account to specify the source account for a !Type:xxx when
>>> specifying multi-account QIF files.
>>>
>>>> Regards,
>>>> Biloti
>>>
>>> Hope this helps,
>>>
>>>> Please remember to CC this list on all your replies.
>>>> You can do this by using Reply-To-List or Reply-All.
>>>
>>> -derek
>>>
>


-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/


More information about the gnucash-user mailing list