Documents for QlikView related information.
This information is current as of QV 8.5.
If a QVD is used as input to a MAPPING LOAD, mapping will not work if the QVD loads optimized. For example:
Map1:MAPPING LOAD * FROM codes.qvd (qvd);Map F1 USING Map1;
Map1:MAPPING LOAD * FROM codes.qvd (qvd);
Map F1 USING Map1;
Field F1 will not map. You will receive no warning of this problem.
The Reference Guide documents this restriction:
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.
Here is an example of the workaround suggested by the Ref Guide:
TempMap:LOAD * FROM codes.qvd (qvd);Map1:MAPPING LOAD * RESIDENT TempMap;DROP TABLE TempMap;
Forcing an un-optimized load is another workaround. This technique is not documented in the Ref Guide but it seems to work reliably in QV 8.5. There is no guarantee it will work in future releases.
Map1:MAPPING LOAD * FROM codes.qvd (qvd) WHERE 1=1;
The "WHERE 1=1" clause will force an un-optimized load.
Apparently this restriction has been removed in QV10 SR2 - but I have not tried it in a production evironment yet.
This also goes for MAP...USING. If field MyField1 is loaded as part of an optimized QVD load, then MAP MyField1 USING MyMap1 will NOT work. MyField1 is left just as it is - no warning! If you break the optimized load then it works as expected. This is on v11 SR1.
Been flummoxed by this for over an hour - thanks Rob!
Is there a a reason that you are using MAP USING rather than an ApplyMap? The problem doesn't exist any more with the latter. For a discussion of the differences please see here: http://community.qlik.com/message/224985