# Importera och exportera

&Tony.Bloomfield; &Tony.Bloomfield.mail;

## Import från &gnucash;

### &gnucash;-filer

&kmymoney;s import från &gnucash; hanterar direkt läsning av standardfiler (&XML;) som skapas av &gnucash; version 1.8 och 2.0. Följande stöds inte:

- import av databasdata (Postgres)

- import av 'multibok'-filer

- import till en befintlig fil i &kmymoney;

- import av funktioner för mindre företag (anställda, fakturor, etc.)

- export av &gnucash;-filer.

Importen fungerar troligen bara riktigt om den ges en giltig fil. Det rekommenderas att &gnucash; funktion Kontrollera och reparera alla (i menyn Handlingar) körs innan ett försök att importera görs.

Filer kan öppnas genom att ange filnamnet på kommandoraden (`kmymoney <sökväg till fil>`), eller med &kmymoney;s menyalternativ &Ctrl;O Arkiv Öppna eller Arkiv Importera.

Likheten mellan de två produkterna betyder att mycket daglig data kan importeras på ett rättframt sätt. Dock finns det några områden där skillnader uppstår, och diverse alternativ tillhandahålls för att hantera dem. Följande avsnitt beskriver några av skillnaderna. Att förstå dem bör leda till en smärtfriare import.

### Likheter, skillnader och terminologi

#### Användning för mindre företag

Man bör observera att &kmymoney; är en hemekonomihanterare, och som sådan, inte direkt stöder några av &gnucash; företagsfunktioner, som skattetabeller, avlöningslistor och uppföljning av gods. Alla skuldkonton eller fordringskonton som hittas i en fil kommer att importeras som respektive skuld- och tillgångskonton.

#### Konton

##### Kontotyper

For both products, the highest level of structure in the file is the account. &kmymoney; supports 5 main types of account: Asset, Liability, Income, Expense and Equity, each of which may have various subtypes, e,g., Checking, Credit Card, etc. &kmymoney; includes a 'standard' account for each of these five types, and all other accounts are held subordinate to one of these. &kmymoney; enforces more consistency (or less flexibility, depending on your point of view) between account types than does &gnucash;, and the importer will correct any inconsistencies it detects. This may result in a slightly different account structure, though this can, within reason, be amended after the import is complete.

##### Kategorier

&kmymoney; uses the term Category to denote an account of an Income or Expense type. Unlike &gnucash;, these are not considered as 'ledger' accounts, and entry of transactions folder into categories is not supported; allocations are made during transaction entry into other account types.

##### Struktur och platsmarkörer

&gnucash; supports the use of Placeholder accounts. In effect, these are just read-only accounts into which no transactions can be entered, but which function in an analogous fashion to folders in a folder structure, as a holder for other accounts. Though &kmymoney; does not support this feature as such, it does provide a parent/child account relationship, so the importer simulates placeholders by creating empty accounts.

##### Avbildning av kontotyper

Typ i &gnucash; | Typ i &kmymoney;
`BANK` | `Checking`
`CHECKING` | `Checking`
`SAVINGS` | `Savings`
`ASSET` | `Asset`
`CASH` | `Cash`
`CURRENCY` | `Cash`
`MONEYMRKT` | `MoneyMarket`
`STOCK` | `Stock`
`MUTUAL` | `Stock`
`EQUITY` | `Equity`
`LIABILITY` | `Liability`
`CREDIT` | `CreditCard`
`INCOME` | `Income`
`EXPENSE` | `Expense`
`RECEIVABLE` | `Asset`
`PAYABLE` | `Liability`

#### Transaktioner och delningar

##### Balanserade transaktioner

Liksom i &gnucash; skrivs data in i form av transaktioner, där var och en i allmänhet består av två eller flera delade poster. I själva verket innehåller alltid giltiga transaktioner i &gnucash; minst två delningar, och för att rätta sig efter &gnucash; standard för dubbel bokföring, måste de vara i monetär balans (dvs. måste kunna balanseras till noll). &kmymoney; uppmuntrar till att använda standarden, men tvingar inte till det, men alla importerade transaktioner som inte är balanserade kommer att markeras i huvudboksvyn som att de har problem.

