116859720 Developer Powerpoint v 11

August 15, 2017 | Author: Taieb Somai | Category: Databases, File Format, Microsoft Sql Server, Business Intelligence, Microsoft Excel
Share Embed Donate

Short Description

Download 116859720 Developer Powerpoint v 11...


QlikView Developer Version 11 Michael Alegado

Agenda • • • • •

9:00 am – 5:00 pm Break at 9:45 or as needed Lunch 11:30 or 12:00 for 1 hour Break at 3:00 pm or as needed Questions/discussions throughout

Agenda • • • • • • • • •


Agenda • • • • • • • • • •


Introductions – Please mention • • • • •

Your name Company / Department Your experience with QlikView Your expectations for the course How do you use QlikView in your job?

Lesson 1 Introduction

Learning Objectives • Explain the difference between QlikTech and QlikView • Identify what is business discovery • Identify the QlikView product family

About this Course • Possessing a deep knowledge of the data model, creation of the proper data connections and scripting fundamentals are critical to creating QlikView documents • Beginning with QlikView environment and ending with an introduction to advanced interface design

Definition of a QlikView Developer and System Administrator • The QlikView Developer • The QlikView System Administrator

QlikView • • • •

QlikView is a Business Discovery platform Data presented in easy to understand format Manages information Associative connections

About QlikTech • Software company • Founded in Lund, Sweden in 1993 • Founded on the belief that business intelligence (BI) should be about the business user

Lesson 2 QlikView Development Methodology

Learning Objectives • Identify the importance of Document/Sheet XML Import/Export • Review Project Plan • State the QlikView deployment options

What is QPM? QPM = QlikView Project Methodology • is a description of all project management activities, documents and QlikView Deliverables in all the phases of a QlikView project • By using this Project Methodology we will be able to make a difference in the customer experience and making the best use of the QlikView capabilities.

QPM Framework Execution



Start-Up Project

Project Plan

Business Objectives

Prioritized Business Requirements

Prepare Enterprise Platform

Define Enterprise Platform


Implementation Build

Multiple App’s

User Review

Deployment Evaluation User Communication

Hand Over Lessons Learned


Transition to: Self Service BI Governance & Support

Realize Enterprise Platform

TG 0

TG 1

TG 2



Start Cycle(s)


TG 3

Finish Cycle(s)

Project Completion

TG 4

TG 5

Go-Live App’s


Benefits • • • • • • • • •

Better and more Engagement with our Enterprise Customers Direct Influence on succes and our own mission Control and Quality QPM helps frame the potential growth for QlikView Manage our customer’s expectations for the investment in resources, training and hardware. Great feedback loops for QT Sales, Product Development, Marketing Strenghten our partnerships with more action together! Effective Sales Cycles Great opportunities for ES Consultants

Lesson 3 Deployment

Learning Objectives • State the QlikView deployment options • Identify the functional and business benefits of each example deployment option

Components of QlikView Business Discovery Platform

QlikView Overview

QlikView Product Platform With QlikView Personal Edition you can make full use of the QlikView functionality, but it is not possible to open documents created by other users. Please contact your sales account executive for information regarding QlikView licenses.

QlikView Product Platform QlikView Desktop is a single point of interaction for collecting data, designing analytics, and building dashboards and reports.

QlikView Product Platform

QlikView Server supports the following clients: • Browser-independent, downloadfree Ajax client • Installed Windows client • Internet Explorer browser plug-in • Apple iPad and iPhone • Android devices • BlackBerry

QlikView Product Platform QlikView Publisher helps organizations balance the need for widespread distribution of analytic functionality and reports with the requirement to maintain centralized control and administration of sensitive corporate data.

Stand Alone/QlikView Desktop

QlikView Server

QlikView Server & Publisher

Project Plan • QWT Business Intelligence Project Plan

Standard QlikView Deployment

Lesson 4 – Introduction to Data and Scripting

Learning Objectives • • • •

Identify what is a relational database Identify what is a data structure Review the QWT.mdb database Use the QlikView Script Editor

Relational Data Base Management Systems • • • • • • • •

MySQL Microsoft SQL Server Microsoft Access Oracle DB2 Sybase Informix Teradata

Relational Databases



Key Field

Data Structures: Star Schema Dimension Dimension Dimension

Fact Table




Data Structures: Snowflake Scheme









Fact Dimension


Dimension Dimension



Data Structure in QlikView

Data Structure in QlikView

Data sources in this course

Lesson 5 – Basic Script Syntax

Learning Objectives • Identify common QlikView Syntax • State the difference between Connect, Select, and Load statements • Create a working Connect statement

Basic Script Syntax CONNECT • Used to connect with ODBC or OLEDB interface • Is automatically created when using the wizard

SQL SELECT • Instructs which field and tables to retrieve automatically created when using the wizard

