Hey Guys - welcome to this week's Tuesday edition of the Qlik Design Blog. In this post we are excited to announce the availability of Qlik Sense November 2017. It has only been 2 months since our last release demonstrating our commitment to continuous and iterative improvements with our products. In this video I quickly breakdown what’s in the Qlik Sense November 2017 release. Included are some various chart improvements, new connectors and usability improvements to visual data preparation and the design interface. Let me know what you think, and leave a question or comment below.


Other videos for your viewing pleasure:




NOTE: To increase resolution or size of the video, select the YouTube logo at the bottom right of the player. You will be brought directly to YouTube where you can increase the resolution and size of the player window. Look for the 'settings' gears icon in the lower right of the player once at YouTube.


Try Qlik Sense now: Try or Buy


Can't see the video? Download the .mp4 to watch on your computer or mobile device.



Michael Tarallo (@mtarallo) | Twitter

There are a lot of people that use Wordpress as their company's portal. If you are one of these people then, you may find this plugin very useful. You can create a mashup from within wordpress, using the Capabilities API, without writing a single line of code. Just add the settings with the host and the App ID, then the shortcode for the objects that you want and you are done.

Here, I will show you how to do that.


  1. First go to your wp admin panel, under "Plugins" click on "Add New" and then search for "Qlik"
  2. Click on "Install Now" and then on "Activate"
  3. This will create a "Qlik Sense" settings page, just open that
  4. Settings.png
  5. Here you need to define your host, the Virtual Proxy (prefix) and the App Id, as you would in a regular mashup. If you are planning on using a second app, then add the second app id in "App2 ID".
  6. Save changes.
  7. Then add the shortcode into your posts "[qlik-sense-object id="page1-obj2" qvid="nvqpV" height="400" app2="true"]"

- id: is the unique div id. This is needed especially when you want to display the same object in 2 different instances

- qvid: Is the object id as found in the "dev-hub/single-configurator"
- height: The height of the visualization in pixels
- nointeraction: Add this if you want to disable interactions. If you want the objects to have interaction, you can just omit this.

- app2: Add this if your object is coming from the second app that you have specified in the settings




  • I have added few objects with a specific height in a bootstrap template for better layout. Now, lets preview the page

Make sure you whitelist your url in the virtual proxy.


If you use it and like it, please give it a 5 star in Wordpress.


This is it!



In Portuguese: Qlik Sense Plugin para Wordpress by cleveranjos. Thank you Clever!

GitHub - yianni-ververis/qlik-sense-wordpress-plugin: A Wordpress plugin to create a Qlik Sense Mashup

Qlik Branch

drop.pngGood day Qlik Community! In this article / video - I'm excited to present to you a preview of the new Dropbox connector that comes with Qlik Sense Cloud Business and Qlik Sense Enterprise, available later this month. In short, Qlik Sense can now securely access Dropbox and pull data from Qlik Sense supported file sources, directly from the cloud share. The connector itself, is fairly simple to use. It's just like accessing a local folder structure. However, it gives you another option for storing data files for use with your Qlik Sense apps. It even opens some new techniques for refreshing file-based used by those apps. So, instead of storing data files in my Qlik Sense Cloud Workspace, I can choose to store them in Dropbox. With this approach I can automate a data file upload process when new data arrives..... add that to Qlik Sense Cloud Business and its Schedule Data Refresh capability, and you can completely automate the data upload and Qlik Sense app refresh process!


Want to learn more? Take a look at this brief video below to see how I used the Qlik Sense Dropbox connector and common, freely available Windows tools to make this happen.


NOTE: The approach I take in the video simulates data being written out / updated to disk and then transferred to Dropbox on an automated schedule using a 3rd party scheduler (Windows Task Scheduler). It is completely up to you how you would like to achieve this. For example, you could have a database process export files directly to the Dropbox folder, or even use an ETL tool workflow and its scheduler to write out data to the Dropbox share.


Have more ideas on how this can be achieved? We want to hear from you, so share them in the comments below.



Michael Tarallo (@mtarallo) | Twitter





Qlik Sense Cloud Business - Dropbox Connector - Refreshing file-based data


