View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003492||Ham Radio Deluxe||Bug||public||2019-10-13 05:55||2019-11-08 02:32|
|Target Version||Fixed in Version||22.214.171.124|
|Summary||0003492: Complete the Callsign Lookup function for the Country List method|
|Description||In the 126.96.36.199 beta build (188.8.131.52 can't be tested because it crashes 0003484), the callsign lookup method known as "Country List" does not populate any data in the fields in the ALE. The purpose of this Mantis record is to facilitate resolving this to the field mapping specification.|
Country List is a stand-alone method that does not require data from any other Enabled Methods. As far as I know, it works by using the regular expression logic in the Country List to determine the country by parsing the callsign. This is the correct approach for the Country List method.
Once the country is found for a given callsign, the following ALE fields should be populated from the data found in the Country List:
- COL_COUNTRY should contain the name from the country list for this result
- COL_CONT should contain the name from the country list for this result
- COL_DXCC should contain the DXCC numeric value from the country list for this result
- COL_HRDCOUNTRYNO should contain the name from the country list for this result
None of the fields are being populated.
|Steps To Reproduce||- Open up Logbook|
- Setup Callsign Lookup by Tools > Configure > Callsign Lookup and make sure that Country List is the only item showing in Enabled Methods
- Click "Ok"
- Open an ALE
- Enter the callsign "KH0A" (without the quotes)
- Press the "Lookup" button or hit tab
Result: No fields are populated
|Additional Information||The correct result should be:|
- COL_COUNTRY is "Mariana Is.
- COL_CONT is "OC"
- DXCC is = "166"
- COL_HRDCOUNTRYNO is "166"
|Tags||No tags attached.|
Field mapping spec attached.
CallsignLookupMapping32 (most_current)c.xlsx (25,768 bytes)
Looks like there's two problems here. One is that the code doesn't have a perfectly complete list of fields from the lookup operation result to be copied to the fields in the ALE. There are at least five different ways to invoke the call sign lookup, and seach needs to be carefully tested to demonstrate that the field mappings are correct. When incorrect, it'll appear as though the data just isn't returned.
The other problem is that it seems I'm not using the right specification. I was using a file named "Callsign Lookup Mapping 40.docx.xlsx". (Despite the combined extensions, it's really a spreadsheet.) This is from sometime in April of 2019.
That file, for the "Country Lookup" source, has "N/A" for all fields except for FLD_QSO_COUNTRY, which it says comes from "Country". There's no HRD country number field described in that document
On 2019-09-21, I found a spreadsheet named "CallsignLookupMapping32 (1).xlsx" attached to Mantis 3001. That spreadsheet has some fields highlighted yellow, but I don't know what the highlighting might mean. There, a new row for the "HRD C ountry Number" appears, but the Country List data source doesn't have an entry for it. Instead of "N/A", it's just blank.
Here in this issue today on 2019-10-13, a file named "CallsignLookupMapping32 (most_current)c.xlsx" is presented. For the Country List source, this file does have an entry for the HRD country number, plus FLD_QSO_COUNTRY, FLD_QSO_CONT, and FLD_QSO_DXCC.
So I'm left wondering:
Which specification should I be using? Looks like it has been revised over the last couple of weeks, and I wasn't expecting so many changes. Should I wait for you to stabilize the spreadsheet before getting to work?
I'm also curious about the highlighting in the spreadsheets. The "CallsignLookupMapping32 (most_current)c.xlsx" file has some yellow, some red, some gold highlighting. Maybe the gold highlighting means "Revised from prior version", but I guess I dont' have the correct prior version because there are more changes than what's gold. What do red and yellow highlighting mean?
Finally, I want to be explicitly sure that the Country List lookup source is not meant to return the IOTA value from the country list. Is that true?
Meanwhile, I can get started fixing the ALE's field mapping list once my HRD license is restored.
I don't ever recall seeing a v4x of the field mapping spec. I would use "CallsignLookupMapping32 (most_current)c.xlsx" (as it does contain a few corrections; specifically to COL_HRDCOUNTRYNO and for (I think) Continent in the Country List method.
I'm concerned that we've conflated a couple terms here. As a combined document or file, the LogbookCountryDataEx.xml is not collectively referred to as the "Country List". It has three sections in it - Countries001, NonDXCCCountries001, and UniqueCalls001 (I'm not sure where the naming came from).
When we refer to "Country List", we're referring to the combined contents of two sections - Countries001 and NonDXCCCountries001. UniqueCalls001 is not part of the "Country List."
The UniqueCalls001 section in this file is what we refer to as "UCSDB (Public)".
So to be explicitly clear in answering your question, with this as the basis of terms...
The "Country List" (as defined by the aggregation of data in the Countries001 and NonDXCCCountries001 sections in LogbookCountryDataEx.xml is NOT used for IOTA because there is no IOTA data in those sections of the file.
The UniqueCalls001 section in this file DOES have IOTA data and the field mapping spec specifies that IOTA is populated when there's a match during the "UCSDB (Public)" lookup. (Similarly, IOTA will be contained in the UCSDB (Private), but that's a different file.)
I've asked several times about what "Country List" means, and I now have an answer -- thanks. Definitions and nomenclature are good things to put into specifications, so in the future I hope we can consider doing that. What's meant by "Country List" is not apparent from examining the existing product documentation or the product. In fact, if we use the product, we do see a "country list" that does have an ITOA value listed for each function.
Further, in the code, there is a set of "HRD Country List" functions. This bundle of functions offers a way to get an IotA name from a given country name -- which doesn't seem particularly viable, but it does exist.
I'm wondering how you've tested this code. In the ALE, I can see a drop-down for the country name and a drop-down for Continent. These aren't populating due to the related bug.
But I don't see controls in the ALE that show the DXCC or HRDCN. Where are you finding them?
Excellent progress. Yes, it's good to have these things better defined. In the past, I think there was an undocumented understanding that the "Country List" and UCSDB (Public) were logically separate - even if they were in the same file. Actually, I think there was a time when someone was writing code to separate them... but (in the end), it's just one more file to have to maintain. I'm fine with it either way.
I tested by looking at fields in the ALE after the callsign lookup took place.
As for the DXCC and HRDCN... here's how I tested this (tagging on to the steps above):
- I flipped to the "Country" tab in the ALE and DXCC was not populated (FWIW - I was told in the past that this isn't a database field and that what we see in the Country tab is more of a "dynamic" value, than one that is stored in the database. So with that in mind, I continued with the following...
- I saved the QSO and went into the database directly (opened it with Access) and DXCC and HRDCN weren't populated
From within the Countries Manager (in Logbook), I looked last night to see if there was any IOTA data in the countries (not the UCSDB, where there is IOTA)... and I couldn't find any IOTA data within the country data. If you see some, let me know. I should probably find a different way to check it.
fixed with this checkin:
||I validated this one.|
|2019-10-13 05:55||WA9PIE||New Issue|
|2019-10-13 05:55||WA9PIE||Status||new => assigned|
|2019-10-13 05:55||WA9PIE||Assigned To||=> K7ZCZ|
|2019-10-13 05:55||WA9PIE||Relationship added||child of 0003001|
|2019-10-13 05:55||WA9PIE||Relationship added||related to 0003464|
|2019-10-13 05:56||WA9PIE||File Added: CallsignLookupMapping32 (most_current)c.xlsx|
|2019-10-13 05:56||WA9PIE||Note Added: 0008796|
|2019-10-13 07:50||WA9PIE||Description Updated||View Revisions|
|2019-10-13 16:21||K7ZCZ||Note Added: 0008814|
|2019-10-13 16:21||K7ZCZ||Assigned To||K7ZCZ => WA9PIE|
|2019-10-13 16:21||K7ZCZ||Status||assigned => feedback|
|2019-10-13 16:48||WA9PIE||Assigned To||WA9PIE => K7ZCZ|
|2019-10-13 16:48||WA9PIE||Status||feedback => assigned|
|2019-10-13 16:48||WA9PIE||Note Added: 0008816|
|2019-10-14 18:08||K7ZCZ||Relationship added||related to 0003502|
|2019-10-14 18:09||K7ZCZ||Note Added: 0008817|
|2019-10-14 18:09||K7ZCZ||Assigned To||K7ZCZ => WA9PIE|
|2019-10-14 18:55||WA9PIE||Assigned To||WA9PIE => K7ZCZ|
|2019-10-14 18:55||WA9PIE||Note Added: 0008818|
|2019-10-15 09:06||K7ZCZ||Status||assigned => resolved|
|2019-10-15 09:06||K7ZCZ||Resolution||open => fixed|
|2019-10-15 09:06||K7ZCZ||Note Added: 0008820|
|2019-10-21 08:27||WA9PIE||Status||resolved => closed|
|2019-10-21 08:27||WA9PIE||Fixed in Version||=> 184.108.40.206|
|2019-10-21 08:27||WA9PIE||Testing||Not Started => Beta Successful|
|2019-10-21 08:27||WA9PIE||Note Added: 0008886|
|2019-10-21 09:52||WA9PIE||Assigned To||K7ZCZ => WA9PIE|
|2019-11-08 02:12||WA9PIE||Fixed in Version||220.127.116.11 => 18.104.22.168|
|2019-11-08 02:32||WA9PIE||Project||3 - Current Dev List => Ham Radio Deluxe|