Introducing qlbuilder

qlbuilder In general qlbuilder is a tool that communicates with Qlik apps (using the Engine API) and set the script. The script is located on the local machine and can be “stitched” from multiple files. Why? Everyone have their own preferred IDE/text editor and we can write own Qlik Sense load scripts there and use include/must_include inside the app to “bring” the script inside the app. But it will be nice if we can write the scrips locally and upload them directly to the app as it is. ...

October 8, 2019 · 5 min · 993 words

Deploy Qlik extension/mashup with Qlik-CLI

Creating Qlik extensions/mashups is usually quite fun. But it will be better if you have a way to develop locally and deploy to Qlik. Usually I’m using qExt or sense-go but in this specific case I didn’t had the chance to use either (enterprise restrictions) Luckily for me Qlik-CLI was available. And Qlik-CLI is doing a great job dealing with Qlik Repository API. I’ve decided to write a small PowerShell script that can be used to import the extension from my local PC to Qlik. ...

July 18, 2019 · 3 min · 497 words

Global Environment Values Approach (Qlik Sense)

With multi-stage Qlik environment (DEV, TEST, PROD etc) the load scripts are usually including some kind of a check - “In which environment am I?”. Based on the result different/additional actions might be performed. For example: if the environment is not PROD then mask/scramble the client names use different data connection names (providers) on each environment … It will be nice if there is something more centralised that can provide this information (and not only) to any app on the cluster. Something like a global meta-data “storage” that can be changed/updated (by the administrators) ...

July 16, 2019 · 5 min · 906 words

Qlik for Visual Studio Code

Recently I’ve started working on one of the idea from my wild ides list. For info click here (but more on it later when there is something working to be shown). For this we need to write our QV scrips in external text editor. My personal choose is VS Code. Quick search in the VS Code extension marketplace shows that there is Qlik for Visual Studio Code extension for highlighting QV code developed by Xavier Hahn. The extension is working very nice and if we open a file with .qvs extension then the text will be highlighted with the QV syntax. ...

April 23, 2017 · 2 min · 333 words

Qlik Sense Custom Hub

I like how flexible Qlik Sense is. With its massive API if we want we can re-build the GUI (and not only) from scratch and just use the background services (like the Engine or Repository). I have some (small) issues with how the current Hub looks and behaves and decided to build something simple that fits my needs. At the end I’ve wanted something simple that will provide me with quick search capabilities, few shortcuts and the options to create, delete and duplicate files. ...

November 13, 2016 · 2 min · 236 words

Termux

Recently I’ve found a very neat Adnroid app which I can run on my Chromebook - Termux- “Termux combines powerful terminal emulation with an extensive Linux package collection.” In essence after installing it you will have a nice Linux distro on your Android device without root. In my case I’ve decided to try if I can use Termux for Node development. Node development The initial plan was to install node inside Termux and to use it to install npm packages and run code. ...

October 31, 2016 · 3 min · 452 words

qSocks snippets extension for VSCode

At the moment VSCode is my preferred code editor (although I’m side using Atom sometimes as well). And when I’m writing something which uses qSocks I’ve always have GitHub and Qlik Sense help site open so I can check the available methods and what parameters need to be provided for these methods. Plus I’m a “bit” lazy and always copy/paste code from another projects I have and adapt it to the current needs. For these reasons I’ve made VSCode snippets extension. The extension is used from within VSCode and include all qSocks methods as snippets. Just type qsocck and pick the method that you need. ...

October 10, 2016 · 2 min · 327 words

Qlik Sense Mail Notifications

One feature that is missing in Qlik Sense is to send mail notifications when task is completed (fail or success). This feature is available in QlikView Server and I’m finding it very useful. I’ve found 3 ways that this can be achieved in QS: Log files scraping QRS API log4net I’ll cover the third option in details Log files Every QS service have it’s own log folder where the activity is logged. Batch file can be written that monitor the Scheduler service log file and on change to scrap the content and mail the result. ...

April 24, 2016 · 3 min · 638 words

Qlikview Notify

Recently we had data issue and few documents was affected by this. We notified the users by adding textboxes in these documents with a warning an explanation. But while this particular data issue was still active 2-3 more data issues was found and editing the text boxes was not quite an option. We didn’t had enough space in the main sheet there was no guarantee that the users will navigate straight to the main sheet editing all the documents, saving and publish them again was a bit slow process since the apps was few GB each in size For these reasons I’ve made a small QV extension that can show notifications which are setup in the server part of this solution ...

April 10, 2016 · 3 min · 446 words

GetProgress() (Qlik Sense)

Part of one of my projects was to reload app on the fly. The whole process is working fine (more on this in a different post) but wanted to show the reload progress to the user. For this purpose we can use GetProgress() method from Qlik Sense Engine API The code below uses qsocks and shows how to get the reload progress from NodeJS app: qsocks.Connect(qsConfig).then(function(global) { global.productVersion() .then(function(version) { return console.log('*** Connected to QS Engine Service') }) .then(function() { return global.openDoc('DOCUMENT ID') }) .then(function(doc) { var reloaded = null; // when the app is finished to reload doc.doReload().then(function() { reloaded = true; console.log('Reloaded'); }); var persistentProgress = ''; var progress = setInterval(function() { if (reloaded != true) { global.getProgress(0).then(function(msg) { if (msg.qPersistentProgress) { persistentProgress = msg.qPersistentProgress; console.log(msg.qPersistentProgress + ' <-- ' + msg.qTransientProgress) } else { if (msg.qTransientProgress) { console.log(persistentProgress + ' <-- ' + msg.qTransientProgress) } } }) } else { clearInterval(progress) } }, 500); // get the reload progress every 500ms }) }) Hope you like it! ...

March 14, 2016 · 1 min · 171 words