NOTE: To increase resolution or size of the video, select the YouTube logo at the bottom right of the player. You will be brought directly to YouTube where you can increase the resolution and size of the player window. Look for the 'settings' gears icon in the lower right of the player once at YouTube



Can't see the YouTube video?


Download it here to watch on your computer or mobile device?

One of our new additions to the charts library is the Waterfall chart. It’s useful to visualize how an initial value evolves (increment or decrements) over time or in distinct stages. It’s widely used across companies and finance analysis seems to be a good fit for the waterfall chart. We commonly see this type of chart for Income or Cash flow statements.





How it works?


Qlik Sense waterfall chart is a simple non-dimensional chart, it’s composed by expressions only. Each measure can be configured to “Add”, “Subtract”, or “Subtotal”. Meaning we have total control over the graphical representation of the values, we could tell a positive number to subtract its value from previous column and viceversa.

The Income Statement example


The CFO of the company Fitness Equipment Limited (from Wikipedia) wants to visualize and analyze its company income statement by year.





After getting the data into Qlik Sense (one table with three columns, Concept, Year, and Amount) it's time to represent the Income Statements table above with a Waterfall chart. Remember, the goal is to show the profit (or loss) for the year amount, but more importantly how was the flow to get to that amount.


Creating the chart


  • In edit mode, drag and drop the new Waterfall chart into the Qlik Sense app
  • Add the first measure, it will typically be the starting amount or opening value. Revenue will make it in our example.
  • Add as many measures as you need to complete the individual contributing amounts. In our example:
    • Cost of Sales
    • SGA expenses
    • Gains from disposal of FA
    • Interest expense
    • Income tax expense



For those balance measures and those amounts that denote subtotals such as Gross Profit or Operating profit we don't need to create an expression, we just need to check the subtotal checkbox in the preceding measure.

For example, to calculate Gross Profit (Revenue - Cost of Sales) check "Subtotals" check box in Cost of Sales measure and set the "Subtotal label" to Gross Profit. Perform the same operation for all of the balance points in the chart.


Spicing it up


Waterfall chart comes with the usual customization panels as seen in any other Qlik Sense chart, but this time we have a dedicated Color section that includes a color picker for each one of the bar types that inhabit your chart.


The final waterfall chart looks like the picture below. It includes a year list box so now the CFO and any user will be able to quickly  visualize different years of Income Statements to analyze how each piece contributes to the total profit.




This is just an example of what a Waterfall chart can do for your business but I'm sure there are many more use cases for it, please share your experience with Waterfall chart in the comment section below.


Enjoy it!



PS: Find attached the Qlik Sense with the examples shown in the blog post

Try the app here:







NOTE: To increase resolution or size of the video, select the YouTube logo at the bottom right of the player. You will be brought directly to YouTube where you can increase the resolution and size of the player window. Look for the 'settings' gears icon in the lower right of the player once at YouTube. (video and sample files)

For more videos that can help you get started with Qlik Sense:

One of the most useful features of Qlik Sense for me when developing a front-end is how easy it is to paginate data. Any front-end developer knows that updating thousands of dom elements is not exactly ideal, because dom updates are slow. But Qlik Sense makes it so easy to avoid ever having to do that.

For instance, take a look at the location dropdown for the Solar Eclipse demo at https://webapps.qlik.com/solar-eclipse/index.html. There’s over 29,000 rows there! But, here’s the trick – there’s only ever 10 rows in the dom at any time, and when a user scrolls what’s actually happening is the dropdown is receiving new data from Qlik Sense.