##### Betalare

&kmymoney; prefers that all transactions have a Payee (a generic term that encompasses both payees and payers), and unlike &gnucash;, a list of these payees is maintained. Payee names are generated by the importer from the &gnucash; transaction's Description field.

##### Överföringar

&kmymoney; använder begreppet överföring för att beskriva en transaktion som inte blandar in en kategori, utan bara överför pengar mellan tillgångskonton och/eller skuldkonton.

##### Avstämmning

&kmymoney; tillhandahåller en funktion för avstämning av konton som liknar den i &gnucash;, och motsvarande transaktionsstatus importeras.

#### Varor

&gnucash; använder termen Varor för att täcka både valutatillgångar och icke-valutatillgångar. De behandlas separat i &kmymoney;.

##### Valutor

&kmymoney; har inbyggt stöd för alla typer av utländska valutor. &kmymoney; kräver också att användaren anger en basvaluta, som är standardvalutan för nya konton. Vid import görs ett försök att bestämma den troligaste basvalutan, även om valet kan förkastas till förmån för något alternativ.

&kmymoney; stöder för närvarande inte konton med valörer i ogiltiga valutor (utom de som har ersatts av euro). För närvarande är det nödvändigt att ta bort alla sådana konton från &gnucash;-filen innan import. Vi hoppas förbättra situationen i en framtida utgåva.

##### Värdepapper och investeringar

Tillgångar som inte är medel (normalt aktier och obligationer) kallas värdepapper i &kmymoney;, och representerar huvudskillnaden mellan de två typerna, eftersom &kmymoney; kräver att alla konton som anges i värdepapper är underliggande till ett investeringskonto. Det beskrivs mer detaljerat i kapitlet om Investeringar. Även om användare kan ha implementerat ett sådant förhållande, inför inte &gnucash; någon definierad struktur för det, så importen klarar inte av att detektera det och utföra en automatisk konvertering. Tre alternativ har därför gjorts tillgängliga:

- Skapa ett separat investeringskonto för varje värdepapper, med samma namn som värdepappret.

- Skapa ett enstaka investeringskonto som kommer att fungera som 'överliggande konto' för alla värdepapperskonton.

- Skapa flera investeringskonto, och tilldela värdepapper till dem enligt användarens anvisningar.

It depends entirely on user requirements which of these options is relevant in each situation, and in some cases, manual restructuring of accounts after importation may be necessary.

##### Kurser och valutakurser

Värdepapperskurser och valutakurser som visas i &gnucash; prisredigerare kommer att importeras. Dessutom skapas kurs- och valutakursposter för alla transaktioner som omfattar värdepapper och flera valutor.

##### Direktkurser

For obtaining online price and currency rate quotations, &gnucash; uses a package called `Finance::Quote`. Recent versions of &kmymoney; contain support for this package for obtaining stock quotes, and this will be used by default when importing data. You may however select to convert to the native method used by &kmymoney; which is covered in more detail in online quotes.

If you choose to do so, the following dialog will allow selection of a 'native' &kmymoney; price source, or a user-defined source, for each account for which online quotes are required. However, the stock (ticker) symbol will be imported unchanged. Since this symbol will almost certainly be different in the two packages, it will need to be manually edited after completion of the import process. Future currency rate updates will not use `Finance::Quote`, and will always use the native retrieval method.

#### Schemalagda transaktioner

&kmymoney; behåller inte den skillnad som görs i &gnucash; mellan malltransaktioner och hur ofta de förekommer. Transaktionsdata kommer att dupliceras om samma mall används i olika scheman, men det har troligen inte så stor betydelse.

##### Schematyper

&kmymoney; classifies all schedules as one of three types, Bills, Deposits, or Transfers. Since &gnucash; does not make such a distinction, the importer attempts to determine the classification from the accounts and direction of money movements. It may be that in some cases incorrect assumptions are made, and these will need manual correction.

##### Misstänkta scheman

