[GNC] ASX quotes not working
Geoff
cleanoutmyshed at gmail.com
Sat Oct 17 00:53:37 EDT 2020
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
>>>>
>>>
>
More information about the gnucash-user
mailing list