As a QV Consultant, I split my time between delivering training and QV Practice. I like both sides of the business, but I particularly enjoy contributing to the excitement of using QV that results from training.
During a lunch break today, I mentioned the Masters Summit for Qlikview to one of my students. He asked “What does it take to become a Master?”. Of course I answered “Attend the summit! “. But it reminded me of a list I present when delivering Qlikview Developer (Scripting & Data Modeling) training.
Most of us experienced instructors augment the standard curriculum with our own real-world experiences. When teaching scripting, in addition to surveying the range of scripting statements and modeling solutions, I emphasize three specific scripting features as “Ninja skills” — script features whose mastery makes you deadly effective. My “Scripting Ninja” list is:
1. MAPPING LOAD. Understanding how to create a Mapping table. How to use that table in all it’s forms — ApplyMap(), MAP USING, RENAME USING and the other metadata USINGs — TAG and COMMENT.
2. IntervalMatch — has many uses including Slowly Changing dimensions, Currency Rates, Dimension Bucketing to name a few.
3. Preceding Load — can be used to create powerful parsing scripts and simplify the maintenance and accuracy of script. Here’s a primer on Preceding Load.
Those are the three special QV scripting features that stand out for me as exceptionally powerful and well worth mastering. Are there others you would add to the Ninja list?
-Rob
Hey Rob,
I like that list and fully agree with it (however, maybe I need to review the different forms of mapping, only using applymap and joins at the moment).
I would add: QVD load. Downloading raw data from the database in a QVD, transforming it afterwards and then adding it to the app has really opened up a world of possibilities.
And then a true ninja skill (the others are more like a toolbox) in any form of scripting is certainly the Feynman problem-solving algorithm:
1. Write down the problem.
2. Think very hard.
3. Write down the answer.
Unable to use filter command in listbox
Say I have around 200 Branches I want to filter only Branhces starting with first 3 letters as CCP. How do I do it. Can anyone help me out.
Not really related to scripting, but use an expression in your listbox like:
=aggr(if(left(Branch,3)=’CCP’, Branch), Branch)
=aggr(if(left(Branch,3)=’CCP’, Branch), Branch)
This solution is all very good but is VERY slow over large data.
A better solution is a new field in the underlying data that only has values for the BRANCH’s that you need and either null() or ‘Other’ for the other Branch’s
add this to the Table Load:-
if(left(Branch,3)=’CCP’, Branch,’Other’) as Report_Branch
You should ALWAYS think about calculation speed.
Hey Rob,
To the list of Ninja Skills, I would add
1. Set Analysis
2. Creating a Master Calendar
I’d add While + iterno() to the list. Very useful to generate additional needed (missing) data.