Qlik Community

QlikView Documents

Documents for QlikView related information.

Advanced topics for creating a qlik datamodel

MVP & Luminary
MVP & Luminary

Advanced topics for creating a qlik datamodel

Of course behind the basics of data modelling offered scripting within qlikview more then only loading several tables behind one another and doing (frequently) the same things again and again. Instead of this you could use various control-structures with different kinds of loops, if-then-else statements, Variables and in sub-endsub statements or in include-variables outsourced code. Such structures makes a script clearer, easier to maintain and often they perform better. To be able to reuse code could save a lot of time.

Loops in the Script

Loop through Folders and sub folders to get file names

General File Loading Technique

The $(Include) which you $(Must_Include) into your toolkit

Code reusability in QlikView and Script Debugging

You could extend these features by creating batches inside from qlikview script and execute them or any other external scripts and batches.

Is it possible to create a batch file in the Qlikview Script

QVW to create bat file which contain the copy command for all the QVD's used in the QVW

Further very helpful is it to track what's going on while the script-execution, especially if something not worked as expected. For this you could enable script-logging, trace loop-counter or Variables and use the different options of the error-mode.

what is trace

TRACE - directly enter an expression

How to Enable Log files

Script Log Analyzer

Sub Runtime.docx

ErrorHandling in Qlikview

A good source for many examples could you find by Rob Wunderlich: "Qlikview Components" Open Source Project.

Are the amounts of data relative small we need not to think much about the script-runtime, but do we need to handle bigger-datasets or needs to query some loadings quite frequently, we should consider incremental loadings to make sure that only new or changed data will be loaded.

Script for Incremental Loading of Multiple QVDs from a List of Table Names

Incremental Load

Incremental Load Scenarios

CRUDhelper framework - Incremental loads with ease

QlikView Incremental Load Demo

Partial Reload Easy and Simple

Another important part of optimizing loads is to use optimized loads from qvd's which are a lot faster than normal qvd-loadings.

Turning Unoptimized Loads into Optimized Loads

QlikTip#: Keep Optimized QVD Load

QlikView Optimised QVD Loads

The exists issue

Optimized QVD Load With a Where Clause and Dates

A Little More Optimized Load

Loading Multiple QVD files

Here you will get further important topics: More advanced topics of qlik datamodels

There is some content-overlapping within the above used links but I think the complement to eachother is useful and of course you will find many more interesting postings here within the qlik community to these topic - the notes here are a good starting point to go further.

Have fun!

Marcus Sommer

Honored Contributor II

Wow.. Thanks a lot Marcus_Sommer‌. Very very useful


Thanks good collection of articles. Very useful


Great collection of Article..!!

Valued Contributor

Thanks, it´s going to be very useful to me.

Esteemed Contributor III


New Contributor III

Hi Marcus,

thanks for gather this important topics in this post. That's very helpful!

Thanks a lot!


Esteemed Contributor


One need not know everything, but it's important to know what is possible and where to find details 😉

And to that end, having all the "details" - all the sources of information - accessible in/ from one place is important.

Best Regards and many thanks for this great piece of work,


Esteemed Contributor


I just found one issue with the partial_reload that I can imagine many users running into: I have a table within a loop that I want to be loaded also in the partial reload, so I add the REPLACE keyword, right?

Well - usually, the table is always appended to (in every iteration of the loop), so everything is fine - but because of that keyword, it is now replaced in every iteration even in a normal reload, which usually ignores the keywords, but not in this instance - the loop still runs as many times as it is supposed to, but the resulting table has only the nr. of records loaded in the last iteration.

The workaround I have used is to use an IF_THEN clause rgd. the counter - in the first iteration, use the REPLACE keyword, afterwards use the ADD keyword. That seems to work in both modes - regular and partial reload.


Wow, tons of valuable links!  Thanks for sharing Marcus!

Honored Contributor

Thank you for good information.

Version history
Revision #:
1 of 1
Last update:
‎2015-08-16 06:59 AM
Updated by: