Geoff:

On 2022-08-13 22:38, Geoff wrote:
Hi Jim

I don't have any experience manipulating GnuCash XML files, but in principle what you want to do should work, although it does void your GnuCash warranty.

However, if you are going to all this effort you may find it more worthwhile to invest your time in learning how to use a general purpose automation tool.  This approach has two advantages over data manipulation: (1) Automation drives the GnuCash GUI and thus protects you from accidental data corruption. (2) You will be able to use your new automation skills to automate any subsequent GnuCash tasks, for example loading historical transactions to your 130 securities.

Thank you for this suggestion!

I think about XML files more often than I script application GUIs, so I did not even consider this approach.

I am on macOS. Apple has a built-in scripting system, with a language "AppleScript", which can perform GUI actions[1]. There is also a bridge to the Python language via the "PyAutoGUI" module[2].

I will give those a look. Maybe it will not just help me get my 130 securities entered, it will also give me a reusable approach.

[1] <https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/AutomatetheUserInterface.html>
[2] <https://pypi.org/project/PyAutoGUI/>

Best regards,
     —Jim DeLaHunt


For Windows, check out:
AutoHotKey https://www.autohotkey.com/
or:
Power Automate Desktop https://powerautomate.microsoft.com/en-us/desktop/

I can't recommend anything for Linux, but Google is your friend:
https://alternativeto.net/software/autohotkey/?platform=linux

Hope this helps.

Regards

Geoff
=====

On 14/08/2022 11:28 am, Jim DeLaHunt wrote:
Hello, folks:

I am a long-time GnuCash user, and for all those years I have pretty much not attempted to track my investments in GnuCash. But now I want to start.  My first goal is to import many years of past activity.

I have downloaded the transactions from my brokerage account as a CSV file. The first thing I get out of this is the name and symbol of about 130 securities. I am wondering if there is a practical way to bulk import these into GnuCash. That is, instead of visiting Tools -- Security Editor, and pressing the Add button 130 times, and filling out the "New security" dialogue 130 times, is there a more efficient path?

Looking at the File… Import menu, I do not see an option to import Securities. Looking at the documentation, wiki, and list archives, I don't see a mention of this. Is there some bulk import mechanism I am overlooking?

I took a look at the uncompressed XML contents of a new, simple .gnucash book file. It appears that the data entered in the "New security" dialogue gets stored as <gnc:commodity> entities. There appears to be a pretty simple relationship between the fields of the dialogue and the text within the <gnc:commodity> entity. The entities are stored in a certain order, sorted by <cmdty:space> then <cmdty:id>. There is a <gnc:count-data cd:type="commodity"> entity which seems to contain a text count of the non-CURRENCY gnc:commodity entries.

This makes me wonder if I could transform my list of 130 security names and symbols into <gnc:commodity> entities, and insert them into the GnuCash XML of my book.

Are there complexities or pitfalls about this approach which I might be overlooking?  We can certainly stipulate that manipulating the XML content directly is unsupported and risky, I must be careful and keep backups, I might blow off my fingers, etc.  For what it's worth, I believe that I am pretty proficient with editing XML, processing CSV files, and scripting manipulations of text data.

Once I have the securities added to the book, I then need to add the appropriate child accounts to my brokerage accounts, each denominated in the appropriate security type and symbol. It looks like that is straightforward to do with a CSV of accounts in the correct format, and the File… Import…  Import Accounts from CSV… menu item. I have a few child accounts which I entered from the UI which will serve as examples.  Is there any way in which this is more difficult than it looks?

Cheers,
      —Jim "ADBE ALNIX AOL … VUG VWO ZTD81" DeLaHunt

_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to