You are on page 1of 193

QlikView Philadelphia User Group

March 14, 2013


Bentley Systems
685 Stockton Drive
Exton, PA 19341

Wireless network: Bentley Guest


Password:
!infraStructure2012#

WELCOME!
Mark Weidling, Regional Director

Todays Agenda
1:00 pm 1:30 pm

Registration

1:30 pm 1:35 pm

Welcome Mark Weidling, Regional Director

1:35 pm 1:50 pm

Group Introductions

1:50 pm 2:35 pm

Direct Discovery & QlikView 11.2 Update Lucia


Biemiller, Regional Manager, Solution Architects

2:35 pm 2:45 pm

Break

2:45 pm 3:30 pm

Visualizations Jennell McIntire, Applications Developer

3:30 pm 4:15 pm

Optimizing Scripts Tom Mackay, Principal Solution


Architect

4:15 pm 4:30 pm

Q&A and Closing Remarks Mark Weidling, Regional


Director

4:30 6:00 pm pm

Cocktail Reception at the Brickside Grille

Group Introductions
Tell the group about yourself!
Name, company, your role, how you are using QlikView today, etc.

QlikView 11.2
Direct Discovery & Mobile
Lucia Biemille
Regional SA Manager
March, 2013

Legal Disclaimer
This Presentation contains forward-looking statements, including, but not limited to, statements regarding the value
and effectiveness of QlikTech's products, the introduction of product enhancements or additional products and
QlikTech's growth, expansion and market leadership, that involve risks, uncertainties, assumptions and other factors
which, if they do not materialize or prove correct, could cause QlikTech's results to differ materially from those
expressed or implied by such forward-looking statements. All statements, other than statements of historical fact, are
statements that could be deemed forward-looking statements, including statements containing the words "predicts,"
"plan," "expects," "anticipates," "believes," "goal," "target," "estimate," "potential," "may", "will," "might," "could," and
similar words. QlikTech intends all such forward-looking statements to be covered by the safe harbor provisions for
forward-looking statements contained in Section 21E of the Exchange Act and the Private Securities Litigation Reform
Act of 1995. Actual results may differ materially from those projected in such statements due to various factors,
including but not limited to: risks and uncertainties inherent in our business; our ability to attract new customers and
retain existing customers; our ability to effectively sell, service and support our products; our ability to manage our
international operations; our ability to compete effectively; our ability to develop and introduce new products and addons or enhancements to existing products; our ability to continue to promote and maintain our brand in a cost-effective
manner; our ability to manage growth; our ability to attract and retain key personnel; the scope and validity of
intellectual property rights applicable to our products; adverse economic conditions in general and adverse economic
conditions specifically affecting the markets in which we operate; and other risks more fully described in QlikTech's
publicly available filings with the Securities and Exchange Commission. Past performance is not necessarily indicative
of future results. The forward-looking statements included in this presentation represent QlikTech's views as of the
date of this presentation. QlikTech anticipates that subsequent events and developments will cause its views to
change. QlikTech undertakes no intention or obligation to update or revise any forward-looking statements, whether
as a result of new information, future events or otherwise. These forward-looking statements should not be relied upon
as representing QlikTech's views as of any date subsequent to the date of this presentation.
This Presentation should be read in conjunction with QlikTech's periodic reports filed with the SEC (SEC Information),
including the disclosures therein of certain factors which may affect QlikTechs future performance. Individual
statements appearing in this Presentation are intended to be read in conjunction with and in the context of the
complete SEC Information documents in which they appear, rather than as stand-alone statements.
2011 Qlik Technologies Inc. All rights reserved. QlikTech and QlikView are trademarks or registered trademarks of
Qlik Technologies Inc. or its subsidiaries in the U.S. and other countries. Other company names, product names and
company logos mentioned herein are the trademarks, or registered trademarks of their owners.

Agenda
QlikView and Big Data
The gap in the big data market
The value of big data is elusive

QlikView Offers Options to Get Big Data Value

QlikView Direct Discovery Value


QlikView Direct Discovery Use Examples
QlikView Direct Discovery Considerations

QlikView on Mobile - QlikView for iOS


Q&A

Insight Comes from


Big Data in Context

Misc Data: Files,


Spreadsheets

Hive, Impala

Hadoop Cluster

Enterprise
Data Warehouse

Raw Big Data,


Machine Data

Operational Systems

With QlikView, Organizations Have Options


for Getting Value from Big Data
1. Analyze big data with QlikViews 100% In Memory
architecture

Server memory capacity of 256GB represents >2TB


uncompressed data

Analyze billions of rows with response rates only possible


with in-memory architecture

2. Leverage QlikView Direct Discovery if the organization


already invested into Big Data infrastructure

Hybrid approach that leverages both in-memory data and


data that is dynamically queried from an external source

Option 1:
Load what you need into memory

The Myth of Big Data Analysis in one huge chunk

In Many Cases, the Reality Looks More Like This

In-Memory Big Data Techniques


Load what you need into memory
pre-aggregate data within Big Data
repository where reasonable, then load into
QlikView

Document chaining
Create multiple apps each of which holds a
subset of the data, but are linked across
servers
Selection states are passed between apps

Binary load
Load QVDs into memory blazing fast

QlikView and Big Data at King.com


1.6B rows of data per day in Hadoop 211M rows per day
extracted for analysis in QlikView
Customer browsing activity, player interactions within each game,
many more metrics
Results: Marketing ROI of campaigns achieved for the first time
(# of players, # of games played, time played, etc.)

Option 2:
QlikView Direct Discovery, The Hybrid Model

What is QlikView Direct Discovery


Combines the associative capabilities of the QlikView in memory
dataset with a query model where;
The aggregated query result is passed back to a QlikView object without being
loaded into the QlikView data model

The result set is still part of the associative experience


QlikView In-Memory Data Model

Batch Load

QlikView Application

IDC Predictions 2012: Competing for 2020, December 2011

Direct Discovery

How to setup QlikView Direct Discovery


QlikView determines which data resides in-memory and which data is direct
discovery data by using the special script syntax DIRECT SELECT.

Explicit Direct Discovery Fields


Explicit direct discovery fields are the fields that are loaded into in-memory
data model to allow;
Associations between in memory data and direct discovery data

Selections on the user interface

Implicit Direct Discovery Fields


Implicit direct discovery fields are only available to QlikView at the metadata
level. The actual data values for these fields are not loaded into in-memory
data model. They allow;
QlikView to determine if an aggregation should be done on the database instead of
being processed by QlikView itself
Aggregating the data in the database while using the same expression syntax

Two ways for creating Implicit Direct Discovery Fields


Only load the explicit direct discovery fields
All of the other fields from the source data table will be implicit direct
discovery fields

Use the keyword IMPLICIT on the load script.


Once this keyword is used, QlikView will only load the fields listed as
IMPLICIT in addition to the explicit direct discovery fields

This can be used to hide some of the source table fields from the users
AS can be used to rename both implicit (by using IMPLICIT keyword) and
explicit fields

Example - 1
The source table has 27 fields

Only 4 fields are loaded in-memory data


model as explicit direct discovery fields

The other 23 fields are available as


implicit direct discovery fields

QlikView Direct Discovery Benefits


Query data from Big Data repositories
on-the-fly
Cache query results in memory for
faster recall
Maintain associations among all the
data, regardless of where it is located
More up to date information where
recency is required

Unique Hybrid Approach


Tapping into Big Data without knowledge of programming
Adding meaning and context to Big Data
Drilling down to granular metrics details when necessary

Ease of Use
Associative data discovery on the big data
Analyze big data with the well-known, everyday use data values
Well known data sources are used for selection purposes providing
analysis on unfamiliar detailed data values

Selection values are


well known data points

Providing analysis on detailed


unfamiliar data values

More Comprehensive Enterprise Data Strategies

QLIKVIEW
EXPRESSOR

In memory data model

Direct Discovery

Identify:
Common data
patterns
High-volume queries
Data sets that are
analyzed together
Metric definitions

Big Data

SAP

Big Data
Operational
SalesForce
Data

More Comprehensive Enterprise Data Roadmap:


Gain visibility into which enterprise data is being
used with big data to build a more comprehensive
enterprise data roadmap

Less overhead on the backend


With caching customers have the control over when the queries
would run
By leveraging the STALE option with QlikView Direct Discovery, IT can
control when QlikView queries the backend and when the query results
should be leveraged from the cache

Example: Customers using Google BigQuery like this option as the


users will not run queries on Google BigQuery with every selection
Direct Discovery with caching option would create a more cost
effective solution with less overhead on the backend

Leverages the same unique QlikView experience

App Model

Remixability
and Reassembly

Social and
Collaborative

Insight
Everywhere

Mobility

IT

Finance

Production
Marketing

Sales

HR

QlikView Direct Discovery Partnerships

Direct Discovery Partnerships

QlikView Direct Discovery Considerations

QlikView Direct Discovery is not the Swiss Army knife


In memory processing will always be faster than
disk based processing
Direct Discovery is a capability that will
expand the Business Discovery on big
data
Not a solution for scalability issues
where the real problem is wrong data
model or UI design

Common Questions
Can direct discovery be used with Hadoop?
Yes, with an ODBC driver (HIVE, Cloudera Impala)
Caution on the query performance, hadoop queries may take
longer time to return

Can direct discovery be used with SAP HANA?


Yes, with the data that can be extracted with SAP ODBC driver
(SAP analytical views are not supported with SAP ODBC driver)
Limited testing is done

Common Questions
Is there a way to control when QlikView runs queries?
Yes, by using calculation condition option on charts

Can we use document chaining with direct discovery?


No, not with this release

There is a work around by programmatically constructing an


AJAX URL

Can we suggest existing customers to replace their largest


in-memory fact tables with a direct discovery table?
Yes and No, it depends on the complexity of the in-memory
data model and the calculations used on charts from that
fact table. Please work with a solution architect in these
cases.

Common Questions
When to use 100% In-Memory vs. Direct Discovery
Choose 100% in-memory when:

Choose Direct Discovery when:

All the necessary (i.e. relevant


and contextual) data can fit inmemory

Data cannot fit in memory and


document chaining is not
sufficient

Users require only aggregated or Users require access to recordsummary data, i.e. hourly or daily
level of detail stored in a large
averages, or record-level detail
fact table that will not fit in
over a limited time period.
memory.
Query performance of external
source is not satisfactory

Network bandwidth limits ability


to copy data to QlikView server

Summary
QlikView is a Big Data solution
Current product provides last mile insight and discovery on very large
data sets

Direct Discovery expands the potential use cases


Not a replacement for in-memory a way to supplement in-memory
with direct access to external data
Understand the use cases and work with pre-sales to determine
potential fit Direct Discovery is not the answer to every question!

QlikTech is forging new big data partnerships


Teradata , Google BigQuery, Cloudera are first of several key new
partnerships

QlikView on Mobile

Key Mobile Features


Cross platform HTML5 web apps, robust touch capabilities, secure & manageable

Intuitive touch interface


Includes selections, multi-select, select in
charts and graphs, and other interactions
and enhancements to provide a complete
QlikView experience

Cross platform support


QlikView HTML5 Ajax client supports
iPad and iPhone and Android Tablets and
handhelds

Build once deploy anywhere


A single .qvw can be hosted on
accesspoint and delivered across
platforms with no additional configuration

Server-side security
Section access and authentication
handled by server, works seamlessly
across any client

Nothing new to buy


Natively part of QlikView server, no
additional purchase for mobile, any
license works

Single Object Mode


Optimized view for small devices

Tiled Display
Allows navigation of individual
objects in rows of tiles, with
each row representing a tab in
the QlikView application

Full Screen Object


Interactivity
Shows an individual objects on
the full screen of the device,
allowing the user to analyze
and make selections

Swipe to Switch Objects


Allows swiping from side to
side to move between full
screen objects in an
application tab

HTML5 Based
Works in handheld browser, no
additional development needed

Location awareness

Available now in HTML5 implemented through a QlikView extension object


Uses a simple JavaScript call to request location from device and pass to QlikView

A demo, including the extension object, is available on demo.qlikview.com

The need for disconnected access


Our customers have asked for the ability to use QlikView on
mobile devices when offline.
It is important to remember that QlikView offers true data exploration,
and that this requires our engine to perform calculations on-thefly. Thus, unlike predefined reports, Business Discovery in QlikView
requires a connection to the server.

However we do understand and


appreciate the need for some level of
offline access.
We have recently developed an app that
makes it possible to view QlikViews
when disconnected.

The challenge is hardware


Unlike reporting based systems, QlikView
delivers true business discovery
Business Discovery offers unmatched
exploration and flexibility and for the user,
but requires significant computing power
QlikView server dynamically filters large sets
of data and performs calculations on the fly
todays mobile devices do not have the
processing power or memory to do this
Until device hardware catches up, its not
possible to run a QlikView engine on the
mobile device itself
Our strategy is to provide a caching
capability that will offer QlikView apps with a
set of downloaded views (slices) when
offline, and true Business Discovery when
online

QlikView for iOS approach

Server Sync Process


A user designates one or more
bookmarks as available offline
An additional list box can be
specified to provide a more
granular set of views
Application slices are generated
by the server and sent to a
users device

QlikView for iOS App


Native iOS app stores and renders
QlikView web apps when offline
All tabs and objects are viewable,
with some level of scrolling
QV app allows selection of slices
(combinations of bookmarks and
single dimension) when offline

QlikView for iOS app


Online discovery, offline views, the best of both worlds

Online Business Discovery


All the power of QlikView, allows users to
answer the unpredictable questions that
arise in mobile environments

Flexible Offline Views


Users can open QlikView apps when offline,
browse objects, and select between
downloaded views

Consistency Across States


The same QlikView apps, with the same
layout, look and feel, are rendered in both
online and offline modes

User Defined Views


Users can define their own views to take
offline, eliminating the reliance on report
writers to predict user needs

Works with Existing QV Apps


Existing QlikView apps work in QlikView for
iOS, without the need for additional
development.

Nothing New to Buy


QlikView for iOS is a free download and
existing licenses work

QlikView for iOS Product Highlights


QlikView for iOS
- Supports both iPhone and iPad in online mode
- Provides offline mode for iPad only
- Offers native AccessPoint portal and HTML5 based QlikView apps

- Optimized through a server side sync agent


- Utilizes AES 256 bit encryption for on-device data security
- Requires QV11 SR2 for offline mode
- Existing QV11 server licenses work
- Free download from Apple App Store

Sample mobile BI deployments using QlikView

Premium luxury eyewear retailer


Worlds largest mobile
telecommunications
company

Deploying QlikView on iPad to agents for


showing real-time data on brands, models,
stocks, and results

Leading Dutch mortgage


broker

Deploying QlikView on iPad for


strategic reporting system designed
specifically for the CTO

Deployed QlikView on iPad across


180 branches for sales and
marketing applications

Major heating and sanitary


wholesaler

Specialty food and spices


Deploying QlikView on iPad to entire
sales organization with purchasing
and manufacturing to follow

Global publishing brand


Over 200 QlikView apps available to
10 business units and reporting
delivered via QlikView on the iPad

Deployed QlikView on iPad to


salesforce for self-service access
to improve quality of customer
interactions

For mobile demos

Visit http://mobile.qlikview.com from iPad or Android browser

To download QlikView for iOS

Search for QlikView for iOS in the Apple App Store

QlikView for iOS app


Screen Shots

Thank you!

Break

Making A Good Design Great

Jennell McIntire
Demo and Best Practices
March, 2013

PPT by Michael Anthony, Adam Bellerby, Shima Nakazawa

Agenda
Making smart decisions
Visualization and Color
10 things to consider when creating UI

QlikView Developer Kit

Making Smart Decisions

70s

1997

K.I.S.S.
methodology

Keep it simple stupid.


or
Keep it simple and straightforward.

1 The Grid

2 Hierarchy
Using type size to your advantage
(less importance here)

Header: Its important


Subhead, less important
Body Copy

Legal boilerplate information

3 Contrast

Presentation by Michael Anthony, 2011.

Presentation by Michael Anthony, 2011.

4 Color

My Advice:
- Keep it clean, keep it simple

Less

More

Less

More

vs

Visualization & Color

Colour
Blindness
What our mind sees

Affordances
Context
Data Ink & Chart Junk

Left Brain / Right Brain

Colour Blindness
About 8% of males, but only 0.5% of females, are colour blind in some way
or another.
Ishihara Test - PseudoIsochromatic Plates

Ishihara Test

16

Ishihara Test

8
(but red green colour blind will see 3!)

Ishihara Test

74
(but red green colour blind see 21!)

Ishihara Test

42

Ishihara Test

Colour Palettes
http://www.visibone.com/colorblind/
http://www.iamcal.com/toys/colors/
http://colorschemedesigner.com/

http://www.colourlovers.com/palettes/

Your eyes and colours..

What you actually see..

Affordances
The computer user is often at a loss as to what to do. By making certain
regions of the screen take on perceptible, distinctive appearances, the
designer is communication the design intention. These are designed
affordances, messages from designer to user, attracting attention to the set
of desired possible actions.

Affordances

Confusing Design / Not Enough Information

Confusing Design / Too Much Information

Context
I consume 12,000 calories a day

Context

Context.So What?.

Data Ink & Chart Junk (Over Engineering)

Data Ink & Chart Junk (Over Engineering)

Left Brain / Right Brain

10 Things to consider on UI

10 things to consider when creating UI


1. Resolution
2. Font
3. Clean and Professional appealing

4. Utilizing the space


5. Makings things obvious
6. Meaningful data display

7. Using icons/graphics
8. Usability vs Cluttering
9. Visualization
10. Eye Candy

1. Resolution
Standard - 1024x768 resolution (projector ready)
Know the prospects company standard size
Shorten the height if you can to allow the tool bars and iPad users

2. Font
List boxes - Minimum 10pt, 11pt if you can

Tables - Minimum 9pt

Legend Minimum 8pt

Avoid Calibri (MS Office 2007 + only)


Intensity of colors

3. Clean and professional appealing


Before Crowded with too much information

3. Clean and professional appealing


After Clean layout

3. Clean and professional appealing


Before Intro sheet

3. Clean and professional appealing


After Keep only the highlight of the information

3. Clean and professional appealing


After About sheet

3. Clean and professional appealing About sheet

4. Utilizing the space

4. Utilizing the space

4. Utilizing the space

5. Making things more obvious Before

5. Making things more obvious - After

5. Making things more obvious - After

5. Making things more obvious - Before

5. Making things more obvious - After

5. Making things more obvious - Before

5. Making things more obvious - After

5. Making things more obvious Before (Help Text)

5. Making things more obvious - After

6. Meaningful data display - Before

6. Meaningful data display - After

7. Using icons/graphics - Before

7. Using icons/graphics - After

7. Using icons/graphics (Data Ink)

8. Usability vs Cluttering - Before

8. Usability vs Cluttering - Before

8. Usability vs Cluttering - After

8. Usability vs Cluttering - After

8. Usability vs Cluttering - Before

8. Usability vs Cluttering - After

9. Visualization Silent Legend

9. Visualization Silent Legend

9. Visualization Silent Legend

10. Eye Candy - Before

10. Eye Candy - After

10. Eye Candy - Before

10. Eye Candy - After

One more thing

Gorgeous and Genius

Gorgeous and Genius in QlikView way Photoshop

Gorgeous and Genius in QlikView way - QlikView

Gorgeous and Genius in QlikView way In Action


Social Media Analysis straight table
IT Asset Management help text, usability
Asset Management - Interaction

QlikView Developer Kit


Template.qvw application (samples)
Sheet background templates - Preformatted
Background images

Image gallery
Design helper goods

Developer Kit sheet background examples

Developer Kit sheet background examples

Developer Kit Image gallery


Buttons

Background

Separators

Logos

Objects

Developer Kit Design Helper goods

Resolution Applier

Grid Applier

If the time allows me to share more

Design Processes

Executive Dashboard - Before

Executive Dashboard on Paper


xxxx
XX %

xxxx
XX %

xxxx

xxxx

XX %

XX %

xxxx
XX %

Gauge

xxxx
XX %

Design ver.1

Design ver.2

Design ver.3

Design ver.4

Questions?

Thank you

Optimizing Scripts

Tom Mackay
Principal Solution Architect
March, 2013

Safe Harbor Statement


This Presentation contains forward-looking statements, including, but not limited to, statements regarding the value and effectiveness
of QlikTech's products, the introduction of product enhancements or additional products and QlikTech's growth, expansion and market
leadership, that involve risks, uncertainties, assumptions and other factors which, if they do not materialize or prove correct, could
cause QlikTech's results to differ materially from those expressed or implied by such forward-looking statements. All statements,
other than statements of historical fact, are statements that could be deemed forward-looking statements, including statements
containing the words "predicts," "plan," "expects," "anticipates," "believes," "goal," "target," "estimate," "potential," "may", "will,"
"might," "could," and similar words. QlikTech intends all such forward-looking statements to be covered by the safe harbor provisions
for forward-looking statements contained in Section 21E of the Exchange Act and the Private Securities Litigation Reform Act of 1995.
Actual results may differ materially from those projected in such statements due to various factors, including but not limited to: risks
and uncertainties inherent in our business; our ability to attract new customers and retain existing customers; our ability to effectively
sell, service and support our products; our ability to manage our international operations; our ability to compete effectively; our ability
to develop and introduce new products and add-ons or enhancements to existing products; our ability to continue to promote and
maintain our brand in a cost-effective manner; our ability to manage growth; our ability to attract and retain key personnel; the scope
and validity of intellectual property rights applicable to our products; adverse economic conditions in general and adverse economic
conditions specifically affecting the markets in which we operate; and other risks more fully described in QlikTech's publicly available
filings with the Securities and Exchange Commission. Past performance is not necessarily indicative of future results. The forwardlooking statements included in this presentation represent QlikTech's views as of the date of this presentation. QlikTech anticipates
that subsequent events and developments will cause its views to change. QlikTech undertakes no intention or obligation to update or
revise any forward-looking statements, whether as a result of new information, future events or otherwise. These forward-looking
statements should not be relied upon as representing QlikTech's views as of any date subsequent to the date of this presentation.
This Presentation should be read in conjunction with QlikTech's periodic reports filed with the SEC (SEC Information), including the
disclosures therein of certain factors which may affect QlikTechs future performance. Individual statements appearing in this
Presentation are intended to be read in conjunction with and in the context of the complete SEC Information documents in which they
appear, rather than as stand-alone statements.

Agenda
Development Framework
Scripting Best Practices
Database Connections
Open Forum your scripting questions

DEVELOPMENT FRAMEWORK

Development Folder Structure


Document folder structure example
Have separate folders for QVW files, QVD files, include files (Database
connection strings and other stuff) and other config files
Example of source folder structure
\Department A or Application XYZ
\Applications
QlikView application files (qvw)
\QVD-files
QlikView datafiles (qvd)
\Include-files
Include files, connection strings and inline tables
\Config
Configuration files, xls, txt, mdb
\Department B
\Applications
\QVD-files
\Include-files
\Config
\Shared_folders
\Applications
\QVD-files
\Include-files
\Config

QlikView application files (qvw)


Common QlikView datafiles (qvd)
Include files, connection strings and inline tables
Common configuration files, xls, txt, mdb

Other folder structure examples

Naming standards
Come up with a naming standard:
Use business names for data fields e.g., Customer Number instead of
CustNo
All abbreviations are a standard type. Get a list of abbreviations and
use it (I.E. always use Desc for Description, as specified in the
abbreviations list)
Utilize a Prefix
Variables = starts with a v

e.g., vCurrentYear

Key fields

= starts with a %

e.g., %CustomerKey

Flag fields

= starts with a _

e.g., _YTDFlag

Cycle Group = starts with a <

e.g., <ProductCycle

Drilldown Group = starts with a >

e.g., >GeographyDrilldown

Key Field Separator = separated by _

e.g., Company&'_'&Nbr as Key

Temp Fields/Tables = ends with "_tmp

e.g., Daily_Trans_tmp

SCRIPTING BEST PRACTICES

Overview
Scripting is the environment in which a QlikView Developer will
automate the extract, transform and loading process of bringing data in
the QlikView environment.
Best practices dictate that using multiple tabs within a script will split out
the various parts, enabling a simple view of the information for future
development and support. Depending on the complexity of the
application, you may have a variety of different script sections. The
common parts of a script are below:
Security (usually hidden script)

Dates and Calendar information


Tab per data source
Tab per key measure/core table

Tab per lookup table

Preceding Loads
The use of preceding load statements can simplify your script and make it
easier to understand. See the code below for an example of this.
Table1:
LOAD
CustNbr as [Customer Number],
ProdID as [Product ID],
floor(EventTime) as [Event Date],
month(EventTime) as [Event Month],
year(EventTime) as [Event Year],
hour(EventTime) as [Event Hour];
SQL SELECT
CustNbr,
ProdID,
EventTime
FROM MyDB;
This will simplify the SQL SELECT statement so that the developer can
continue to test/augment the statement using other tools, without the
complexity of the QlikView transformations embedded in the same SQL
statement.

Scripting Best Practices


Use Autonumber only after development debugging is done. Its
easier to debug fields with actual values in it instead of only being
able to use surrogates. See the QlikView Reference Manual if you
are not sure how/when to use Autonumber.
Name the concatenate/join statements
When adding script to a QVW, it is best to do a binary load on large
data sets then extend the script. Later merge the script after
development is near complete. This doesnt functionally change
anything, but it saves time during development.

Use HidePrefix=%; to allow the enterprise developer to hide key


fields and other fields which are seldom used by the designer
Always have the Logfile option turned on if you need to capture loadtime information for debugging purpose

Don't join - use ApplyMap instead


What is ApplyMap()?
Basically it is just a lookup function it takes one value as input, checks if
this value exists in a mapping table and returns the corresponding value
from the second column in the mapping table. Think of it as a translation
function where the translation is fetched from a pre-defined, two-column
table.

Why use?
Faster and with less chance of errors. With join you can inadvertently
create new rows of data. This way assures you will keep source row count
unchanged. You can also do multiple fields in one pass.

Example
MapIDtoCountry:
Mapping Load CustomerID, Country From Customers ;
Orders:
Load *,
ApplyMap('MapIDtoCountry', CustomerID, null()) as Country
From Orders ;
From QlikView Design Blog http://community.qlikview.com/blogs/qlikviewdesignblog/2012/09/18/one-favorite-function-applymap

Comments and Formatting


Comment script headings for each tab.

Comment script sections within a tab with short descriptions

Comments and Formatting - continued


Add change date comments where appropriate.

Use indentation to make script more readable by developers.

DATABASE CONNECTIONS

Keep Connect Strings Flexible


Variables are commonly used to help switch the database settings between
environments without hard coding required in the QVW as it moves from
environment to environment. See the sample code below for a best practice
technique for doing this:
SET vEnvironment= PROD;
IF vEnvironment = PROD THEN
ODBC CONNECT TO MyOracleDBProd (XUserID is *****, Xpassword is ****)
SET vDBName = MyOracleDBProd;
ELSEIF vEnvironment = TEST THEN
ODBC CONNECT TO MyOracleDBTest (XUserID is *****, Xpassword is ****)
SET vDBName = MyOracleDBTest;
ELSE

ODBC CONNECT TO MyOracleDBDev (XUserID is *****, Xpassword is ****)


SET vDBName = MyOracleDBDev;
END IF
In your LOAD statements you now reference the vDBName as follows:
SQL SELECT *
FROM $(vDBName).MySchema.MyTable;

Keep Connect Strings Flexible - continued

Use environmental settings to set variables:


LET vEnvironment =
GetRegistryString('HKEY_CURRENT_USER\Environment',vEnviron');
LET vUserEnvVar =
GetRegistryString('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Control\Session Manager\Environment','QVPath');

Or simply use relative path include files:


$(Include=..\include\server1_database2.txt)

More Best Practices


Only use Qualify * when absolutely necessary. Some developers
use Qualify * at the beginning of the script, and only unqualify the
keys. This causes a lot of trouble scripting with left join statements,
etc. Its more work than its worth in the long run. See the QlikView
Reference Manual if you are not sure how/when to use Qualify and
Unqualify.
Use variables for path name instead of hard-coding them throughout
your script. This reduces maintenance and also provides a simple
way to find paths (assuming you put them in the first tab to make it
easy to find).

Drop unnecessary fields and temp tables.

OPEN FORUM
YOUR SCRIPTING QUESTIONS

Closing Remarks
Mark Weidling, Regional Director

Thank you!
Join us for a networking reception and cocktail hour.
Brickside Grille
540 Wellington Square
Exton, PA 19341
(3 block walk or drive)

You might also like