Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
aritting
Creator
Creator

Mapping a drive to the QDF Framework results in reload errors because '### QDF Info, Shared Global Variables using cache'

I'm using the QDF Framework version 1.7.1 but I think this also affected 1.7.

I install the framework to C:\Qv-Docs\SourceDocs\01.DWQLIKDEV-LOCAL on my pc

or I install it to E:\Qv-Docs\SourceDocs\01.DWQLIKDEV on the server.  I copy the container contents from the server to my pc.

I map a drive Q:  to the \\localhost path to the framework on my pc so it is easier to get to all the files and I may have the copy of the QDF containers on different paths among the several computers I use so the mapped Q:\ drive keeps things consistent.

When I reload my applications using the Q:\ mapped drive the vG.Shared* variables do not get updated and if I delete these variables from the qlik application they do not get reloaded.

I would like to figure out how to use the QDF framework on a network drive letter

and have the framework load these programs:

### QDF Info, 2.GenericContainerLoader.qvs  Started'

vL.temp_table_map << ContainerMap 3 Lines fetched

vL.temp_table_map 3 Lines fetched

'### QDF Info, found Shared container, mounting as vG.SharedBasePath'

10 Replies
aritting
Creator
Creator
Author

If I modify the 0.init.qvs file and comment out the if statement then my programs run correctly when running from the mapped network drive.  I'm not sure what is going on because the statement:

IsNull(filesize('$(vG.$(vL.QDF.LinkShared_Folders)BasePath)\Initlink.qvs'))

results in 0 for both tests running it from the actual path on C:\ or the mapped network drive on Q:


// Shared_Folders Initiation
//if not IsNull(filesize('$(vG.$(vL.QDF.LinkShared_Folders)BasePath)\Initlink.qvs'))=-1 then
// trace '### QDF Info, $(vL.QDF.LinkShared_Folders) Global Variables using cache';
//else
$(Include=$(vG.SubPath)\4.GenericContainerLoader.qvs);
// Load Include for LCGV function
// This function is to be used inside the Qlik scripts to link between containers
CALL LCGV('$(vL.QDF.LinkShared_Folders)');

if IsNull(filesize('$(vG.$(vL.QDF.LinkShared_Folders)BasePath)\Initlink.qvs'))=-1 then
  set vL.QDF.LinkShared_Folders =; // If no shared container found remove link
  trace '### QDF Info, Shared container is missing';
endif
//endif;

Magnus_Berg
Employee
Employee

Hi Andy, the cache is there to avoid recreation of the global variables during every load. If cache does not work in your case it's easy to disable by adding this line first in the script (works in v1.7.1):
set vG.BasePath=;

Hope that this helps, regards

Magnus

 

aritting
Creator
Creator
Author

in the init script?

Magnus_Berg
Employee
Employee

Before the init section in the load script.

SET vG.BasePath=; //Uncomment this line to reset cache
$(Include=lib://Root\InitLink.qvs);

regards Magnus

aritting
Creator
Creator
Author

Thanks.  Do you think the QDF framework should work with a mapped network drive.

Magnus_Berg
Employee
Employee

Andy, the cache function is a compromise to reduce amount of QDF related lines in the logs, this after several complains.The cache identifies container reuse by comparing the current URL with the previous, if change identified QDF does a total reload refreshing the cache for the new environment. When using mapped drives it's possible that two different environments have the same URL, but that can be ok as long as the container structures are identical between the environments. Else you need to clear the cache every reload by null the vG.BasePath variable. I think this is the best possible compromise.

Hope this helps.

Regards Magnus 

aritting
Creator
Creator
Author

Magnus, after testing this I find this does not cause the Shared variables to be reset to the new path.

aritting
Creator
Creator
Author

In my case of running a QDF qvw application on a mapped local drive the fix you suggest to SET vG.BasePath=; does not cause my init.qvs script to rewrite the vG.Shared variables but instead runs 'Global Variables using cache'

vmconnect_2018-01-24_16-55-58.png

Magnus_Berg
Employee
Employee

Then you are probably running 1.7 instead of 1.7.1 where that is fixed. You can add

SET vG.SharedBasePath=;

as well that will clean out shared varables in release 1.7

cheers