QIF importeren

Thomas Baumgart

Jack H. Ostroff

QIF-formaat beschouwd als schadelijk

In het algemeen gesproken zou het QIF-formaat waar mogelijk vermeden moeten worden. Om vele redenen is een slechte keuze voor het transporteren van financiële gegevens. Naast andere dingen lijdt QIF aan deze problemen:

  • Gebrek aan gestandaardiseerd formaat: verschillende versies van hetzelfde programma zal verschillende betekenissen geven aan hetzelfde element.

  • Gebrek aan transactie-identifier: omdat er geen ID-nummer geassocieerd is aan elke transactie, is het overeen laten komen van duplicaat transacties op zijn best bemoeilijkt.

  • Gebrek aan uitdrukkingsvaardigheid: de grammatica is erg eenvoudig en kan niet de diepte van financiële informatie gevonden in de financiële omgeving van vandaag weergeven.

Dit is in het algemeen waarom Intuit helemaal gestopt is met ondersteuning van QIF-invoer met Quicken 2005. Als u de optie hebt om gegevens op een andere manier te krijgen, zoals OFX, kies dan altijd voor die optie.

Hoe een QIF-bestand importeren

Om een QIF-bestand te importeren, ga eerst na dat u een geldig KMyMoney-bestand open hebt, selecteer daarna het menu-item BestandImporterenQIF....

qif-importprogramma

De resulterende dialoog vraagt om de QIF-bestandsnaam en biedt u het invoeren van het volledige pad van het bestand of het bestand te lokaliseren te lokaliseren door op Bladeren te klikken.

Merk op dat KMyMoney verschil maakt tussen het importeren van een bankafschriftbestand en een bestand met historische gegevens geëxporteerd uit een andere toepassing. Een bankafschriftbestand hoeft niet noodzakelijk alle gegevens te bevatten, gerelateerd aan een enkel bankafschrift; het kan slechts één of een paar transacties bevatten. De standaard is om een bankafschriftbestand te importeren. In het geval dat u gegevens importeert uit uw vorige persoonlijke financiële beheertoepassing selecteer de van toepassing zijnde optie.

Vervolgens moet u een QIF-profiel selecteren voor het importeren. Omdat er geen universele standaardformaat is voor een QIF-bestand, hebben leveranciers vrijheden genomen met het formaat en hun eigen nuances geïntroduceerd. In het algemeen zou het standaard QIF-profiel met de meeste QIF-bestanden moeten werken. In sommige gevallen kan het nodig zijn een aangepast QIF-profiel te gebruiken. Zie de volgende sectie voor meer details over dat onderwerp.

Klik op Importeren om het QIF-bestand te importeren.

KMyMoney zal beginnen met het scannen van het bestand om de formaten te bepalen die gebruikt zijn om datums en getallen te representeren. In het geval een datumformaat niet eenduidig bepaald kan worden zal KMyMoney de gebruiker vragen om er een te selecteren uit de lijst van mogelijke datumformaten.

Vervolgens importeert KMyMoney de gegevens en maakt alle noodzakelijke objecten aan, zoals debiteurinformatie, rekening en categorierecords en informatie over koersen. Waar mogelijk zullen overeenkomsten met bestaande transacties gezocht worden tegen de geïmporteerde informatie om gedupliceerde transacties te voorkomen. Een voortgangsbalk wordt getoond en bijgewerkt tijdens het importproces.

In het geval KMyMoney de naam van de te importeren rekening niet kan bepalen zal de gebruiker gevraagd worden om de rekening te selecteren waarin de gegevens geïmporteerd moeten worden. Als de rekening niet al bestaat in uw bestand kan een nieuwe rekening aangemaakt worden door te klikken op Aanmaken.

Aan het einde van het importeren toont KMyMoney een venster met een statistiek van het importeren van afschriften.

statistieken van qif-importafschriften

Na importeren zullen alle geïmporteerde transacties getoond worden met een gele achtergrond in de grootboekweergave. In het geval dat KMyMoney in staat was om een geïmporteerde transactie te koppelen aan een al bestaande transactie, zal de achtergrond in lichtgroen getoond worden.

Opmerking

De kleuren die worden gebruikt om geïmporteerde en overeenkomende transacties te markeren zijn aan te passen en kunnen anders zijn in uw omgeving.

De volgende stap is het verifiëren van de geïmporteerde gegevens en accepteer alle geïmporteerde transacties. Dit is een algemeen proces en is ook van toepassing op importeren uit andere bronnen. Het is overeenkomstig het proces voor overeenkomende transacties. Alle geïmporteerde transacties zijn gemarkeerd in het grootboek met een pictogram geïmporteerd. Nadat u de transactie Accepteert, is het niet langer gemarkeerd als Geïmporteerd.

