Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

Announcements
Make your voice heard! Participate in the 2020 Wisdom of Crowds® Survey. BEGIN SURVEY
Highlighted
Not applicable

Erratic mapping behaviour

I'm extracting information from a text file inseveral subdirectories using the recursive script somebody posted here recently, and the month names come in text (january, february, etc.). I'm using a mapping table to get the month numbers, but sometimes the mapping works (returns numbers correctly for all rows) and sometimes it only returns the number for some months, or sometimes none at all.

Any pointers as to what could be going on?

8 Replies
Highlighted
biester
Valued Contributor

AW:Erratic mapping behaviour

Is the behaviour reproducible, meaning: does the same text file you're reading in always produce the same result, or does "sometimes" mean: with the same text file you sometimes get a correct result and sometimes not? Which version of QV are you using? 9.0 ?

Rgds,
Joachim

Highlighted
Not applicable

AW:Erratic mapping behaviour


biester wrote:
Is the behaviour reproducible, meaning: does the same text file you're reading in always produce the same result, or does "sometimes" mean: with the same text file you sometimes get a correct result and sometimes not? Which version of QV are you using? 9.0 ?
Rgds,
Joachim<div></div>


with exactly the same text file, processed with the same script, using the same inline mapping table sometimes I get a correct result and sometimes not. I'm using version: 8.50.6261.5

Highlighted
biester
Valued Contributor

AW:Re: AW:Erratic mapping behaviour

Welllllll, as stable as 8.5 seemed to be the last days, but this sounds like a real big QlikView bug, if you can be sure that the text file has not changed (I'm thinking of a scenario where a text file with name XYZ.txt ist once saved as ASCII and the next day overwritten in a unicode format or a similar scenario). Sorry, but I ain't got any idea then. Perhaps you should harangue support with this if noone else here has a suggestion.

Rgds,
Joachim

Highlighted
hector
Valued Contributor

Erratic mapping behaviour

I got the same problem, but with QVD's files (instead your text files), sometimes works, sometimes doensn't.

I don't know why this happens, but i've resolved using lookup instead applymap.

regards.

Highlighted
biester
Valued Contributor

AW:Re: Erratic mapping behaviour

Hector,

thanks for the workaround, but anyway I'd suggest to report the thing to support as the problem seems to be common, and why not report a bug?

Rgds,
Joachim

Highlighted
wizardo
Contributor III

Erratic mapping behaviour

hi there

this comes from the refernce guide pdf:

Note: Mapping load does not support the use of QVD files as input source. The
QVD must first be loaded to a table and then a mapping load can be made
from this table.

so that answers the QVD problem, might be the same with txt

what you must do is load the table from qvd in a regular way and then use mapping load with resident from the preloadd table. i belive it will make the problems go away

Mansyno

Highlighted
MVP & Luminary
MVP & Luminary

Erratic mapping behaviour

This behavior sounds very strange... I'm using mapping a lot, and I haven't seen anything like this happening, on any of QlikView versions.

I'd recommend checking out the formatting of the text that's being mapped. Since the text is coming from several different txt files, could there be some differences:

- Different case (lower/upper/mixed) ? would it help if you always converted the string into upper case, prior to mapping?

- Could there be any leading or training "spaces" that make the string look different than the one in the map? Would the problem go away if you used trim(text) prior to mapping?

If you don't provide a default value, the unmapped values with remain unmapped - can you see any pattern? Is it any specific month?

cheers,

Highlighted
Not applicable

Erratic mapping behaviour

I have experienced the same issue and it is due to optimized versus normal load. The work around solution is to ensure that whenever you perform a mapping load from a QVD file to make sure that the load is not performed in an optimized way.

Check your data that needs to be mapped and just add a function to the load you are performing. So instead of :

map_month

mapping load distinct

     date                    as map_date,

     month                    as map_month

from table.qvd (qvd);

you should use

map_month

mapping load distinct

     date                    as map_date,

    text(month)         as map_month

from table.qvd (qvd);

If you do not want the data to be changed (if you think the text function might give an unpredictable result), just add a where clause to enforce a break in the optimzed load.

You will loose the optimized (faster) load, but I guess that for mapping tables the loss in performance is acceptable. Anyway, your applymap will not work otherwise. You can also do an optimized load and a mapping load from the resident table as already suggested.

In fact, the same rule applies in section access where a user table is loaded for example.