To paginate data with Qlik Sense is pretty simple. With enigma.js you’ll just create your object, either a hypercube or a list object, like usual, but you don’t need to pass it any qInitialDataFetch attribute. Then anytime you need some data, you just call a method to get data. Which method you call depends on your object. For a straight hypercube, you’d just call getHyperCubeData method like below -


  qInfo: {
    qType: "visualization"
  qHyperCubeDef: {       
    qDimensions: [
      // qDimensions
    qMeasures: [
      // qMeasures
}).then((object) => {
  object.getHyperCubeData('/qHyperCubeDef', [
   // this will fetch 1 page of data, but you could request multiple pages by adding more qPages here
      qTop: 0,
      qLeft: 1,
      qHeight: 2,
      qWidth: 10
  ]).then((data) => {
    // do stuff with data


If your hypercube is in pivot, stack, or tree mode, or if your object is a list object, you’ll have to use the corresponding method in place of getHyperCubeData, which you can find here https://help.qlik.com/en-US/sense-developer/September2017/Subsystems/EngineAPI/Content/Classes/GenericObjectClass/GenericObject-class.htm.


If you’re using the Capability APIs, while not technically supported, the same methods work with the object that is returned from the promise (not the layout returned in the callback).

Jennell McIntire

Dimension Colors

Posted by Jennell McIntire Oct 20, 2017

A few months ago, I wrote a blog about setting colors in master dimensions and measures.  Today I am going to share a little more about how master dimensions can be set to a single color or multiple colors.  Let’s first talk about setting a dimension to a single color.  This can be helpful when you want to use a color other than the Qlik Sense default color in your charts.  For instance, a bar chart may look like this with the default blue color.

default blue.png

But if your app is using a different color theme, you may want all the bars to be purple for instance.  You can do this by setting the Dimension color on the Edit dimension tab of the master dimension to the color you would like the dimension to be.  This color will be the same for all dimension values which is good practice when there are many dimension values.

edit dimension small.pngpurple small.png



















Now let's discuss setting a master dimension to multiple colors.  Sometimes you may need the color for each dimension value to be different.  This is when you can use the Value colors tab of the master dimension to set the colors of each dimension value.  The stacked bar chart below is a good example of when you may want the dimension values to have different colors.  This chart is looking at the calls by activity type and call type.  The call type dimension values are set to 3 different shades of blue so that they can be distinguished in the stacked bar chart.  If the color values were not set, then the standard blue, red and yellow colors would be used instead.


stacked small.png

The color values can be set on the Value colors tab of the master dimension (see image below).  A color scheme can be used to set the colors or each value can be set manually.  The call type field only has 3 values so it is a good candidate for value colors.  You want to avoid using values colors or coloring by dimension if there are several different dimension values.  Too many different colors (or not so different colors) can become confusing and indistinguishable to the user.

value colors.png


On the Value colors tab, there is also the option to select a color for Others, if you are adding any limitations to the dimension, or for Null values.  When using the value colors to color your dimensions, be sure to select color by dimension and enable library color in the properties of the chart.  Check out this video in Qlik Sense Help for more information.


These color features available in dimension master items provide one place to set and edit the dimension colors used in charts.  You can set it once and use it in multiple charts.  This promotes consistency in our apps thus making them easier to digest and understand.




cloud blog 2.pngHey Guys! Thanks for taking a moment to read this blog and view the brief 60 second video on our Qlik Web Connectors. It is no surprise that we are surrounded by mountains of data. But, what good is it if you don't have easy access to it? I'm not talking about data that sits in traditional files and databases. I'm talking about data that sits in numerous cloud-based services, social media and web sites.Depending on your business, this data can contain valuable insights that help you make better decisions as wells as customer sentiments that help improve your products and services.


Our Qlik Web Connectors is the answer to your additional data needs, whether its from a cloud-based CRM, data warehouse or social media application. Watch the below video to learn how simple it is to fetch this data and bring it directly into your Qlik Sense or QlikView environments. And...Qlik Sense Cloud Business subscribers, guess what, you have access it to them too!


Qlik Sense in 60 - Qlik Web Connectors


NOTE: To increase resolution or size of the video, select the YouTube logo at the bottom right of the player. You will be brought directly to YouTube where you can increase the resolution and size of the player window. Look for the 'settings' gears icon in the lower right of the player once at YouTube.


Qlik Sense Cloud Business Subscribers:

As stated in the video, Qlik Sense Cloud Business subscribers can also get immediate access to a great selection of many of our web connectors, with more being added on a regular basis. With Qlik Sense Cloud Business, subscribers can quickly and easily fetch data from many web-based sources with a new integrated connector selection list and query manager. The addition of these features, eliminates the need to copy and paste any script as you would when using the standalone Qlik Web Connector service.


How-To Videos

For more information on a list of Web Connectors just released for Qlik Sense Cloud Business check out our recent announcement here: Getting More Connected in the Cloud


Additional Web Connector Resources:


Learn more from my colleague Adam Mayer who shows some brief examples using Twiter, Facebook and Google Analytics:



We want to hear from you, so please join the conversation by posting your questions and comments below.




Mike Tarallo


Can't see the video?


Download the .mp4 and watch from your computer or mobile device

There are cases where we need to switch among charts in a mashup. The easiest way is with jQuery show/hide or if you are using Angular then show the chart based on the model value.


But what about if we have many charts, with the same measures but only the dimensions change? What if we could just change the dimension in the engine and let the engine take care of all the changes and animations?


This is possible through the Visualization API and the applyPatches() method.


Here I will explain how to create a simple dropdown that changes based on the dimension selected. Since I am using Angularjs 1.5.8 like Qlik Sense September 2017, I have created a component that

a) gets first object,

b) populates a dropdown with titles and

c) upon change, the chart is changing based on the dimension provided


First, we get the first object as usual and display it in our mashup. This is what the html looks like





                    {title:'Total Costs by Branch', dimension:'Branch'},

                    {title:'Total Costs by Work Center', dimension:'Work Center Name'},

                    {title:'Total Costs by Division', dimension:'Division'},

                    {title:'Total Costs by Collection', dimension:'Collection'}




Here, in the "qvid" is the id (BRjnYJ) of the first object. In the "data" we add the title as we want it to display in our dropdown and the actual dimension.


In our components's Javascript code, we get and then show the object as usual

qlik.app.visualization.get($ctrl.qvid).then(function (viz) {

        $ctrl.viz = viz;





Here is the html code for the component

<div class="sense-object-multi-dropdown">

    <div class="v title-1">{{ $ctrl.currentData.title }}</div>

    <div class="dropdown">

        <a class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

            <i class="fa fa-chevron-down" aria-hidden="true"></i>


        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">

            <a class="dropdown-item" href ng-repeat="item in $ctrl.data" ng-click="$ctrl.change(item)">{{item.title}}</a>



    <div class="qvobject" id="obj" height="{{$ctrl.height}}"></div>



Now, by just this, the page should have a chart and a dropdown populated.

2017-10-12 10_41_09-Plant Operations.png


Now, let's add the code that will change the dimension

    $ctrl.change = function(item) {

        $ctrl.currentData = item;


            qOp: "replace",

            qPath: "/qHyperCubeDef/qDimensions/0/qDef/qFieldDefs/0",

             qValue: `\"${$ctrl.currentData.dimension}\"`

  }], true);



Here we are telling the engine that, hey for this object (model), replace the first field (qFieldDefs) of the first dimension (qDimensions) to the one I am giving you.


That's it. Once the engine receives the new change via websocket, it will redraw automatically, without any flickering and it will animate from one chart to the next.


Attached is my entire component if you want to use it in your Angular apps. Feel free to remove all the unnecessary libraries to make it work.



Live example: Plant Operations "Total Costs by Division"



Coming from a traditional business intelligence and ETL background where I’ve used both proprietary and open source solutions – things like OLAP, data modeling, SQL, 4GLs, semantic layers and even coding dashboards were commonplace for many years. So when I started with Qlik, I was not only thrilled, but quite biased towards the way I manged and created analytics . As I set out to build my first Qlik application I immediately had many questions:

  • Where do I build my semantic / metadata layer?
  • Where is my data modeler tool to define my table relationships?
  • How do I place parameters to pass where-conditions to my database?
  • How do I wire my visualizations to make my dashboards interactive?


As I set out on this journey to appreciate Qlik, I was surprised at what I found. In this multi-part blog series I will share with you some of my pleasant surprises that changed the way I create and work with analytics.

So let’s dive in further to my first Qlik pleasant surprise.


#1: Where's the "Semantic Layer"?!


NOTE: The subject matter in this topic can have many moving parts and is not meant to be a direct comparison to traditional BI or other data visualization tools. It is an expression of my experiences when first working with Qlik and meant to inform those who might have similar expectations when comparing Qlik to other BI tools.

A typical first step when using BI tools is that you usually create a metadata or semantic layer before you can begin creating your reports and dashboards. Depending on the tools being used, sometimes you even need to create more than one…one layer to support operational reporting and one to support interactive OLAP. (Often when a vendor's software stack combines a number of acquired tools, you may see this occur.) Creating abstraction layers such as these are usually performed by BI administrators whom are familiar with the data. Metadata / semantic layers provide a unified, consolidated view of data across the organization. They are important middlemen that connect back-end data to BI client tools and add a layer of governance and security. These centralized repositories store many attributes of your data including specific attributes used by the tools:

  • Connection information
  • Business friendly field names
  • Field and row-level security
  • Aggregations
  • Data modeling properties such as keys, and referential integrity
  • Calculated expressions

Once a semantic layer is prepared, the BI client tools can begin using the "data models", "business objects", "data dictionary" etc, to create reports and dashboards.

Now, when I started working with Qlik, I was unsure how this step was performed -OR- perhaps what I was doing seemed more transparent and less rigid than what I was used to. For starters I could quickly load data directly from many sources and go directly into my analysis. Qlik simply loads and indexes data into its apps during the app creation. These apps then operate within an associative indexing engine. (more on that in another article) - If I wanted to add multiple sources, I can visually profile the data and define relationships automatically - no complex data modeling or SQL required. I did not need to worry if I was "joining" correctly or even understand the relationships of the tables. I found this to be a huge time-saver and the process was fairly simple to navigate. This was indeed a pleasant surprise.

10-10-2017 8-20-16 AM.png

Once the data was loaded into the app, I immediately had access to my fields and could begin creating my analysis. In addition, I discovered that I can also set up reusable expressions, measures, dimensions and even predefined visualizations, through a feature known as Master Items. Master Items are defined in the Qlik Sense App rather than a centralized server. They allow business users to use a pre-defined library of assets so they can easily create and customize visualizations. (Note: Master Items are more beneficial to users of Qlik Sense Enterprise as opposed to those using Qlik Sense Desktop.)


This was a pleasant surprise as it was extremely easy to get started with Qlik and cut my data preparation time significantly, in turn giving me more time to create my analysis.So basically, I discovered that Qlik, defines its "semantic layer" within the app itself, as opposed to a separate repository?!? Hmmm.....

A healthy debate ensues

To some degree, I understand there are some opinions about this approach, and some may say "That's not a semantic layer". Now there are ways that you can export a Qlik data model and data index, created within the app, to disk (.qvd) and use them with other applications. This has been done widely and successfully by many of our customers. But...with the new Master Items approach introduced in Qlik Sense, we needed a way to centralized those assets for other applications as well, so our team of experts have created a Qlik Powertool, the Governed Metrics Service.

"The Governed Metrics Service (GMS) Powertool provides the ability to control and provision the use of governed Master Items. GMS loads externally defined metrics and applies them to one or more designated applications. GMS will quickly have you on the right track to governed self-service."

To learn more about GMS check it out here: Introduction - EA Powertools Governed Metrics Service

My journey with Qlik is no where near completed and I anticipated many more pleasant surprises. Next week I'll cover another pleasant Qlik surprise that helped me uncover things in my data I had not idea existed. Have a comment or question, a pleasant surprise you want to share? We want to hear from you. Use the comments section below to ask a question and join the discussion.


Michael Tarallo (@mtarallo) | Twitter

For starters, if you are a visual learner and new to Qlik, take a look at this brief video to get an idea of how to provision from multiple tables using Qlik Sense:


NOTE: To increase resolution or size of the video, select the YouTube logo at the bottom right of the player. You will be brought directly to YouTube where you can increase the resolution and size of the player window. Look for the 'settings' gears icon in the lower right of the player once at YouTube. (video and sample files)

For more videos that can help you get started with Qlik Sense:

My previous post versed about what I think it is a very interesting use case of Set analysis element function P() to create dynamic sets and how to operate with those sets to solve really complex analysis scenarios in an easy and elegant way.


In the comments section of that post, I got a couple of questions regarding one of the charts we used in our web app, the so-called Tornado Chart. This post goes to answer that question by showing how to create a Tornado/Butterfly Chart.


Step by step guide:


Note: For the following example I got a sample data containing Population by Age data from the US census. It has 3 columns, Age Range, Male population and Female population.


  1. Drag and drop a bar chart to your sheet.
  2. Add a dimension.  I’ll add Age Range to mine.
  3. Add two expressions. I need one expression to display female’s population and a second one for males.

    At this point, my chart looks like this:


  4. Next, we will adjust the bar chart sorting and appearance.

    Sort the chart according to your data. For this data set my best option is to sort Age Range using load order, to do so, move Age Range to the top and then uncheck all the sorting options to sort on load order.
    In the Appearance section of the chart property panel, switch Presentation to Horizontal and Stacked and set Value labels to Auto.

  5. Now we need to figure out how to “move the y axis to the center of the chart". To do so I’ll transform the data to make Female population negative by changing my expression to: Sum(FemalePopulation)*-1


  6. My chart looks almost right but there’s still a detail that doesn't fits well in the picture above. Note that the value labels for Female Population are displayed as negative numbers. While technically correct, it doesn't work for this chart, I need it to be displayed as positive vales as well.

As a general note remember we can set up the format for positive and negative values for any expression. Format argument in the Num function can take 2 parameters, first one indicates how to format the number if it is >0 and the second piece if number <0.

=num(sum(x), 'postivenumberFormat;negativenumberFormat')


As I want negative and positive number to look exactly the same I could use the following format arguments:







Note: Please be aware of some potential issues when exporting the chart as data since the resulting file could contain negative values.


Enjoy it.

Hey guys - thanks for joining me in this Tuesday's edition of the Qlik Design Blog. Today I have provided a video that walks you through the Qlik Sense Data Load Editor and at the same time highlights a simple use case example where Qlik Load Script can come in handy....loading data from an Excel file, while looping through its multiple sheets.


As you may know Qlik Sense has a powerful visual data preparation interface to help you profile and prepare data for analysis, but did you know that Qlik also provides advanced scripting capabilities to help you transform and augment data as well as perform many other tasks, including those you may found in popular programming languages?


Some common examples include:


  • Incremental loading
  • Adding row and field level security: Section Access
  • Creating .QVD files
  • ...and more


Watch this brief video to learn about the Data Load Editor and see it in action, read on to learn about what else Qlik Script can do.





NOTE: To increase resolution or size of the video, select the YouTube logo at the bottom right of the player. You will be brought directly to YouTube where you can increase the resolution and size of the player window. Look for the 'settings' gears icon in the lower right of the player once at YouTube.




You can learn more about what other great things Qlik Script can do in these awesome blogs by our Jennell McIntire jmc:



...and many more. Stay tuned to the Qlik Design Blog on Fridays, where Jennell and team blog about many interesting Qlik design topics.


Can't see the video? - You can download the .mp4 attached to this post.


Samples files used in the video also are available.


Visual Data Preparation References:





Michael Tarallo (@mtarallo) | Twitter


I've seen a few questions regarding integrating Qlik Sense visualizations into existing webapps lately, and figured I'd lay out a few tips here that may be of help.


There's really two ways of integrating Qlik Sense visualizations into your webapp, by either using the Capability APIs or iFrames. I'll discuss the pros and cons of both.


Capability APIs

The Capability APIs include the Root API, the App API, and the Visualization API, among a few others. The Root API is used to connect to an app, and either the App API or the Visualization API can be used to then embed Qlik Sense objects onto the sheet. There's quite a few resources regarding the details of actually doing this available already, so I'll skip that, but if there's any questions surrounding it, let me know. What I do want to talk about is the pros and cons of using the Capability APIs vs iFrames.


The pros of the Capability APIs are that all you have to do to use them is load the assets that are conveniently served from the Qlik server, supply a config, require the qlik.js file, and you're set. You can quickly get up and running, and you're able to not only embed existing visualizations, but you can create visualizations on the fly using the Visualization API and patch them as you go. So, it's easy to get going, and to embed, create, or even update visualizations on the page.


The downside is that the assets needed for the Capability APIs include Require.js and Angular 1.5.8, and they're both globals that can be quite intrusive, and force you to redesign your existing app to play nicely with their residency in the global scope.



And that's exactly the best thing about iFrames. Since an iFrame is totally encapsulated from its parent page, there's no issues with existing assets and assets needed to embed Qlik visualizations colliding. And for all the other features that the Capability APIs offer, you can simply use enigma.js, which can share the same session as the iFrame'd objects.


One of the things to watch out for when using iFrames is that Internet Explorer, by default, only allows a maximum of 6 concurrent connections. So that's a limitation if you need to support IE. Another thing that you won't be doing is creating any visualizations on the fly.



To help overcome the websocket number limit, or if you really need to create visualizations on the fly, but also want to use the iFrame approach, what you can do is instead of embedding visualizations using iFrames, you can create a mashup, and then embed that into your webapp in an iFrame. Using HTML5's window.postMessage API, you can enable communication between your app and the mashup in the iFrame, and you can also still use enigma.js in your webapp.

Hello Qlik Community! Qlik's Bruno Calver is back sharing his in-the-field experiences, building upon his User Experience white paper made available last year. This time he has authored a white paper on Data Literacy. Bruno has worked with many large global enterprises, helping them discover the value in their data and how to best represent it in order to drive results.  During this time he has come across many different ways of working with data. This article tries to consolidate the key take-aways within the context of data literacy. Be sure to download the attached PDF at the bottom of this post to learn more.



Literacy skills have always been top of the bill in the education system -- and for good reason. Equally, data literacy skills are climbing the agenda in today’s competitive business environment.


Organizations will soon rely less and less on pre-processed information and their gut instincts as a decision making paradigm. It is increasingly important for everyone to apply critical thinking skills to every problem and data set in order to achieve a competitive advantage and create truly innovative solutions.


However, for many of us it is not clear what data literacy means, let alone the skills and techniques that might help drive our own data literacy level. The attached article explores these concepts and provides 5 key areas to think about when analyzing your data - including practical examples:


  1. Trends & Context
  2. Internal & External Data
  3. Cohorts & Cell based analysis
  4. Averages, Aggregation & Distribution
  5. Bias & Non-Causal Correlations


Increasing data literacy skills can have a profound impact on organizations in the following ways:


  • Increasing user adoption and awareness of analytical tools and capabilities
  • Creating data driven cultures to enhance performance
  • Unlocking more value from your data investment


If this sounds interesting, then please read the article and see what new things you can discover about the language of data…!



Bruno is a Principal Solution Architect working in the UK with some of Qlik’s enterprise customers. His passion is working with business people to turn disparate and otherwise mundane data sets into insights and stories that can engage their audience, drive change and inspire new ways of thinking.

Jennell McIntire

FileSize Function

Posted by Jennell McIntire Sep 22, 2017

In the past, I have blogged about the FileName function and how I used it to generate data for my Qlik Sense app.  Today, I thought I would blog about another file function, the FileSize function.  The FileSize function is a script function that can be used to return the size of a file or table.  The FileSize function returns an integer for the size, in bytes, of the file specified or a table.  The file can be a QVD, a text file, an Excel file or a table.  The syntax is quite simple:





I have used the FileSize function to determine if a QVD exists before I load it.  In the example script below, I set the size of the CustomerMaster QVD to the vSize variable.  Then I check the variable to see if a size was returned.  If a size was returned meaning a QVD is there, I load the QVD.  If the QVD does not exist then the FileSize function will return null.


The FileSize function can also be used to return the table size of the table file being read.  To do this, the FileSize function is used in the Load statement as seen in the example script below.  When the filename parameter is excluded, then the FileSize function will return the size of the table currently being read.  The TableSize field will store the size of the CustomerMaster table after it has been loaded.


The FileSize function is another easy-to-use script file function that can be used in Qlik Sense or QlikView to provide the size of a file or a table.  Use the FileSize function as a checkpoint in your script to ensure the file is available before loading, as I did in the example above, or use it ensure size requirements for files being loaded are being met in your app.  Good luck scripting!




Filter Blog

By date:
By tag: