Warning, /office/kmymoney/doc/details-impexp-csv.docbook is written in an unsupported language. File is not indexed.
0001 <sect1 id="details.impexp.csv"> 0002 <sect1info> 0003 <author> &Allan.Anderson; &Allan.Anderson.mail; </author> 0004 </sect1info> 0005 <title>CSV Importer Plugin</title> 0006 0007 <sect2> 0008 <title>Reasons for importing CSV Files</title> 0009 0010 <para> 0011 In general, it is preferable to import OFX. However, not all institutions 0012 provide data in that format. CSV (comma separated value) files are almost 0013 always available, sometimes described as Excel or spreadsheet files. Also, 0014 they can often be created fairly easily by capturing the data you want to 0015 import, such as in a text file, and manually editing it. 0016 </para> 0017 0018 <para> 0019 The primary focus of the plugin is on importing data from bank statements, but 0020 there is also a capability to import some investment statements. This plugin 0021 was initially created, before becoming a CSV importer, to produce QIF files 0022 from CSV, which could then be imported. This functionality is still present, 0023 but is likely to be removed, as the plugin now focuses on directly importing 0024 CSV files. Also, &kmymoney; has the native ability to <link 0025 linkend="details.impexp.qifexp">export QIF files</link>, so there is no real 0026 reason to produce a QIF file from a CSV file. 0027 </para> 0028 </sect2> 0029 0030 <sect2> 0031 <title>Getting the plugin</title> 0032 0033 <para> 0034 &kmymoney; will import CSV files. This functionality is provided as a plugin, 0035 and it is now built into the core program, both in distro packages and in the 0036 source files. Once the distro package is installed, or the source files are 0037 compiled and installed, the menu choice to import CSV files will automatically 0038 show up under the 0039 <menuchoice><guimenu>File</guimenu><guisubmenu>Import</guisubmenu></menuchoice> 0040 submenu. 0041 </para> 0042 0043 <para> 0044 The CSV importer plugin is much newer than the OFX plugin, but most 0045 distributions are now built with the CSV importer already included or 0046 available as a separate package. Ensure that it is enabled within &kmymoney;. 0047 Check the <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure 0048 &kmymoney;...</guimenuitem><guimenuitem>Plugins</guimenuitem></menuchoice> menu item. 0049 If the CSV importer does not seem to be installed in your version, the first 0050 place to check is in the same place you got your base &kmymoney; package. See 0051 if a later version is available, or if the importer is available as a separate 0052 package. 0053 </para> 0054 0055 <para> 0056 If you have installed from RPM or Deb, the CSV Importer Plugin should be 0057 contained within the kmymoney package. If you have built from source, there 0058 should be no additional requirements. The &kmymoney; build process should 0059 detect the plugin source and compile the plugin. 0060 </para> 0061 </sect2> 0062 0063 <sect2> 0064 <title>Importing a CSV file</title> 0065 0066 <para> 0067 To import a CSV file, choose the importer from the menu bar: 0068 <menuchoice><guimenu>File</guimenu><guisubmenu>Import</guisubmenu> <guimenuitem>CSV...</guimenuitem></menuchoice>. 0069 If CSV does not show up under Import, you do not have the CSV Importer Plugin 0070 installed correctly. Please see the previous section. 0071 </para> 0072 0073 <para> 0074 The CSV Importer is in the form of a wizard, with a separate page for each 0075 individual step of the process. There may be some minor differences between 0076 the text in this handbook, the labels in the screenshots, and the labels you 0077 actually see in the wizard. In such cases, the handbook describes what the 0078 wizard will look like in the next release. 0079 </para> 0080 0081 <sect3> 0082 <title>CSV Import Wizard: Start</title> 0083 0084 <para> 0085 When started, the CSV Importer displays the <guilabel>Start</guilabel> 0086 page. The upper area, where data will be displayed, is initially empty. 0087 Below that, on the left, is a list of the steps of the import process, with 0088 the current one highlighted. To the right of that are some brief instructions 0089 and two radio buttons, allowing the choice of either 0090 <guilabel>Banking</guilabel> or <guilabel>Investment</guilabel>. Next there is 0091 a profile selector box, which is enabled once one of the radio buttons has 0092 been selected. At the bottom of the display are buttons to move on to the 0093 next step of the wizard, go <guibutton>Back</guibutton> to the previous step, 0094 or <guibutton>Cancel</guibutton> the import. At the initial step, there is 0095 also a button <guilabel>Select File</guilabel> to initially select the file to 0096 import. 0097 </para> 0098 <!-- want to use inlinemediaobject to avoid lines above and below. --> 0099 <screenshot> 0100 <mediaobject> 0101 <imageobject> 0102 <imagedata fileref="csvImporter_1.png" format="PNG" /> 0103 </imageobject> 0104 </mediaobject> 0105 </screenshot> 0106 0107 <para> 0108 Also, note the <guilabel>Skip setup</guilabel> checkbox next to the profile 0109 selector. Initially, you should not select this check-box. Once you have set 0110 up a profile and finished the wizard, those parameters are saved in the 0111 resource file. Next time you use that same profile, the parameters will be 0112 loaded into the UI (User Interface). The wizard would then plod through the 0113 following pages of parameters that you won't need to change. So, instead, 0114 once you are happy with a profile, it may be helpful to check this box. The 0115 wizard will then move directly to the final page, and, assuming no problems 0116 are found, you just have to click <guilabel>Import</guilabel>. 0117 </para> 0118 0119 <para> 0120 First select either <guilabel>Banking</guilabel> or 0121 <guilabel>Investment</guilabel>, then click in the selector box, which displays 0122 "Add New Profile." If you have previously created any profiles, you can 0123 select one of them, otherwise enter a new profile name, possibly the name of 0124 the account into which you wish to import. If you enter a new profile name, 0125 hit &Enter; to create it. Then, click on <guilabel>Select File</guilabel>, 0126 and a standard file selector box will open, from which you should select the 0127 CSV file you wish to import. 0128 </para> 0129 </sect3> 0130 0131 <sect3> 0132 <title>CSV Import Wizard: Separators</title> 0133 <para> 0134 The wizard will now have advanced to the <guilabel>Separators</guilabel> page, 0135 and you should now see your data. 0136 </para> 0137 0138 <screenshot> 0139 <mediaobject> 0140 <imageobject> 0141 <imagedata fileref="csvImporter_2.png" format="PNG" /> 0142 </imageobject> 0143 </mediaobject> 0144 </screenshot> 0145 0146 <warning> 0147 <para> 0148 It may appear that the displayed entries in the upper section of the 0149 plugin window may be edited, and in fact they may, but any edits are not 0150 kept. The table is purely for display, not for editing. The input file 0151 is never altered by the plugin, and the data actually imported comes from 0152 the input file, not from the display. The one exception to this is 0153 covered in <link linkend="details.impexp.csv.secsym">Securities and 0154 Symbols</link> below. 0155 </para> 0156 </warning> 0157 0158 <para> 0159 The plugin should have detected the appropriate <guilabel>Field 0160 Separator</guilabel> to use, and it is not usually possible to select a 0161 different one. In fact, attempting to do so will reset any field choices you 0162 may already have made. There is also a selector for the <guilabel>Text 0163 Delimiter</guilabel>, but generally the quote (") is correct. Now click on 0164 the <guibutton>Next</guibutton> button. Depending upon the earlier selection 0165 you made, you will now be on either the Banking page or the Investment page. 0166 </para> 0167 </sect3> 0168 0169 <sect3> 0170 <title>CSV Import Wizard: Banking</title> 0171 <para> 0172 On this page, you select the column numbers from which to import the relevant fields. 0173 </para> 0174 0175 <screenshot> 0176 <mediaobject> 0177 <imageobject> 0178 <imagedata fileref="csvImporter_3.png" format="PNG" /> 0179 </imageobject> 0180 </mediaobject> 0181 </screenshot> 0182 0183 <para> 0184 For most fields, you just need to use the appropriate dropdown to select the 0185 appropriate column. However, there are a few special considerations. 0186 </para> 0187 0188 <itemizedlist> 0189 <listitem> 0190 <para> 0191 In the center are two radio buttons. If your file has a single column for all 0192 values, select <guilabel>Amount</guilabel> column. However, if there are separate 0193 columns for debits and credits, select <guilabel>Debit/credit</guilabel> column. 0194 This will enable either the <guilabel>Amount</guilabel> column selector or the 0195 <guilabel>Debit</guilabel> and <guilabel>Credit</guilabel> column selectors. 0196 </para> 0197 </listitem> 0198 0199 <listitem> 0200 <para> 0201 It is possible to select more than one column for the Memo field, by 0202 consecutive selections. Memo columns already selected are marked in the 0203 drop-down with an asterisk (*). If you select multiple columns in this way, 0204 their contents will be concatenated in the Memo field. 0205 </para> 0206 </listitem> 0207 0208 <listitem> 0209 <para> 0210 If you attempt to choose the same column number for two fields, the plugin 0211 will alert you and clear both selections. However, it is possible, if 0212 desired, to use the same column in both the 0213 <guilabel>Payee/Description</guilabel> and <guilabel>Memo</guilabel> fields. 0214 If you select a column for the <guilabel>Payee/Description</guilabel> field, 0215 and then select the same field for the <guilabel>Memo</guilabel> field, you 0216 will receive a warning that duplicate columns have been selected, but asking 0217 if you wish to proceed. If you do, click <guibutton>Yes</guibutton>. 0218 </para> 0219 </listitem> 0220 0221 <listitem> 0222 <para> 0223 One particular reason to also capture the Payee/Descriptor field in the Memo 0224 field is that the incoming Payee/Description field might get completely 0225 changed on import when &kmymoney; does transaction matching. Selecting that 0226 field also as Memo will preserve that data, which would otherwise get lost. 0227 </para> 0228 </listitem> 0229 </itemizedlist> 0230 0231 <para> 0232 If you notice you have made an incorrect choice, just change that selection. 0233 If several changes need to be made, click the 0234 <guilabel>Clear</guilabel> button. 0235 </para> 0236 0237 <para> 0238 Once columns have been chosen for all the necessary fields, the 0239 <guilabel>Next</guilabel> button will be enabled, and clicking it will advance 0240 the wizard. 0241 </para> 0242 </sect3> 0243 0244 <sect3> 0245 <title>CSV Import Wizard: Investment</title> 0246 <para> 0247 This page is similar to the <guilabel>Banking</guilabel> page, although it 0248 is somewhat more complex. Most selections are fairly obvious, but there are 0249 some items which can seem confusing until you have completed the process 0250 once or twice. 0251 0252 <screenshot> 0253 <mediaobject> 0254 <imageobject> 0255 <imagedata fileref="csvImporter_4.png" format="PNG" /> 0256 </imageobject> 0257 </mediaobject> 0258 </screenshot> 0259 </para> 0260 0261 <para> 0262 <itemizedlist> 0263 <listitem> 0264 <para> 0265 As on the <guilabel>Banking</guilabel> page, you may select more than one 0266 column for the Memo field 0267 </para> 0268 </listitem> 0269 0270 <listitem> 0271 <para> 0272 The <guilabel>Type/Action</guilabel> selector is to identify the column which 0273 contains the action type, such as Buy, Sell, Dividend, &etc; 0274 </para> 0275 </listitem> 0276 0277 <listitem> 0278 <para> 0279 The <guilabel>Price Fraction</guilabel> selector is to indicate the 0280 fraction/multiplier for compatibility between imported and stored prices. For 0281 instance, if the import file price is in cents, but your &kmymoney; account is 0282 priced in dollars, select 0.01. Or, if your &kmymoney; data file pricing is 0283 in dollars, and so is the CSV file being imported, then set <guilabel>Price 0284 Fraction</guilabel> to 1.0. 0285 </para> 0286 </listitem> 0287 0288 <listitem> 0289 <para> 0290 Use the <guilabel>Fee Column</guilabel> selector if your file has a distinct 0291 column for fees. Beware, though, that the fee might have been taken into 0292 account in the price. If there is a fee, and it is a percentage figure, 0293 rather than a value, click the <guilabel>Fee is percentage</guilabel> check 0294 box. Note that on this page, this is the only field to explicitly include 0295 "column" in the label, to emphasize that it is for the fee column, not for any 0296 actual fee. 0297 </para> 0298 </listitem> 0299 0300 <listitem> 0301 <para> 0302 Below the column selectors are two areas for the security identity. Depending 0303 upon your broker or financial institution, your file may contain entries for 0304 only one or for several securities. 0305 0306 <itemizedlist> 0307 <listitem> 0308 <para> 0309 If the file contains transactions for just a single security, with the name 0310 possibly in a header row, the name should be entered into the 0311 <guilabel>Security Name</guilabel> box. The name you enter will be added to 0312 the drop-down list for future use. You may subsequently wish to remove that 0313 name from the list. If so, select it, then click the <guilabel>Hide 0314 security</guilabel> button. This removes it only from this list, and has no 0315 effect on your main &kmymoney; file. 0316 </para> 0317 </listitem> 0318 0319 <listitem> 0320 <para> 0321 If the file includes transactions for several securities, each will be 0322 identified by its ticker symbol in a column with further detail in another 0323 column. Select those columns in the <guilabel>Symbol</guilabel> and 0324 <guilabel>Detail</guilabel> selectors. It may be that a security has no 0325 official symbol, and in this case a pseudo-symbol may be invented; this is not 0326 a problem, as long as it uniquely identifies that security in the import file. 0327 Sometimes the actual activity type is embedded in the detail column, possibly 0328 prefixed by a standard text. For instance, if the field contains <quote>type: 0329 dividend</quote>, go to <guilabel>Filter</guilabel> text box and enter 0330 <quote>type: </quote> including the trailing space. 0331 </para> 0332 </listitem> 0333 </itemizedlist> 0334 </para> 0335 </listitem> 0336 </itemizedlist> 0337 </para> 0338 0339 <para> 0340 When all required fields are selected, 0341 the <guilabel>Next</guilabel> button will be enabled, and clicking it will 0342 advance the wizard. 0343 </para> 0344 </sect3> 0345 0346 <sect3> 0347 <title>CSV Import Wizard: Lines</title> 0348 <para> 0349 On this page, you indicate if any lines should be ignored at the beginning or 0350 end of the file. You also indicate the format of any date column. 0351 0352 <screenshot> 0353 <mediaobject> 0354 <imageobject> 0355 <imagedata fileref="csvImporter_5.png" format="PNG" /> 0356 </imageobject> 0357 </mediaobject> 0358 </screenshot> 0359 </para> 0360 0361 <formalpara><title>Start line</title> 0362 <para> 0363 Set this so the importer skips any header lines in the file. Your choice will 0364 be saved in this profile for future use. The start and end lines interact, and 0365 the start line may not be higher than the end line. If the <guilabel>Start 0366 line</guilabel> selector does not respond, check the end line setting. 0367 </para> 0368 </formalpara> 0369 0370 <formalpara><title>End line</title> 0371 <para> 0372 The importer will automatically set this to the last line in the file, or to 0373 the setting last saved. You will only need to adjust it if there are footer 0374 lines in the file the importer should ignore. Otherwise, you are likely to 0375 get a data error warning when the plugin attempts to parse incorrect 0376 data. Again, if the <guilabel>End line</guilabel> selector does not respond, 0377 check the <guilabel>Start line</guilabel> setting. 0378 </para> 0379 </formalpara> 0380 0381 <formalpara><title>Date format</title> 0382 <para> 0383 This needs to be set according to the order of year, month, and day in the 0384 dates in the file. If the plugin finds data incompatible with this setting, 0385 it will complain when you try to import. However, if the setting is wrong, 0386 but it produce invalid results not detected (such as data with no days higher 0387 than 12, so month and day could be switched) you will simply get incorrect data, 0388 because the plugin cannot know you made a mistake. In this case, the error will be 0389 obvious in the ledger after import. 0390 </para> 0391 </formalpara> 0392 0393 <para> 0394 Once ready, the <guilabel>Next</guilabel> button will be enabled, and clicking 0395 it will advance the wizard. 0396 </para> 0397 </sect3> 0398 0399 <sect3 id="details.impexp.csv.secsym"> 0400 <title>CSV Import Wizard: Securities and Symbols</title> 0401 0402 <para> 0403 For an Investment file, after the <guilabel>Lines</guilabel> page has been 0404 accepted, you need to assure that each security in the file is matched to the 0405 correct security in your &kmymoney; file, before import can proceed. At this 0406 point, another window will open, showing the securities and symbols contained 0407 in the import file. Note that unlike the data display in the main wizard 0408 windows, the changes you make on this page <emphasis>are</emphasis> imported. 0409 </para> 0410 0411 <para> 0412 Completing this page is straightforward, if you consider these items: 0413 <itemizedlist> 0414 <listitem> 0415 <para> 0416 Each row represents one transaction, and so it may appear there are 0417 duplicate rows. This is OK. 0418 </para> 0419 </listitem> 0420 0421 <listitem> 0422 <para> 0423 Each security name must match exactly the existing security as specified 0424 in &kmymoney;. If it does not match, it will be created as a new 0425 security, which you probably do not want, unless it represents the 0426 purchase of a new security. 0427 </para> 0428 </listitem> 0429 0430 <listitem> 0431 <para> 0432 A symbol must be shown for each security. 0433 </para> 0434 </listitem> 0435 0436 <listitem> 0437 <para> 0438 The <emphasis>only</emphasis> information on this page should be the 0439 security symbol and name. Any other information initially shown (such as 0440 date or activity type) is still in the actual import file, but should not 0441 be shown here. 0442 </para> 0443 </listitem> 0444 </itemizedlist> 0445 </para> 0446 0447 <para> 0448 You can edit a symbol or security name by double clicking the cell. For 0449 each security, if necessary, edit the name in one of its rows, If the correct 0450 security name appears in the imported file, double click on it to select it, 0451 then copy and paste/edit, taking care if you have used a variation or 0452 abbreviation within &kmymoney;. If you edit a security name, that edit will 0453 be applied to all rows with the same symbol. 0454 </para> 0455 0456 <para> 0457 Any line without a symbol will be treated as a brokerage-type checking 0458 item. If any transaction involves another account, ⪚, a checking or 0459 brokerage account for a received dividend or for making a payment, a message 0460 box will pop up for the account name to be entered for the transfer. This 0461 will generally be the Brokerage account you chose or created when you created 0462 the Investment account. Similarly enter the column number containing the 0463 payee, if requested. If a mistake is made when entering the account name, the 0464 import will go ahead, but &kmymoney; will not recognize it, and will flag 0465 those transactions as missing a category assignment. If the required account 0466 name is rather long, just enter a few characters. The import will proceed but 0467 the transactions will be flagged by &kmymoney; as missing a category 0468 assignment, and you will need to select the correct transfer account after the 0469 import. Click <guibutton>OK</guibutton> when done. The import process then gets 0470 handed over to &kmymoney;. 0471 </para> 0472 0473 <para> 0474 If you have more that one transaction referring to the same security, you can 0475 edit all of them at once, using multi-select. For instance, to add a symbol for 0476 several lines, press and hold the &Ctrl; key, and in the symbol column, 0477 select each transaction. While still holding the &Ctrl; key, 0478 all those symbol cells should still be selected, so click on one and enter the 0479 symbol. Click inside the window but outside that column, or hit 0480 &Enter; (not <guibutton>OK</guibutton>). Now that those 0481 transactions all have the same symbol, double click one detail entry and edit 0482 the security name as you wish. Click elsewhere on the window (or 0483 &Enter;) to accept the edit, which will then change all 0484 those entries. The remaining entries will show the symbols picked up from the 0485 transactions in the import file. 0486 </para> 0487 0488 <para> 0489 Now click <guibutton>OK</guibutton>, then <guibutton>Import</guibutton>. In the 0490 <guilabel>Enter Account</guilabel> box, enter the name of a Brokerage/checking 0491 account for funds. If you enter a valid name that account will be used. If 0492 you can't be bothered entering a correct but long name, enter a few 0493 characters. The import will accept that but the transactions in the ledger 0494 after import will need a proper account to be selected. For the 0495 <guilabel>Brokerage</guilabel> box, enter the number of the column 0496 containing that detail. Now, on the <guilabel>Invalid transaction</guilabel> 0497 box you may get a few entries because the activity type does not match the 0498 qty/price/amount combination. On each message, click <guilabel>Select 0499 Transaction Type</guilabel>, and a drop down will appear indicating valid 0500 activity types for that combination of values. 0501 </para> 0502 0503 <para> 0504 Now the import has occurred and you're into &kmymoney; to select the investment 0505 account to use. Then the checking account, if there were any brokerage type 0506 transactions. 0507 </para> 0508 </sect3> 0509 0510 <sect3> 0511 <title>CSV Import Wizard: Finish</title> 0512 <para> 0513 On reaching the Final page, the plugin automatically validates the values. If 0514 the numeric value column/s is/are highlighted in green, then the validation 0515 was successful and all that is necessary is to click <guibutton>Import 0516 CSV</guibutton> and control then passes to the main &kmymoney; program. 0517 However, if the start and/or end lines are incorrectly set, or if the wrong 0518 columns were selected, the highlighting will be in red, and an error message 0519 will appear indicating where the error lies. The user will then need to click 0520 <guibutton>Back</guibutton> to get to the relevant page to correct the error. 0521 </para> 0522 0523 <para> 0524 It might also be that if debit and credit columns are in use, one of those 0525 columns may legitimately contain no entries. This would mean that that column 0526 has no decimal symbol present, and this would result in a warning. If you see 0527 that this is the case, you may click either of the buttons to accept 0528 (<guibutton>Accept this</guibutton> or <guibutton>Accept all</guibutton>.) 0529 </para> 0530 0531 <formalpara><title>Decimal Symbol</title> 0532 <para> 0533 Another possible problem might be that the selected decimal symbol is 0534 incorrect. Selecting the symbol to match the data should clear that error. 0535 Normally, you should not need to change this selection. Note that the 0536 <guilabel>Decimal Symbol</guilabel> must be set to match your file, not your 0537 locale. If your locale setting has a different value, conversion will be seen 0538 to take place. The display of the file in the upper part of the window will 0539 show numeric fields highlighted in green if the current setting produces valid 0540 results, otherwise in red. The highlighting also reflects the <guilabel>Start 0541 line</guilabel> and <guilabel>End line</guilabel> settings. There could be 0542 warnings if any of the selected cells appear not to contain the selected 0543 symbol. 0544 </para> 0545 </formalpara> 0546 0547 <formalpara><title>Thousands Symbol</title> 0548 <para> 0549 This does not need to be selected, as it is set automatically based on the 0550 <guilabel>Decimal Symbol</guilabel>. It is provided purely as a guide. In 0551 addition, the selector will be inactive if none of the values to be imported 0552 is greater or equal to 1000. 0553 </para> 0554 </formalpara> 0555 0556 <formalpara><title>Import CSV</title> 0557 <para> 0558 Clicking this button tells the plugin to actually import the data from the 0559 file, based on the choices you have made above. &kmymoney; will prompt you 0560 for the correct account into which to import the data. 0561 </para> 0562 </formalpara> 0563 </sect3> 0564 0565 <sect3> 0566 <title>Make QIF File</title> 0567 <para> 0568 This button gives you the ability, after the import has been completed, to 0569 save the data from the CSV file as a QIF file, should you require one for any 0570 reason. This was actually the original functionality that drove the creation 0571 of this plugin. However, as &kmymoney; itself is now able to export a qif 0572 file, the capability is now probably of little use and is likely to be removed 0573 eventually. 0574 </para> 0575 </sect3> 0576 0577 <sect3> 0578 <title>Finishing up</title> 0579 <para> 0580 For a <guilabel>Banking</guilabel> import, the plugin has finished, and 0581 &kmymoney; will prompt you, as stated above, for the correct account into 0582 which to import the data. For an <guilabel>Investment</guilabel> import, 0583 however, a little more may be required. If, during import of a transaction, 0584 the plugin finds no valid transaction type, it will display the offending 0585 transaction, and the user may select a valid type to substitute, depending on 0586 the combination of quantity, price, and amount values. For every transaction, 0587 the plugin will validate the column contents to ensure they match the action 0588 type. For instance, if a quantity appears but no price or amount, it is 0589 assumed that the transaction can be only an Add or Remove Shares. Or, if 0590 there is an amount but no quantity or price, then a Dividend is assumed, &etc; 0591 </para> 0592 0593 <para> 0594 If you wish to save your settings, remember to click the 0595 <guibutton>Finish</guibutton> button, and the plugin will then close. 0596 </para> 0597 </sect3> 0598 0599 <sect3> 0600 <title>Adding Investment Activity Types</title> 0601 <para> 0602 If you find that your investment statements keep including activity types that 0603 are not recognized, just add them to the section in the resource file. (See 0604 <link linkend="details.impexp.csv.config">below</link> for more details on 0605 this file.) For instance, in the <literal>[InvestmentSettings]</literal> section 0606 of the file, the <literal>BuyParam</literal> field includes entries for 0607 <literal>Purchase</literal>, <literal>Buy</literal>, <literal>New Inv</literal>, 0608 and <literal>Switch In</literal>. If you find a different one, add it to the 0609 correct list and restart the plugin. You may notice that there are similarities 0610 in the entries in different fields, and you may find that the wrong activity type 0611 is being selected. The plugin checks these lists in the following order: 0612 <literal>Shrsin</literal>, <literal>DivX</literal>, <literal>Reinvdiv</literal>, 0613 <literal>Brokerage</literal>, <literal>Buy</literal>, <literal>Sell</literal>, and 0614 <literal>Remove</literal>. Re-ordering the lists to suit this does not work as 0615 might be expected, since the entries in the resource file get sorted into 0616 alphabetical order. If the offending parameter is one you don't need, just delete 0617 it from the file. If that is not possible, you may need to edit your file before input. 0618 </para> 0619 </sect3> 0620 0621 <sect3 id="details.impexp.csv.config"> 0622 <title>Configuration of CSV importer plugin</title> 0623 0624 <para> 0625 A well-known drawback of QIF format is that it is a fairly loose format. 0626 With CSV files, there is this same problem, only more so, in that there is 0627 no agreed standard at all. With investment files, in particular, there is 0628 much more scope for variation in specifying the different types of activities 0629 represented in the data. The plugin handles this by listing these activity 0630 types in a resource file, called <filename>csvimporterrc</filename>. The location 0631 of this file depends on your distribution. On a &Linux; system, this will be in 0632 <filename class="directory">$KDEHOME/share/config</filename> where 0633 <envar>$KDEHOME</envar> is usually <quote>.config</quote> within your home folder. 0634 If you are migrating from a version of &kmymoney; prior to 5.0 or later, the old 0635 location of <envar>$KDEHOME</envar> was <filename class="directory">.kde4</filename>. 0636 Using this resource file allows the user to add an activity type that the developer 0637 had not encountered. If the file does not exist when the importer first runs, the 0638 plugin will create a default version, containing a few of the more obvious 0639 descriptions. 0640 </para> 0641 0642 <para> 0643 A number of sample CSV files are provided (in the <filename class="directory"> 0644 kmymoney/contrib/csvimporter/</filename> folder in the source tree) in the hope 0645 that they may help. For example, in the investment sample, an activity type is 0646 "<literal>ReInvestorContract Buy : ReInvested Units</literal>". In the validation 0647 process, the first successful match is on the <literal>ReInv</literal> in 0648 <literal>ReInvestorContract Buy</literal>, so the transaction therefore gets 0649 classed as <literal>Reinvdiv</literal>, even though <literal>Buy</literal> also is 0650 mentioned. Another example which has been observed is an activity type of 0651 <literal>Reinvest</literal> even though the transaction included neither price nor 0652 amount, but only a quantity, so that needed to be treated as <literal>Add 0653 Shares</literal>, or <literal>Shrsin</literal>. 0654 </para> 0655 0656 <para> 0657 When this plugin was created, only a few investment formats had been seen as 0658 examples, and it may well be that you will encounter one which cannot be 0659 handled correctly. If you find such a file, please send a suitable example 0660 (edited to remove or replace personal information) to the &kmymoney; user list 0661 &userlist; or developer list &devlist;, the developer will do his best to 0662 modify the plugin to handle it. 0663 </para> 0664 </sect3> 0665 </sect2> 0666 </sect1> 0667