tag:infinitekind.tenderapp.com,2009-01-14:/discussions/moneydance-development/31-questions-re-a-plugin-for-semi-automated-transaction-importInfinite Kind: Discussion 2015-03-31T16:04:44Ztag:infinitekind.tenderapp.com,2009-01-14:Comment/22580532010-07-16T18:34:40Z2010-07-16T18:34:40ZQuestions re: a plugin for semi-automated transaction import<div><p>John,</p>
<p>Wow, this extension would be a huge asset to many of our users,
myself included! I don't believe it is currently possible to do the
import without asking for user input, but I've emailed our
developer to see if he has any input or suggestions.</p>
<p>Please let me know if I can be of further assistance,</p>
<p>Angie Rauscher<br>
Moneydance Support</p></div>Angie Rauschertag:infinitekind.tenderapp.com,2009-01-14:Comment/22580532010-07-16T19:49:55Z2010-07-16T19:50:50ZQuestions re: a plugin for semi-automated transaction import<div><p>Hi John,</p>
<p>This is a great idea. The easiest solution is to invoke the
following method on the extension's context object:</p>
<p>importQIFIntoAccount(RootAccount rootAccount, File qifFile,</p>
<pre>
<code> byte dateFormat, char dec,
CurrencyType currency, Account account,
byte importMode, boolean acctsOnly)</code>
</pre>
<p>The parameters are:<br>
rootAccount: the obvious answer :) qifFile: the QIF File
dateFormat: one of the following: 0 (automatic, not very good), 1
(MDY), 2 (DMY), 3 (YMD) dec: the decimal character (in the US this
is '.') currency: the currency of the imported file. Usually the
same as account.getCurrencyType() account: the account into which
the QIF file should be imported importMode: 1 (downloaded from
bank) or 2 (imported from another app). you want 1 accountsOnly:
false</p>
<p>However, maybe I can throw another couple of ideas by you...</p>
<p>First, nearly all banks allow you to download OFX (or QFX...
they're identical but for the file extension) files from their web
interface. These are usually labeled as "MS Money" or "Quicken"
files. OFX and QFX files are <em>far</em> preferable for importing
downloaded data from banks as they include unique identifiers for
each transaction which allow moneydance to ignore duplicates.</p>
<p>Second, we've had an item on our to-do list for a while now
which is to have a background thread running that monitors your
"downloads" folder for new OFX, QFX and QIF files. When it detects
a new file it will import that file with as much automation as
possible (depending upon the file type and whether or not MD can
connect the downloaded data to an existing account... with OFX/QFX
files this will be easy). We'd like to combine this with a hook
that will spawn a browser window to download transactions from
Moneydance to make downloading non-direct-OFX data as seamless as
possible. Maybe we could collaborate on that? I just wanted to
mention it in case you'd like to avoid duplicate effort.</p>
<p>Thanks!<br>
Sean</p></div>Sean Reillytag:infinitekind.tenderapp.com,2009-01-14:Comment/22580532010-07-30T12:00:49Z2010-07-30T12:00:52ZQuestions re: a plugin for semi-automated transaction import<div><p>I've gotten the login/export process down to three clicks. It requires the iMacros and Export Cookies plugins for Firefox.<br />
1. Open Firefox. I set up Firefox to open all the financial websites from which I want to export on startup (Chrome is my normal browser, so this is the only thing I use FF for).<br />
2. Run the login macro. I used iMacros to set up a macro that logs into all the sites and takes the necessary actions. For example, Bank of America uses sessions that are tied to each individual page, so you have to actually be on the transaction download page to be able to export the correct cookies.<br />
3. Run the Export Cookies extension and save the file to a temp directory.</p>
<p>I also have a Python script that reads in the cookie file and downloads an OFX file from Bank of America. Unfortunately this is not generalizable...every site is a bit different. For example, there's a specific cookie you have to look for from BoA to determine which subdomain is hosting your current session. So that's the big downside of this plugin - every site will have to have a custom script written for it.</p>
<p>The only thing left is to write the MD plugin. If you add the feature you mentioned so that MD watches a specific directory for new OFX files, that would be great. It would definitely simplify the plugin.</p></div>John Didiontag:infinitekind.tenderapp.com,2009-01-14:Comment/22580532010-07-30T16:40:45Z2010-07-30T16:40:47ZQuestions re: a plugin for semi-automated transaction import<div><p>I was hoping to use the online banking interface for this, but I don't see how I can as it is assumed that "Direct Connect" will be used. Basically I guess I want a hook so that when the user clicks Download Transactions, my code will get called, which will then figure out the appropriate dates for the query and execute the appropriate Python script to process the cookies file and actually download the transactions. Is there any way to do this?</p></div>John Didiontag:infinitekind.tenderapp.com,2009-01-14:Comment/22580532010-08-05T03:56:05Z2010-08-05T03:56:05ZQuestions re: a plugin for semi-automated transaction import<div><p>Hi John, I've been trying to think of a way that moneydance could invoke an extension when the user selects the Download menu. Unfortunately I don't see a straightforward way to do it, mainly because the Download menu is disabled unless there is a configured direct OFX connection for the account. The best alternative is to add a menu item to the extensions menu which can be done using the extension context's registerFeature() method. I will look into adding a quick-and-dirty URL setting for accounts that will invoke a specific URL whenever the Download menu is selected.</p></div>Sean Reillytag:infinitekind.tenderapp.com,2009-01-14:Comment/22580532010-08-05T10:57:08Z2010-08-05T10:57:09ZQuestions re: a plugin for semi-automated transaction import<div><p>Understood. I think it would be a nice feature to add to make the direct OFX connection more abstract, at least for downloading. If it just took an account as input and returned an OFX file or stream then both the normal direct connect services and plugins like mine could hook into the download menu item. I'm sure this probably requires a bunch of refactoring, so I won't hold my breath :)</p></div>John Didion