EasyMorph for QlikView

For Qlik Sense click here.

EasyMorph allows replacing load scripts in QlikView applications with visually designed data transformations. This is especially helpful for users without a technical background, who frequently find scripting too difficult. Integration with EasyMorph takes only two lines of script per app, and provides multiple benefits:

  • Easier and faster development. Especially when it comes to debugging.
  • Reloading happens only from the point of last change (often proactively in the background). No need to reload everything from the beginning every time.
  • No annoying errors caused by a missed comma or typo, thrown long after the script started running.
  • Automatic asynchronous multi-threaded execution (Qlik scripts are single-threaded). Querying a database and loading a file is typically done simultaneously in EasyMorph.
  • EasyMorph has a bigger set of transformations than the Qlik scripting language. Everything you do in a Qlik script can be done in EasyMorph, including pivoting/unpivoting, interval match loads, resident / keep / concatenate loads, etc.
  • Automatically generated human-readable documentation in plain English that can be embedded right into QlikView apps (in web mode).
  • Built-in charts. You can visualize and profile data in the middle of the transformation logic.


Some of the biggest EasyMorph customers use EasyMorph with QlikView or Qlik Sense.

Note that EasyMorph is not as memory efficient as the QlikView's in-memory engine. Large applications (100+ GB of uncompressed data) might require arranging data partitioning in EasyMorph with incremental loading in QlikView. In all other cases EasyMorph should work out of the box with minimal setup (described below).

How it works

The integration works as follows:

  1. 1. A QlikView application runs an EasyMorph project using the EXECUTE statement.
  2. 2. The project creates one or more QVD files that correspond to tables in the app's in-memory data model.
  3. 3. The QlikView app loads the QVDs. The data model is created.
EasyMorph ETL for Qlik

See example: Integration with QlikView. Important! The example requires a demo license key which you can download here: Demo license key. No registration required.

From a practical perspective it's convenient to give the project a name similar to the app's name, and put it into the same folder. E.g. for MyApp.qvw it should be MyApp.morph located in the same folder.

The load script of the QlikView app consists of just two lines:

$(Must_include=C:\Some\Path\easymorph.qs);
CALL ImportModel('fact_table.qvd|dim1.qvd|dim2.qvd|...');

Here, easymorph.qs is a universal script for running EasyMorph projects. It can be re-used in multiple QlikView applications. For instance, it can be as follows:

SUB ImportModel(vFiles)
	// The path to morph.exe.
	SET pathEasyMorph = C:\Users\someuser\AppData\Local\EasyMorph\morph.exe;

	// Assume the EasyMorph project has the same name as the app,
	// and is located in the same folder.
	LET pathProject = Replace( DocumentPath(), '.qvw', '.morph');

	// The single quote character.
	LET quote = chr(39);

	// Create a comma-separated file list from the pipe-separated list.
	// A.qvd|B.qvd  -->  'A.qvd','B.qvd'
	LET list = quote & replace(vFiles, '|', quote & ',' & quote) & quote;

	// Run the EasyMorph project that generates QVD files for the data model.
	EXECUTE "$(pathEasyMorph)" /c "$(pathProject)";

	FOR EACH file in $(list)
		// Read a QVD generated by the EasyMorph project.
		LOAD * FROM [$(file)] (qvd);
	NEXT file
END SUB

Try EasyMorph with QlikView.

Free download   Ask a question