LOAD • Defines what transformations of data should be invoked by QlikView

How QlikView reads a load script LOAD… … … SELECT… … … LOAD… … …

2 1


4 3

What is a key field? • A field that exists in two tables and connects the two.

Lesson 6 – Loading Data from the Database

Learning Objectives • Comment the script for future reference • Load data with the QlikView Script Editor • Access the Debugger

Commenting the Script REM // /* */

(following table) (single line) (start) (finish)

Using keys: Comment: Ctrl+k(v.8.5) Ctrl+k+c (v.9.0+) Uncomment: Ctrl+SHIFT+k(v.8.5) Ctrl+k+u(v.9.0+)

Connecting to databases ODBC (Open DataBase Connectivity)

OLE DB (Object Linking and Embedding, Database) More advanced way to connect to databases, also multidimensional databases possible) The CONNECT statement generated, applies to all following SELECT statements until a new CONNECT statement is made.

Load Script basics /*-----------------Customers Table ------------------*/ Customers: LOAD Address, City, CompanyName, Phone, PostalCode, StateProvince; SQL SELECT * FROM Customers;

Comments Table name

Preceding load; allows modifying QV datamodel

SQL statement retrieving data from database



Lesson 7 – Structuring the Script

Learning Objectives • State why creating tabs can be beneficial when structuring a QlikView Script • Create tabs to structure your script

• Often when building a QlikView application, many tables are used and sometimes you want to manipulate existing tables. To make the script easier to work with, we divide the script into different tabs

Synthetic keys Complex Key(s) consisting of two or more fields between two connecting tables. • Implications – Resource heavy – Slows down calculations – Makes a document harder to understand and maintain • How can it be removed? – Selectively remove double fieldnames – Rename fieldnames – Use qualify statement

Lesson 8 – Basic Data Model and Table Viewer

Learning Objectives • Use the Table Viewer to analyze the internal structure of a QlikView document • Identify how the Table Viewer can be used to debug problems

Lesson 9 – Basic Data Transformation

Learning Objectives • Define the advanced uses of the script editor • Rename Fields • Use transformative Functions in the script

