Load scripts in Qlik applications can be replaced with EasyMorph in vast majority of cases. The integration takes only two lines of script per app, and provides multiple benefits:
Some of the biggest EasyMorph customers use EasyMorph with QlikView or Qlik Sense.
The integration works as follows:
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 Qlik 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 Qlik applications. In case of QlikView applications it can look as below:
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 SUBFor Qlik Sense applications a slightly different variant of the universal script should be used. It should explicitly define the name of EasyMorph project to run. Note also that the EXECUTE statement requires the legacy mode enabled in Qlik Sense Server.