QlikView Power Point Template Front Title Page - Penn Web

8 downloads 114 Views 10MB Size Report
14 Mar 2013 ... 1:50 pm – 2:35 pm Direct Discovery & QlikView 11.2 Update – Lucia ...... Scripting is the environment in which a QlikView Developer will.
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

Today’s 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 QlikTech’s 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 QlikView’s 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 – today’s mobile devices do not have the processing power or memory to do this – Until device hardware catches up, it’s 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 user’s 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 World’s 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: It’s 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

7

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 prospect’s 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 QlikTech’s 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 ”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. It’s 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 doesn’t 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. It’s more work than it’s 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)