Load Statement • The load statement loads Fields from a typed ASCII file, from data defined in the script, from a previously loaded table, from the result of a following select statement or by generating data automatically. The general syntax of the load statement is: load [ distinct ] *fieldlist [( from file [ format-spec ] | from_fieldfield [format-spec] inline data [ format-spec ] | residenttable-label | autogenerate size )] [ where criterion ] | while criterion ] [ group_by fieldlist ] [order_by field [ sortorder ] { , field [ sortorder ] }

Renaming Fields

Key Fields — Predicament • Consequences: Not possible to use the frequency information Not possible to use all functions when creating chart expressions (only distinct)

• Solution: Use distinct Load the field an extra time under a new name Load a record counter

Key Fields — Solution, Count LOAD …, OrderID, OrderID AS OrderIDCount

FROM Orders;

• You can now use the new field (not associated) in a list box that shows the frequency or a chart with functions to calculate the frequency.

Key Fields — Solution, Record Counter LOAD …, OrderID, 1 AS OrderRecordCounter,

FROM Orders;

• This way of solving the problem is more efficient when working with large amounts of data since a sum of a numeric value takes very little power compared to a count of a value.

Lesson 10 – Adding Text Data

Learning Objectives • Review data sources from Excel spreadsheets • Use the File Wizard to load data into QlikView • Transform (rename a field) data with the File Wizard

Loading Data from a Table File

Loading Data from a Table File

Connecting to other datasources DATA from files Absolute vs Relative Paths [C:\QlikViewTraining\Developer\Datasources\EmpOff.xls] (biff, embedded labels, table is Employee$); Datasources\EmpOff.xls (biff, embedded labels, table is Employee$);

Lesson 11 – Generating Data in the QlikView Script

Learning Objectives • • • •

Use Resident Load Create Data from Other Data and Autogenerate Load Data using External Scripts with Include Create a Master Calendar

Use Resident Load • How to create a new logical table in QlikView, based on a previously loaded (resident) table

Create Data from other Data

Load Data Using External Scripts • It is possible to include references to files in a script that themselves contain script or parts of a script.

OrderDetails Order By OrderDate ASC

Variable LET •varMinDate •varMaxDate

Temp Calendar DateField



Autogenerate varMaxDate – varMindate




Master Calendar TempDate as OrderDate -1



Lesson 12 – Scripting Considerations

Learning Objectives • Create a Synthetic Key • Identify Circular References • Define Loosely Coupled Tables • State why these conditions should be avoided

What is a Synthetic Key • A Synthetic Key is created in the script when multiple fields are linking one or more tables together.

Why not Synthetic Keys? • • • •

Are resource heavy Slow down calculations In extreme cases, overlaod an QlikView document Make a document harder to maintain and understand

How can Synthetic Keys be Avoided? • Rename fields using AS or QUALIFY • Comment out fields that are not needed • Concatenated key - combining field names and creating a unique key field

Circular References

Circular References • QlikView solves the problem by Loosely coupled tables

Lesson 13 – QlikView Data (QVD) Files

Learning Objectives • • • •

Define QVD files Explain why QVD files are so important Create a QVD file manually Generate a QVD file automatically

QVD File Format • Contains one table • Composed of – A well formatted XML Header – Symbol tables in a byte stuffed format – Actual table data in a bit-stuffed format

Use of QVD Files • • • •

Increasing Load Speed Decreasing Load on Database Servers Consolidating Data from Multiple QlikView Documents Incremental Load

Lesson 14 – Mapping Tables

Learning Objectives • Identify when to use mapping tables • Create mapping tables to add Quarters to the Orders table • Identify areas to clean up in the table structure

Mapping Tables • Mapping prefix • Must have two columns

Exercise: Mapping Tables

Cleaning up the Table Structure • Minimize the number of tables in QlikView • If you have tables with only two fields, map those tables to minimize the number of tables

QlikView Developer Course

Lesson 15 – Loading Budget Data

Learning Objectives • Identify cross tables • Use the File Wizard to transform the data and create load script

Cross Tables • A cross table is a common type of table featuring a matrix of values between two orthogonal lists of header data.

Lesson 16 – Data Model Optimization

Learning Objectives • Review key measures • Use, Conditions in tables, Aggregation, Joining tables and Pre-ceding Load on Preceding Load within the script

Condition on a Field Table • The Category Type field can be created by using the CategoryID field. If the CategoryID is 5 or 6, the CategoryType should be Footwear, otherwise the type should be clothing.

Aggregating Data • Group by is a clause used for defining over which fields the data should be aggregated (grouped)

Joining Tables • It is possible to join tables already in the script • The join between tables can be performed against the source database or you can use a QlikView Join command

Concatenation • Concatenation can be used to join data together from multiple tables • Automatic Concatenation • Forced Concatenation • Prevent Concatenation

Exercises: Advanced Scripting • • • •

Condition on a Field in a Table Aggregation Joining Tables Preceding Load on Preceding Load

Lesson 16 – Advanced Scripting

Objectives • Introduce advanced calculations in charts and tables, including: • Dimension Limits • Set Analysis • Dollar-Sign Expansion • AGGR Function • Complete exercises using examples of each of these functions

Dimension Limits • New capabilities for a chart to show totals, other segments and limit to top/bottom performing dimension values • Moves these features into the cube vs. the presentation layer • Consistency across charts • New capabilities – will simplify numerous chart acrobatics from earlier releases

Have you ever tried to… • Restrict a table or chart based on a the contribution of a dimension to the total? • Summarize non-displayed dimensions as OTHERS without resorting to a pie chart? • Evaluate lower level dimensions either locally or globally? Use these as qualification criteria to determine what to display in table or chart?

Define Dimension Limits • Show only • Show only values that are • Show only values that accumulate to • Options – Others – Total – Global Grouping

Show Only Values That Are:

Show Only Values That Accumulate To:

Dimension Totals

Set Analysis

What is Set Analysis •

Conceptually similar to a selection.

Provides a method of defining groups (sets) of information that are independent of the current selections.

Can create sets based on other sets.

Must be used in aggregation expression.

Always begin and end with curly brackets {}

Set Analysis – Why? • Very powerful functionality for comparison analysis. • May eliminate the need for additional, complex coding within an application • Provides much more flexibility in the analysis’ you can create

Set Analysis Syntax • The syntax is broken down into 3 categories: – Identifiers – Operators – Modifiers

Set Analysis Identifiers There is one constant that can be used to denote a record set; • 1 represents the full set of all the records in the document. The $ sign represents the records of the current selection. • The set expression {$} is the equivalent of not stating a set expression at all • {1-$} defines the inverse of the current selection, that is, everything that the current selection excludes.

Identifiers Examples: sum({1} Sales) Returns total sales within the application, disregarding selections but not the dimension. sum({$} Sales) Returns sales for the current selection, i.e. the same as sum(Sales).

sum({BM01} Sales) Returns sales for the bookmark ID “BM01”.

Set Modifiers

A set can be modified by additional or changed selections. Such a modification can be written in the set expression. The modifier consists of one or several field names, each followed by selection(s) that can be made in the field. Modifiers begin and end with angle brackets .

Modifiers - Examples sum({$} Sales) Returns the sales for the current selection where OrderDate = DeliveryDate. sum({1} Sales) Returns the sales for region US disregarding the current selection. sum({$} Sales) Returns the sales for current selection, but with the selection in “Region” removed. sum({} Sales) Returns same as the example above. When the set to modify is omitted, $ is assumed. sum({$} Sales) Returns the sales for current selection, but with new selections both in “Year” and in “Region”.

Example of Set Analysis

Example of Set Analysis

Dollar-Sign Expansion

AGGR Function •

AGGR is a powerful QlikView function that returns a set of values of expression calculated over dimensions. The table shows information on how many customers have placed one order, two orders etc, and also the average order value.

Comparative Analysis Drives Deeper Insight • Multiple selection states against one data set • Set up objects to reference a selection state • Compare and calculate among states

Comparative Analysis in QlikView 11

Comparative Analysis: Overview • New capability for comparing sets of the data

• Eliminates often used techniques involving macros, duplicated data model • Most common cases – Ad hoc groupings – Regression comparison

• All work dependent on development (vs. explicit end user functions)

Comparative Analysis - Illustration • Allow for multiple selection states against one data set • Setup document components to reference a selection state • Compare, calculate between states

Comparative Analysis – A Comparison Method




Set Reference

Select, context menu, select

Selection (list box)

No. Must clear reference & reset

Detach/ Attach

Select, context menu, select


No. Must clear lock


Select, save.


Yes. Can update bookmark

Alternate State

Define labels, assign objects, make selections

Sheet, object, expression

Yes. End user can adjust selections independently.









End user defined. No Ajax


End User Defined. No Ajax


Developer predefined. End user modified. All clients


Developer predefined. End user content. All clients

Comparative Analysis Demonstration • Simple demonstration • Existing QlikView techniques for comparing data sets • Using alternate state for comparing data sets

Comparative Analysis - Discussion • Comparative Analysis is most likely to – Simplify design of like-to-like comparison problems

– Allow us to enter new problem spaces (what?) – Eliminate use of (need for) other comparative techniques (set reference, detach etc) – Not be used. Why? • What should comparative analysis mean to users (vs. developers)?

Comparative Analysis – How To

• State Identifiers • Standard Identifiers



• Simplify design

• Tie sheets & objects to Alternate States

Use • User Interactions


Comparative Analysis - Define

Comparative Analysis - Assign

1. 2. 3. 4.

Sheet assignment Container assignment List box assignment Expression assignment

Alternate States – New Function •

Testing for a State – Conditioning elements on an alternate state thru a new function – Statename()

Examples Dynamic Text ='Region - ' &if(StateName() = '$', 'Default', StateName())

Dynamic Colors if(StateName() = 'Group 1', rgb(152, 171, 206), if(StateName() = 'Group 2', rgb(187, 200, 179), rgb(210, 210, 210) ) )

Comparative Analysis – Inheritance

DOCUMENT (Default Only)

Comparative Analysis – Inheritance

SHEET (Default, Inherit, Named)

Comparative Analysis - Inheritance

CONTAINER (Default, Inherit [Sheet], Named)

Comparative Analysis - Inheritance


Comparative Analysis - Inheritance

EXPRESSION (Default, Inherited [Object], Named)

Comparative Analysis – Additional • Clear – Affects all states or can be selective via new menu off CLEAR button

• State Navigation & Lock/Unlock – All states

• Linked Objects – If the copied object has a setting of INHERIT, it may perform differently in another location (sheet/container) – WHY?

Comparative Analysis – Additional • Actions – Can be invoked on a particular state • E.G. CLEAR

– New actions • Selection: COPY STATE (to a new state) • Selection: SWAP STATE (exchange selections in 2 named states) • Layout: ASSIGN STATE (to an object) • Build more dynamic UI’s to provide user with sense of state definition

– See Demo

Lesson 18 – Scripting and Data Modeling Challenges

Objectives • • • •

Explain the use link tables Calculate net change within a field Use advanced functions for handling time Identify why dynamic aggregation and interval matching are important

Link Tables

Date Island

Interval Match

Lesson 19 – Performance Optimization

Objectives • • • •

Discuss performance tuning Explore the impacts of appropriate document design Introduce security concepts Review best practices

Lesson 20 – QlikView Security

Objectives • Identify the components of QlikView document security • Explain access control and restrictions • Practice implementing QlikView Section Access

Business Case Workshop

Objectives • Build a working QlikView analysis application • • • •

Review business requirements Review data sources Plan development effort Build application

• Review and discuss with instructor/students

Scenario • ACME Inc., is a food & drink distributor selling to different types of stores across the United States and also internationally. They are interested in getting a better understanding of their Sales and Margin performance across their business. • They have asked you to develop a Sales Analytics QlikView application for them. The application will be used by their top executives, their product managers and also their salespeople.

Thank You.

View more...


Copyright ©2017 KUPDF Inc.