Qlik Community

Qlik Design Blog

All about product and Qlik solutions: scripting, data modeling, visual design, extensions, best practices, etc.

Announcements
QlikWorld 2022, LIVE in Denver CO., May 16-19, 2022. REGISTER NOW TO RECEIVE EARLY BIRD PRICING
ArturoMuñoz
Employee
Employee

If you had loaded data from the web into QlikView then you probably know well how “for … next” loops work.

 

When working with Web Files frequently you need to loop through your code to load more than one URL in a single load. For example let's say I want to analyze an online publication, similar to this blog, where different authors contribute with articles. The URL is composed by a constant piece and a variable http://<publicationurl>?start=1’, http://<publicationurl>?start=15’ I want my script to dynamically load all the possible Urls from start=1 to start=375

 

In QlikView my code will look like this:

 

fori=1 to 375



LOAD

pageUrl,
title,
author,
Post
date,
Numberof
views,
Numberof
comments
FROM
[http://publicationurl.com?start=$(i)]
(
html, codepageis 1252, embeddedlabels, tableis @1);

next;

 

 

The script execution will loop 375 times letting me capture all the post written in this particular publication. To do so I’m using a simple variable expansion in the FROM statement.

 

If you want to perform a similar operation in Qlik Sense you might find some difficulties due variables not expanding when dealing with Web Files in Qlik Sense. But there’s a workaround, it’s called Legacy Mode.

 

What's Legacy Mode?

 

Legacy mode is a way to force Qlik Sense to reuse old load scripts that refer to absolute or relative file paths as well as library connections, and it's just what we need in order to successfully run our example script.

 

In Qlik Sense Desktop, you can set standard/legacy mode in Settings.ini.

 

Do the following:

 

Open C:\Users\{user}\My Documents\Qlik\Sense\Settings.ini in a text editor.

Change StandardReload=1 to StandardReload=0.

 

Save the file and start Qlik Sense Desktop, which will run in legacy mode.

 

The available settings for StandardReload are: 1 (standard mode) 0 (legacy mode)

 

For instructions on how to activate the Legacy Mode in Qlik Sense server check Qlik help:

 

http://help.qlik.com/sense/2.0/en-US/online/#../Subsystems/Hub/Content/LoadData/disable-standard-mod...

 

Please note that enabling Legacy Mode in Sense Server might have security implications in Sense Server meaning that you won't be able to manage the paths/connection strings in QMC anymore.

21 Comments