Vissa funktioner i &gnucash; schemalagda transaktioner är inte tillgängliga i &kmymoney;, så importen försöker att nå en rimlig kompromiss när data konverteras i varje enskilt fall. Transaktionerna markeras som misstänkta, och användaren ges tillfälle att redigera dem direkt under importprocessen. Exempel på situationer som kan orsaka detta är:

- vissa terminintervall som stöds av &gnucash; är för närvarande inte tillgängliga i &kmymoney;

- &kmymoney; stöder inte användningen av formler och variabler i beloppsfält

- komplexa fall som ännu inte har identifierats vid import.

Trots goda insatser, är det möjligt att en schemalagd transaktion kan orsaka ett allvarligt fel i &kmymoney;, på grund av de många alternativen som är inblandade. Om denna typ av problem verkar inträffa, erbjuder importen möjlighet att utelämna alla misstänkta scheman.

#### Rapporter

&kmymoney; tillhandahåller ett omfattande urval av inställningsbara rapporter, som beskrivs mer detaljerat under Rapporter. De motsvarar dock inte nödvändigtvis exakt de rapporter som är tillgängliga i &gnucash;.

### Välja importalternativ

#### Hantering av investeringar

Se Värdepapper och investeringar ovan.

#### Direktkurser

Stäng av det om du vill använda den inbyggda metoden för framtida direktkurser.

Se "Direktkurser" ovan.

#### Schemalagda transaktioner

Se "Schemalagda transaktioner" ovan.

#### Kodningsalternativ

Om ditt modersmål skrivs med bokstäver eller symboler som skiljer sig från de som används i latinska språk (dvs. i allmänhet västeuropeiska språk), representeras de på ett särskilt sätt ('kodas') i &gnucash;-filen. Om bokstäverna inte visas riktigt på skärmen, måste de avkodas. För närvarande är det ofta inte möjligt att detektera exakt vilken form av avkodning som måste användas, så du kan behöva markera alternativet och välja ett värde i listan. I allmänhet är det första värdet i listan det som anses vara lämpligt med dina landsinställningar (dvs. landet och språket som valdes när operativsystemet installerades), så det bör provas först. Eftersom importprocessen inte skriver över &gnucash;-filen, har du full frihet att experimentera med vilket som helst av alternativen.

#### Alternativ för transaktionsanteckningar

För vissa användarfall kan transaktioner i &gnucash;, som inte delats, innehålla kvarvarande, ofta felaktiga, anteckningsdata som normalt inte är synliga för användaren. När de importeras i &kmymoney;, kan denna data bli synlig, på grund av skillnad vid visning. Ofta har transaktionerna ett fält som beskriver transaktionens verkliga syfte. Om alternativet är markerat, används detta fält för att överskrida irrelevant anteckningsdata, om det finns.

#### Felsökningsalternativ

Dessa behöver bara användas i händelse av importproblem. Om du har sådana problem, bör du också rapportera dem till &kmymoney;s utvecklingslista &devlist;. Observera att bakåtspårningarna som skapas av alternativen kan innehålla data av konfidentiell natur, och alternativet Anonymisera data bör användas om den behöver göras öppet tillgängligt.

### Importrapport

I slutet av behandlingen, skapar importen en rapport som visar antal olika behandlade objekt, och eventuella fel och anomalier som har inträffat. Rapporten visas på skärmen, och kan spara i en fil för senare granskning. En fullständig rapport kan innehålla följande avsnitt:

- Antal poster

- Inkonsekvens i kontotyper och utförda åtgärder

- Detaljinformation om misstänkta scheman

&Thomas.Baumgart; &Thomas.Baumgart.mail;

## Import av QIF

### Formatet QIF anses skadligt

I allmänhet ska QIF-formatet undvikas när det är möjligt. Det är ett dåligt val för att förmedla ekonomisk data. Bland annat, lider QIF av följande problem:

- Brist på standardiserat format. Olika versioner av samma program ger olika betydelser till samma element.

- Brist på transaktionsidentifierare. Eftersom det inte finns något id-nummer som hör ihop med varje transaktion, är det som bäst slumpartat att matcha dubbletter.

- Brist på uttrycksfullhet. Grammatiken är verkligt enkel, och kan inte återge djupet av den ekonomiska information som finns i dagens ekonomiska miljö.

Det är allmänt orsaken att Intuit slutade stödja QIF-inmatning överhuvudtaget med Quicken 2005. Om du har möjlighet att hämta data på något annat sätt, som OFX, välj alltid det alternativet.

### Hur man importerar en QIF-fil

För att importera en QIF-fil, försäkra dig först om att du har en giltig &kmymoney;-fil öppen. Välj därefter menyalternativet Arkiv Importera QIF... .

The resulting dialog prompts for the QIF filename allowing you to locate the file by clicking on the Browse button.

Also, &kmymoney; differentiates between the import of a bank statement file and historic data exported from another application. The default is to import a bank statement file. In case you are importing data from your previous personal finance manager application select the appropriate option.

I allmänhet bör standardprofilen för QIF fungera med din QIF-data. I vissa fall kan det bli nödvändigt att använda en modifierad QIF-profil. Se nästa avsnitt för mer detaljinformation om ämnet.

Klicka på Importera för att importera QIF-filen.

&kmymoney; börjar söka igenom filen för att avgöra vilka format som används för att representera datum och tal. Om det inte går att avgöra ett datumformat utan tvetydighet, ber &kmymoney; användaren att välja ett från listan med möjliga datumformat.

Next, &kmymoney; imports the data and creates all necessary objects, such as payee information, accounts and category records, and stock price information. Wherever possible, existing transactions will be matched against the imported information. A progress bar is shown and updated during the import process.

In case &kmymoney; could not detect the name of the account to be imported, the user will be asked to select the account into which the data should be imported. If the account does not already exist in your file, a new account can be created by clicking on Create.

Vid slutet av importen visar &kmymoney; ett statistikfönster för utdragsimporten.

Utdragsstatistik Utdragsstatistik

After importing, all of the imported transactions will be shown with a yellow background in the ledger view. In case &kmymoney; was able to match an imported transaction with an already existing transaction, the background is shown in light green.

Nästa steg är att kontrollera importerad data och acceptera den. Det är en allmän process, och gäller också import från andra källor. Den sammanfattas i ett separat avsnitt av dokumentet.

Färgerna som används för att markera importerade och matchade transaktioner är anpassningsbara, och kan vara annorlunda i din miljö.

### Ställa in en QIF-profil

Because there is no universally standard format for a QIF file, different vendors have taken liberties with the format, and introduced their own nuances. The QIF Profile allows &kmymoney; to know about the peculiarities of your file. To edit an existing QIF Profile, or to create a new one, press the New button on the QIF Import dialog, near the profile selector.

QIF-profileditor

Previous versions of &kmymoney; used to have a tab for date and amount specifications. &kmymoney; now determines those settings by scanning the file. If it cannot figure out all settings, it will interrogate the user during import.

### Transaktionsmatchning

As noted previously, one of the major drawbacks of the QIF format is the lack of a unique identifier for each transaction. Thus, if you import a QIF file and some of the transactions are already in your ledger, you may get duplicates. &kmymoney; attempts to get around this by looking for transactions that look similar to those you already have. If it finds something that looks like the same transaction, it will match the apparent duplicate.

Det kan vara ett problem om du har transaktioner som ser alltför lika ut, men i själva verket är olika. I detta fall, kan du senare försöka att ta bort matchning av transaktionerna i huvudboksvyn.

### Skriva ett importfilter

Ibland kan du ha data i ett eget format, som värden åtskilda med kommatecken (CSV), eller något annat som är speciellt för din situation. Från version 4.6 inkluderar &kmymoney; ett insticksprogram för CSV-import, men du kan ändå importera filen i &kmymoney; med ett QIF-importfilter. Ett filter är ett eget program som du skriver, som tar din speciella fil som indata, och skapar en QIF-fil som utdata. Det kan vara ett skalskript, ett Perl-skript, ett kompilerat program skrivet i C eller C++, eller vad som helst som du kan tänka ut, under förutsättning att systemet kan köra det.

För att använda det, redigera din QIF-favoritprofil, och välj filterfliken. Skriv in platsen för filterprogrammet när du blir tillfrågad. Därefter körs filen som du väljer att importera först genom filtret, så fort du gör en QIF-import med användning av den här profilen.

Ett vanligt problem är att konvertera en lista med värden åtskilda av kommatecken till en QIF-fil. Det är ett uppenbart fall för verktyget `awk`. Skapa ett skript som heter `csv2qif.awk`, med följande två raders innehåll:

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

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

Ändra därefter QIF-nycklarna (D,T,N,P,M) så att de stämmer med ordningen av CSV-data. Ställ in indatafiltret till `awk -f csv2qif.awk`.

Ett annat problem uppstår ibland med kodningen av QIF-filer. &kmymoney; förväntar sig att filer ska vara kodade med UTF8. Om filen är kodad på något annat sätt, kan det vara användbart att konvertera den till UTF8. För att exempelvis konvertera den från iso-8859-1, skulle du ställa in indatafiltret till `recode iso-8859-1..utf-8`.

### Särskilda utökningar av QIF i &kmymoney;

Som redan nämnt, är en av de största nackdelarna med QIF-formatet avsaknaden av en unik identifierare för varje transaktion. Om du skriver en egen QIF-filskapare (eller filter, som beskrivs ovan), kan du komma förbi problemet. &kmymoney; stöder fältet '#'. Importen tolkar det som ett unikt transaktions-id, och bortser från posten om transaktionen redan finns i systemet.

## Export av QIF

To export one of your accounts to a QIF file, choose the File Export QIF... menu item. You will be prompted for which single account to export, what file to export it to, and what QIF Profile to use.

För närvarande hanterar inte QIF export av investeringar.

QIF-export

&Ace.Jones; &Ace.Jones.mail; &Thomas.Baumgart; &Thomas.Baumgart.mail;

## OFX-importinsticksprogram

### Hämta insticksprogrammet

&kmymoney; will import OFX files painlessly. However, this functionality is not built into the core program. You must obtain and install the OFX Importer Plugin. Once that is installed, the command to import OFX files will automatically show up under the File Import submenu.

Note that many prepackaged versions of &kmymoney; were built with the OFX importer already included or available as a separate package. If the OFX importer does not seem to be installed in your version, the first place to check is in the same place you got your base &kmymoney; package.

If you have installed from RPM, the OFX Importer Plugin is contained within the kmymoney-ofx package. It should be available from whatever source you got the base &kmymoney; package. If you have built from sources, all you need to do is have preferably the libOFX 0.9 development headers and libraries installed on your system. The &kmymoney; build process will detect these and compile the plugin. At the time of release of &kmymoney; 4.6, the latest libofx version was 0.9.4, which is also the minimum required version.

Skulle du stöta på problem när du försöker kompilera &kmymoney;, och du är säker på att du har rätt version av libOFX installerad, kontakta gärna utvecklarnas lista &devlist; för hjälp. Inkludera en kopia av filen `config.log`, först komprimerad med `gzip`.

### Vad är OFX

OFX stands for Open Financial Exchange. According to the OFX web site Open Financial Exchange (OFX) is a unified specification for the electronic exchange of financial data between financial institutions, businesses and consumers via the Internet. OFX is not a financial institution. The specification defines formats for transfer of financial data both by file and by direct interchange.

Även om standarden är mycket fullständigare och stabilare än QIF, finns det ändå variationer, beroende på den specifika implementeringen som används av ett visst institut. OFX-filer kan ha filändelsen OFX eller QFX (stora eller små bokstäver). Det innebär inte någon särskild skillnad i innehåll. Specifikationen är baserad på &XML;, alltså kan filerna läsas av vilken texteditor som helst, men eftersom blanktecken inte är relevanta för själva innehållet använder vissa implementeringar inte några alls, vilket gör dem mycket svårlästa för en människa.

Another site with good information is OFX Home. They maintain a directory of financial institutions that support OFX. This can be useful if you have problems setting up OFX direct connect. They also have a forum for discussions about OFX issues.

### Importera en OFX-fil

The most basic way to import an OFX file is to choose the importer from the menu bar. From the File Import OFX... menu item. If OFX does not show up under Import, you do not have the OFX Importer Plugin installed correctly. Please see the previous section.

