Fonction d'importation de fichiers QIF

Thomas Baumgart

Le format QIF considéré comme dangereux

En général, le format QIF devrait être évité autant que faire se peut. C'est un mauvais choix pour le transport des données financières. Parmi d'autres, le format QIF souffre des problèmes suivants :

  • Manque d'un format standard : différentes versions du même programme attachent des sens différents à un même élément.

  • Manque d'un identifiant d'opération : parce qu'il n'y a pas de numéro d'identification associé à chacune des opérations, la détection de doublons dans les opérations reste aléatoire au mieux.

  • Manque d'expressivité : la grammaire est vraiment simple et ne peut refléter la richesse de l'information financière rencontrée dans l'environnement financier d'aujourd'hui.

C'est la raison pour laquelle Intuit a arrêté d'assurer la compatibilité avec des données QIF dans Quicken 2005. Si vous avez la possibilité de d'obtenir des données d'une autre manière, comme OFX, faites toujours ce choix.

Comment importer un fichier QIF ?

Pour importer un fichier au format QIF, assurez-vous d'abord que vous avez ouvert un fichier KMyMoney valable. Puis sélectionnez ImporterQIF depuis le menu Fichier.



La boîte de dialogue qui s'affiche vous demande alors de saisir le nom du fichier, tout en vous permettant d'en saisir l'emplacement en cliquant sur le bouton Parcourir.

De plus, KMyMoney fait une différence entre l'importation d'un relevé bancaire et l'importation de données exportées depuis une autre application. Le comportement par défaut est l'importation d'un relevé bancaire. Dans le cas où vous importez des données issues d'une autre application, vous devez le dire explicitement en choisissant l'option appropriée dans la liste déroulante.

En général, le profil QIF par défaut devrait fonctionner correctement avec vos données QIF. Dans certains cas, il peut être nécessaire d'utiliser un profil QIF modifié. Reportez-vous à la section suivante pour plus de détails sur ce sujet.

Cliquez sur le bouton Importer pour importer le fichier QIF.

KMyMoney commence par scruter le fichier pour prendre connaissance du format utilisé pour les dates et les nombres. En cas de difficulté à déterminer sans ambiguïté un format de date, KMyMoney demande à l'utilisateur d'en choisir un dans une liste de formats possibles.

Ensuite, KMyMoney importe les données et crée tous les objets nécessaires, tels que les bénéficiaires, les comptes et les catégories et les cotations de titres. À chaque fois que c'est possible, les opérations existantes seront mises en correspondance avec les informations importées. Une barre de progression indique l'avancement de l'importation.

Dans le cas où KMyMoney ne sait pas reconnaître le nom du compte à importer, l'utilisateur doit choisir le compte dans lequel les données seront importées. Si le compte n'existe pas encore dans votre fichier, il peut être créé en cliquant sur le bouton Créer.

En fin d'importation, KMyMoney affiche une fenêtre de statistiques des instructions d'importation.


Statistiques des instructions

Après l'importation, toutes les opérations importées sont marquées d'un fond jaune dans le registre. Dans les cas où KMyMoney est capable de faire correspondre une opération préexistante avec une opération, le fond est marqué de vert pâle.

L'étape suivante consiste à vérifier les données importées et à les accepter. C'est un processus général qui s'applique aussi aux importations à partir d'autres sources. Il est mis en exergue dans une section séparée de ce document.

Note

Les couleurs utilisées pour marquer les opérations importées et les opérations correspondantes sont configurables et peuvent varier avec l'environnement.

Définition d'un profil QIF

Parce qu'il n'y a pas de norme universelle pour le format d'un fichier QIF certains éditeurs ont pris des libertés avec le format, et introduit des nuances qui leurs sont propres. Le profil QIF renseigne KMyMoney sur les spécificités de votre fichier. Pour éditer un profil QIF existant, ou pour en créer un nouveau, cliquez sur le bouton Nouveau de la boîte de dialogue d'importation, à coté du sélecteur de profil.


Éditeur de profil QIF

Note

Les versions antérieures de KMyMoney utilisaient un onglet pour la spécification des dates et des montants. KMyMoney détermine maintenant ces options en scrutant le fichier. S'il ne parvient pas à déterminer toutes les options, il interroge l'utilisateur pendant l'importation.

Correspondance d'opérations

Comme signalé précédemment, un des revers majeurs du forma QIF est l'absence d'identifiant unique pour chacune des opérations. En conséquence, si vous importez un fichier QIF et que certaines opérations sont déjà dans votre registre, vous pouvez vous retrouver avec des doublons. KMyMoney essaye de surmonter cet écueil en recherchant les opérations similaires à celles qui sont déjà dans le registre. S'il trouve quelque chose qui ressemble à un doublon, il fait correspondre les opérations du doublon.

Ceci peut devenir un problème si des opérations se ressemblent mais sont néanmoins différentes. Dans ce cas, vous pouvez dédoubler les opérations correspondantes plus tard dans le registre.

Écriture d'un filtre d'importation

Parfois vous pouvez avoir des données dans un format personnalisé, tel que valeurs séparées par une virgule (CSV), ou quelque chose de spécifique à votre situation. Depuis la version 4.6 de KMyMoney un module d'extension permet d'importer des fichiers CSV, mais vous pouvez toujours importer ce fichier dans KMyMoney en utilisant un filtre d'importation QIF. Un filtre est un programme personnalisé que vous écrivez et qui accepte votre fichier en entrée, et produit un fichier QIF en sortie. Ce peut être un script de shell, un script Perl ou un programme compilé écrit en C /C++, ou tout ce que vous pouvez imaginer pour autant que le système puisse l'exécuter.

Pour l'utiliser, éditez votre profil QIF favori, et choisissez l'onglet Filtre. saisissez l'emplacement de votre programme filtre là où il vous est demandé. À partir de là, chaque fois que ferez une importation QIF en utilisant ce profil, le fichier que vous importerez sera d'abord soumis au filtre avant importation.

Un problème courant est la conversion d'une liste de valeurs séparées par une virgule en fichier QIF. Ceci est un cas standard pour l'outil awk. Créez un script appelé csvqif.awk, avec le contenu suivant :

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

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

Puis modifiez les clés QIF (D, T, N, P, M) pour qu'elles coïncident avec l'ordre de vos données CSV. Déclarez le filtre d'importation comme awk -f csv2qif.awk.

Un autre problème surgit parfois de l'encodage des fichiers QIF. KMyMoney s'attend à trouver des fichiers encodés en UTF-8. Si votre fichier est encodé différemment, il peut être utile de le convertir en UTF-8 auparavant. Par exemple, pour le convertir de iso-8859-1 en UTF-8 vous devriez déclarer le filtre comme recode iso-8859-1..utf-8.

Extensions QIF spéciales de KMyMoney

Comme déjà signalé, l'un des revers majeurs du format QIF est l'absence d'un identifiant unique pour chacune des opérations. Si vous écrivez votre propre générateur de fichier QIF (ou filtre tel que décrit plus haut), vous pouvez surmonter ce problème. KMyMoney accepte le champ « # ». La fonction d'importation l'interprétera alors comme identifiant unique d'opération et évitera l'enregistrement de l'opération si elle est déjà présente dans le système.