QlikView to Qlik Sense – Feasibility Study- Part 1

In our previous blog, Kaushik Solanki answered series of questions faced by Qlik Champions who are thinking of migrating from QlikView to Qlik Sense. Today, we will discuss the Effort and Feasibility Study that should be done before starting the migration project.

Feasibility study plays an important role in any migration plan to answer questions specific to your install for successful execution. A feasibility study may reveal new challenges or concepts which may completely change the scope of the project. It’s better to make such determinations beforehand instead of starting the project only to realize that it involves more work or won’t work.

It provides a better vision of different key aspects which help you in better planning & execution of the activity. You can also check potential risks involved & define an alternate approach to mitigate them.

Let us understand the Effort estimation and Feasibility study areas for QlikView to Qlik Sense migration.

Value-added products

The diagram below helps understand the feasibility of various value-added products that are used in QlikView.

You can see in the above diagram that primarily there are four value-added products which are used along with QlikView out of which 2 products are fully supported in Qlik Sense whereas 2 products are not supported. But one may try to achieve similar functionality using other methodology.

Data Architecture

For any Qlik project, data architecture is an important aspect that needs to be considered while thinking of migration. In most of the Qlik projects the business logics are incorporated at the data architecture stage or at the data model level while creating the QVDs.
Let us understand what part of the data architecture can be used as-is and what part needs changes.


The above diagram shows a typical Data Architecture used in QlikView Implementation. You can observe that it has all four types of data extraction layers. Out of these, the layer that takes QVD as the source is fully supported in Qlik Sense Data Architecture, whereas the last layer (highlighted in Diagram) where the source is the QlikView Data Model is not fully supported in Qlik Sense.
Mostly data models are used as a source by using the “Binary” load statement in the script, but Qlik Sense has a limitation in using “Binary” load. In Qlik Sense you can use the “Binary” load statement only to fetch data either from QVW or QVF. But you cannot use the Qlik Sense Binary App. This means you cannot refer to the Qlik Sense App that is already in Qlik Sense.

Scripting

QlikView and Qlik Sense share the same underlying technology and thus most of the scripting remains the same, except few things. Let us understand those functionalities that require some tweaking.

File Paths

In QlikView, we generally use the Relative path or the Absolute path to refer to a file such as Excel, CSV, txt, or QVDs. In Qlik Sense there is a concept of a centralized library for data connection and it uses the relative path for data connections. Below is a sample script that shows the difference.

QlikView syntax

LOAD * FROM [<filepath>\Sales.csv];

Qlik Sense syntax

LOAD * FROM [lib://<FolderConnection>/Sales.csv];
If you want to use the absolute path in Qlik Sense, you need to enable legacy mode.

Section Access

Most QlikView Documents have Section access for the Data Authorization, The authorization access matrix needs to be modified to achieve same result in Qlik Sense.
There are some differences in Qlik Sense you should take into consideration:
User authentication is changed. The USERID field is used to authenticate all users, and the NTNAME and PASSWORD fields are not supported.
Section access is applied using strict exclusion in Qlik Sense. This means that you can only see data that you have been specifically granted access to.
So it’s recommended before converting the document with QlikView converter, that you remove the section access code in the QlikView script editor and replace it with the required access.
Is there any QlikView Sheet level or Object-level Data Authorization matrix used? The latest version of Qlik Sense has Sheet Level Hide & show capability as well. But developer needs to put the condition manually. Currently, chart-level User authorization is not directly available in Qlik Sense. The alternate solutions will be complex & maintainability wise not that easy too.

Hidden Script
If you have any hidden script in any QlikView Document, you need to copy the script manually from QlikView Document to Qlik Sense or else, before migrating QlikView Document, copy the hidden script in a new tab & use QlikView Converter. Else hidden scripts will be missed out using QlikView converter.

Bundle Info Load

If you have used Bundle Load to show the dynamic Images in the QlikView dashboard, this functionality is not supported in Qlik Sense. You need to check any third-party extension or create your own extension to do that.

Non-Supported Functions

There is a list of functions that are no longer supported in Qlik Sense. Below is the list.

GetCurrentField
GetExtendedProperty
Input
InputAvg
InputSum
MsgBox
NoOfReports
ReportComment
ReportId
ReportName
ReportNumber

There are also few prefixes that are not supported in Qlik Sense.

Bundle
Image_Size
Info
There are more aspects that need attention for Effort and Feasibility check, which will I will cover in the second part shortly.