The first thing the importer will do is ask you into which account to import the transactions. If there are transactions from multiple accounts in your file, you will be asked this question multiple times.

Efter import, kanske vissa transaktioner visas med ett utropstecken på en gul triangel i huvudboken. Det beror på att de behöver tilldelas en kategori. Importen kunde inte automatiskt tilldela en kategori baserat på din tidigare transaktionshistorik. Du kan redigera varje transaktioner i huvudboken för att tilldela den en kategori, så kommer markeringen att tas bort.

Please note that this section describes the native OFX importer. OFX files may also be imported using the AqBanking Importer Plugin if you have installed that. Note that the two importers do behave slightly differently, and they are written and supported by two different developers.

### Importera investeringar

Observera att om du importerar en fil med investeringstransaktioner, måste investeringarna först finnas i &kmymoney;s fil. Aktiesymbolen används för matchning, så försäkra dig om att symbolen i &kmymoney; är exakt likadan som den i filen du importerar.

### Webbanslutning

The easiest way to import an OFX file is to set up Web Connect. Visit your bank's web site, and click on a link to download an OFX file. Your browser should ask you what program you would like to use to open the file. Point your browser to &kmymoney;. It will then import the downloaded OFX file into the &kmymoney; file you most recently had open. You can also change the file associations of your desktop environment, and have &kmymoney; open the OFX file automatically for you.

Om du behöver importerar OFX-filen till en annan fil i &kmymoney;, ladda först den filen i &kmymoney;, och besök därefter bankens hemsida.

### Direktanslutning

OFX Direct Connect is now supported in &kmymoney;. This gives you the ability to contact your bank directly to obtain statements. In the future, there will be more help written, and this will be moved to its own section.

To enable this feature, you must compile &kmymoney; with the ``--enable-ofxbanking`` switch (now the default).

Please be warned: Many banks require a separate signup, will give you a separate password or PIN, and may even charge you a separate fee for this service. No bank directly supports &kmymoney;. You will have to tell them you want to bank directly from MS Money or Quicken.

The first step is to configure each account for which you wish to download statements. Go to the Accounts view, right click on the account you wish to configure, and choose Map to online account.... In case more than one online banking plugin is installed on your system you will be asked which one to use. For the internal OFX method select &kmymoney; OFX. A list of banks will be downloaded from the Internet and a wizard will guide you through choosing a bank, entering your username and password, and selecting an account. Should you find that your bank is not listed, then it may still be possible to use the manual option. Your bank may be able to provide the required parameters, or you may have to do some research to find them.

Setting up OFX Direct Connect can sometimes be a challenge, especially as the implementation at most institutions do not provide sufficient details in error messages. One particular issue to note is that many institutions require you to change your password the first time you access it online using this method. Unfortunately, at this time, the library that &kmymoney; uses (libofx) does not have a way to interactively change a password. In some cases, it is possible to get a technical support person at the institution to change the password for you. Until we are able to expand this section with more detailed troubleshooting information, if you have trouble getting this to work for you, you can ask for help on the &kmymoney; developer list &devlist;.

Once you have an account set up with online banking, go to the ledger for that account. Then choose Account Update account... menu item. This will connect to your bank, and download a statement for the last 60 days.

In version of &kmymoney; prior to 4.6, the payee name was always taken from the `PAYEEID` field. As of version 4.6, the payee name can be based on either the `PAYEEID`, `NAME`, or `MEMO` field in the OFX transaction. You can configure this feature and some other OFX direct connect settings by selecting the appropriate tab in the Edit account dialog.

### Exportera en OFX-fil

It is not possible to export your data as an OFX file currently. If you are interested to contribute in this area, please contact the libofx development team for details.

&details-impexp-csv; &details-impexp-csvexp; &details-impexp-woob;

## Skriva importinsticksprogram

&kmymoney; contains explicit support for importer plugins. If you have a custom format, and you would like to write an importer plugin, we would value your contribution. To do so, you'll need to compile the program from source. Then use the OFX Importer Plugin as an example.