Thanks for confirming John.

Fingers crossed the ASX don't make any more changes to their web site for another decade ;--)

Geoff
=====

On 17/10/2020 3:31 pm, John Bonnett wrote:
Hi Geoff,

Thanks for all your effort too, the least I can do is try to help you with good feedback. Incidentally I am a recently retired software developer so, even though I had never worked with Perl, I was pretty sure I knew what you needed to know.

I can report that, with your new ASX.pm, everything works, inside and outside GnuCash. All my ASX stocks retrieve and also one from NASDAQ.

Thanks again for your help,
John Bonnett

On 17/10/2020 2:10 pm, Geoff wrote:
Hi John

Thanks for your patience and detailed feedback, it has been very helpful.

Firstly, I installed strawberry-perl-5.18.2.2-32bit and was able to reproduce the original error you reported on line 138.  This was due to sloppy coding on my part.  Later versions of perl are more forgiving, however that line should in fact be:

$info{$stock,$label} = $decoded_json->{$label_map{$label}};

(The explanation being that $decoded_json is a *reference* to a hash, and the correct way to dereference it and access its values is with the "->" notation, not "%$".)


Secondly, the error you encountered with stock "14D" (in your email below) is not due to the stock code starting with a number, but a lack of defensive coding on my part.  For this stock, the ASX did not return the "year_range" data element, and the message you saw (which is only a warning) says that the element has an undefined value.  I have attached an updated version of ASX.pm with a fix for this:

C:\Program Files (x86)\gnucash\bin>perl gnc-fq-dump asx 14d
Finance::Quote fields Gnucash uses:
    symbol: 14d                  <=== required
      date: 10/16/2020           <=== recommended
  currency: AUD                  <=== required
      last: 0.135                <=\
       nav:                      <=== one of these
     price: 0.135                <=/
  timezone:                      <=== optional


Thirdly, I can successfully retrieve prices in GnuCash itself - see attached screenshot.  If you don't mind, can you review your configuration against that, and try again with the updated ASX.pm module?


Fourthly, the Finance::Quote developers have contacted me and I hope to be able to submit this as a fix that will go into the distribution. After some more rigourous testing obviously!


Regards

Geoff
=====



On 16/10/2020 3:29 pm, John Bonnett wrote:
Hi Geoff,

I am still not getting all my stocks retrieved inside GnuCash but I may have made some progress.

I checked the stocks not working using gnc-fq-dump and they all retrieved except for one I still had that had been de-listed, so that is as expected, but does not explain why they don't work inside GnuCash.

I retrieved them all in one call to gnc-fq-dump and I noticed there was an error message at the start. After a little more digging I found just one stock was causing that problem as follows:

PS C:\Program Files (x86)\gnucash\bin> perl gnc-fq-dump ASX 14D
Use of uninitialized value in transliteration (tr///) at C:/strawberry/perl/site/lib/Finance/Quote/ASX.pm line 141.
Finance::Quote fields Gnucash uses:
     symbol: 14D                  <=== required
       date: 10/16/2020           <=== recommended
   currency: AUD                  <=== required
       last: 0.145                <=\
        nav:                      <=== one of these
      price: 0.145                <=/
   timezone:                      <=== optional
PS C:\Program Files (x86)\gnucash\bin>

It may be that having a stock symbol starting with a number is causing the problem, but it still retrieves OK. It did occur to me that, depending on the order that GnuCash does the retrieving internally, that error may make the program think there are no valid values after that message and explain why some of the stocks are missing in the results.

Best regards,
John Bonnett

On 16/10/2020 9:05 am, John Bonnett wrote:
Hi Geoff,

I seem to have partly solved my problem. Following up on a comment from Bill and your interest in the version of Perl I was running, I chased up a recent version of Strawberry Perl.

I got v5.32.0 64bit and installed that. It still thought I had the older 32bit installed so I tried uninstalling that. This broke the 64bit install, so I repaired it and then ran the "Install Online Price Retrieval for GnuCash" option on the Windows GnuCash menu. This got the standard installation back. I then followed your original instructions about replacing ASX.pm and ran your check as follows:

PS C:\WINDOWS\system32> cd "C:\Program Files (x86)\gnucash\bin"
PS C:\Program Files (x86)\gnucash\bin> perl gnc-fq-dump ASX BHP
Finance::Quote fields Gnucash uses:
    symbol: BHP                  <=== required
      date: 10/15/2020           <=== recommended
  currency: AUD                  <=== required
      last: 36.77                <=\
       nav:                      <=== one of these
     price: 36.77                <=/
  timezone:                      <=== optional
PS C:\Program Files (x86)\gnucash\bin>

I then tried running "Get Quotes" from inside GnuCash and it seems to have partly worked. Some of my ASX stocks are still not retrieving but others are. I will investigate using gnc-fq-dump and report back.

Thanks for your help,

John Bonnett



_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see 
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
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