Transactie vergelijking

Zoals eerder opgemerkt is een van de belangrijkste nadelen van het QIF-formaat het ontbreken van een unieke identifier voor elke transactie. Als u dus een QIF-bestand importeert en enige van de transacties zijn al in uw grootboek, dan kunt u duplicaten krijgen. KMyMoney probeert hier omheen te werken door te zoeken naar transacties die er hetzelfde uitzien als die u al hebt. Als het iets vindt dat lijkt op dezelfde transactie, zal het het een overeenkomst met het gelijkende duplicaat aangeven.

Dit kan een probleem zijn als u transacties hebt die er erg hetzelfde uit lijken te zien maar in werkelijkheid verschillend zijn. In dat geval kunt u het overeenkomen van deze transacties later ongedaan maken in de grootboekweergave.

Een importfilter schrijven

Soms hebt u gegevens in een aangepast formaat, zoals komma-gescheiden waarden (CSV) of iets anders uniek aan uw situatie. Vanaf version 4.6, bevat KMyMoney een CSV importplug-in, maar u kunt nog steeds andere typen bestanden in KMyMoney importeren met een QIF-importfilter. Een filter is een eigen programma dat u schrijft die uw speciale bestand als invoer neemt en een QIF-bestand als uitvoer. Dit kan een shell-script, een perl-script, een gecompileerd programma geschreven in C/C++ of iets anders dat u bedenkt, zolang als het systeem het kan uitvoeren. Het filter zal uitgevoerd worden met het invoerbestand als stdin en stdout wordt veronderstelt een geldig qif-bestand te zijn om door te geven naar het actuele QIF importprogramma.

Om een filter te gebruiken, bewerkt uw favoriete QIF-profiel of maak een nieuwe aan (zie de volgende sectie voor details over QIF-profielen) en selecteer het tabblad Filter. Voer het volledige pad in naar uw filterprogramma in het veld Invoerfilterlocatie of klik op het bladerpictogram naast het veld en navigeer naar het filter in de dialoog Bestand openen.... Daarna, wanneer u een QIF importeert met dit profiel, zal het door u geselecteerde bestand voor importeren eerst door uw filter gaan. Merk op dat het filterlocatieveld het volledige pad naar de filterprogramma of script bevat, maar kan ook opdrachtregelparameters voor het programma bevatten.

Vervolgens, als u de dialoog Bestand openen... wilt waar u het in te voeren bestand kiest om een filter te hebben voor uw specifieke bestandstype, voer een kommagescheiden lijst van bestandsfilters in (zoals *.abc,*.xyz) in het veld Invoerfilterbestandstype. Met het bovenstaande voorbeeld, wanneer u een bestand met dit profiel opent voor importeren, dan zult u alleen bestanden zien die eindigen op abc of xyz. Als u het veld leeg laat, dan zal geen filtering op namen gedaan worden en zult u alle bestanden zien.

Een gemeenschappelijk probleem is om een lijst met komma-gescheiden-waarden te converteren in een QIF-bestand. Voor de toevoeging van de plug-in CSV-importprogramma zou dit een tekstboek geval zijn voor het hulpmiddel awk. We gebruiken nog steeds dat voorbeeld hier, gewoon om een voorbeeld te tonen hoe het importproces werkt. Maak een script genaamd csv2qif.awk, met de volgende twee regels als inhoud:

BEGIN { FS=","; print "!Type:Bank" }

    { print "D"$1; print "T"$2; print "N"$3; print "P"$4; print "M"$5; print "^" }

Wijzig daarna de QIF-sleutels (D,T,N,P,M) om overeen te komen met de volgorde van de kolommen in uw CSV-gegevens. Stel het invoerfilter in om uit te voeren awk -f csv2qif.awk.

Een ander probleem treedt soms op in de codering van QIF-bestanden. KMyMoney verwacht bestanden gecodeerd in UTF8. Als uw bestand gecodeerd is in iets anders, kan het nuttig zijn het te converteren naar UTF8. Om het bijvorbeeld te converteren van iso-8859-1, dan zou u het invoerfilter in kunnen stellen op recode iso-8859-1..utf-8.

Speciale KMyMoney QIF-extensies

Zoals al genoemd is een van de grote nadelen van het QIF-formaat het ontbreken van een unieke identifier voor elke transactie. Als u uw eigen maker van een QIF-bestand schrijft (of filter, zoals boven beschreven), dan kunt u dit probleem aanpakken. KMyMoney ondersteunt het veld '#'. Het importprogramma zal dit interpreteren als een uniek transactie-ID en het record negeren als de transactie al in het systeem zit.