<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Qlik on Stefan&#39;s Blog</title>
    <link>https://sstoichev.eu/tags/qlik/</link>
    <description>Recent content in Qlik on Stefan&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <lastBuildDate>Fri, 23 Feb 2024 10:00:39 +0000</lastBuildDate>
    <atom:link href="https://sstoichev.eu/tags/qlik/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Get app reload progress (enigma.js mixin)</title>
      <link>https://sstoichev.eu/post/enigma-mixin-reload-progress/</link>
      <pubDate>Fri, 23 Feb 2024 10:00:39 +0000</pubDate>
      <guid>https://sstoichev.eu/post/enigma-mixin-reload-progress/</guid>
      <description>&lt;p&gt;When I was writing the code for &lt;a href=&#34;https://github.com/Informatiqal/qlbuilder&#34;&gt;qlBuilder&lt;/a&gt; &lt;code&gt;reload&lt;/code&gt; command I knew I&amp;rsquo;ll have to come back to it, at some point, and refactor the part that is displaying the reload progress. The plan was to separate this functionality as a separate module or even a package so it can be used elsewhere as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Qlik Error/Messages Codes</title>
      <link>https://sstoichev.eu/post/qlik-error-messages-codes/</link>
      <pubDate>Fri, 09 Feb 2024 13:40:36 +0000</pubDate>
      <guid>https://sstoichev.eu/post/qlik-error-messages-codes/</guid>
      <description>&lt;p&gt;While working with Qlik we can encouter errors or messages that can be a bit cryptic and contain just an error/message code.&lt;/p&gt;
&lt;p&gt;Very often these codes are followed by a short description. But sometimes either the description is missing or its &amp;hellip; to short :)&lt;/p&gt;
&lt;p&gt;Finally found some free time to compile a list of the error/messages codes, their short and long description.&lt;/p&gt;
&lt;p&gt;My data source is a few years old so most likely is not complete. But still there are 300+ codes there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatiqal CLI Beta! (Cross-Post)</title>
      <link>https://sstoichev.eu/post/automatiqal-cli-beta-cross-post/</link>
      <pubDate>Wed, 14 Jun 2023 08:30:32 +0000</pubDate>
      <guid>https://sstoichev.eu/post/automatiqal-cli-beta-cross-post/</guid>
      <description>&lt;p&gt;The original announcement can be found here&lt;/p&gt;
&lt;p&gt;Automatiqal CLI is officially entering its Beta phase!&lt;/p&gt;
&lt;p&gt;You might not be aware but Automatiqal CLI allows Qlik Sense (QSEoW) deployments/administration tasks to be described in YAML/JSON files.&lt;/p&gt;
&lt;p&gt;Automatiqal CLI supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;multiple authentication methods&lt;/li&gt;
&lt;li&gt;multiple ways to define variables&lt;/li&gt;
&lt;li&gt;define onError blocks&lt;/li&gt;
&lt;li&gt;and a lot more!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please have a look at the introduction video below. More videos will be added soon!&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/ZU13H9uw1lM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;!-- https://youtu.be/?si=bVvksGnSBwMxEolC --&gt;
&lt;p&gt;Any feedback is greatly appreciated!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Web app authentication with QSEoW (web ticket &#43; session cookie)</title>
      <link>https://sstoichev.eu/post/web-app-authentication-with-qseow-web-ticket-session-cookie/</link>
      <pubDate>Wed, 05 Jan 2022 11:50:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/web-app-authentication-with-qseow-web-ticket-session-cookie/</guid>
      <description>&lt;p&gt;In one of the previous &lt;a href=&#34;__GHOST_URL__/2021/09/09/qseow-authentication-svelte/&#34;&gt;post&lt;/a&gt; we saw how to use web ticket to establish connection with Qlik Sense Engine. And probably for most cases the approach there is enough.&lt;/p&gt;
&lt;p&gt;But what if our web app have a requirement to communicate with other Qlik service(s) (in addition to the Engine)? For example, we want to list the reload tasks to which the user have access (this information is provided by &lt;a href=&#34;https://help.qlik.com/en-US/sense-developer/May2021/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Introduction.htm&#34;&gt;Qlik Repository Service REST API&lt;/a&gt;)?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Meet Informatiqal</title>
      <link>https://sstoichev.eu/post/informatiqal/</link>
      <pubDate>Tue, 02 Nov 2021 15:37:11 +0000</pubDate>
      <guid>https://sstoichev.eu/post/informatiqal/</guid>
      <description>&lt;p&gt;The initial idea was simple &amp;hellip; on paper. Spend few days just to prove that its possible. And it was doable. But to achieve it I had to build solid foundation.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to say what was the initial idea &amp;hellip; yet. But will share where it&amp;rsquo;s &amp;ldquo;home&amp;rdquo; will be and will release all the components of the &amp;ldquo;foundation&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Since there will be multiple components I&amp;rsquo;ve decided that it&amp;rsquo;s a good idea to separate them in their own space.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Export QMC tables</title>
      <link>https://sstoichev.eu/post/export-qmc-tables/</link>
      <pubDate>Fri, 08 Jan 2021 10:00:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/export-qmc-tables/</guid>
      <description>&lt;p&gt;Administrating Qlik Sense sometimes means spending a lot of the time in QMC.&lt;/p&gt;
&lt;p&gt;And sometimes I need to export some of the tables there just to keep the info somewhere else while I&amp;rsquo;m on a different screen in QMC.&lt;/p&gt;
&lt;p&gt;Finally sat down to solve this specific issue - &lt;code&gt;Chrome&lt;/code&gt;/&lt;code&gt;Edge&lt;/code&gt; extension that can export QMC tables to CSV file or copy the content to the clipboard.&lt;/p&gt;
&lt;h3 id=&#34;ui&#34;&gt;UI&lt;/h3&gt;
&lt;p&gt;The extension layout is &amp;ldquo;separated&amp;rdquo; into two areas:&lt;/p&gt;</description>
    </item>
    <item>
      <title>enigma.js - interceptors</title>
      <link>https://sstoichev.eu/post/enigma-js-interceptors/</link>
      <pubDate>Wed, 08 Jul 2020 09:00:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/enigma-js-interceptors/</guid>
      <description>&lt;p&gt;Another interesting feature of enigma.js are interceptors. Interceptors are similar to the mixins functions but they are executed on lower level - request/response level.&lt;/p&gt;
&lt;p&gt;Request interceptors are invoked right before the request is send to the Engine and response interceptors are invoked right after the response from the Engine is received and before the data is send to the calling function.&lt;/p&gt;
&lt;p&gt;You can think of the interceptors as &amp;ldquo;enigma.js middleware&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom enigma.js mixins</title>
      <link>https://sstoichev.eu/post/introducing-enigma-mixin/</link>
      <pubDate>Fri, 03 Jul 2020 09:00:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/introducing-enigma-mixin/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;__GHOST_URL__/2020/06/23/enigma-js-mixins/&#34;&gt;previous post&lt;/a&gt; we saw what are &lt;a href=&#34;https://github.com/qlik-oss/enigma.js&#34;&gt;enigma.js&lt;/a&gt;  &lt;a href=&#34;https://github.com/qlik-oss/enigma.js/blob/master/docs/api.md#mixins&#34;&gt;mixins&lt;/a&gt;. I&amp;rsquo;ve started an repo some time ago (and &lt;em&gt;npm&lt;/em&gt; package) where I&amp;rsquo;ve been adding mixins that I&amp;rsquo;ve found useful (or mixins that I&amp;rsquo;ve found boring to write all the time). And want to introduce you to this list.&lt;/p&gt;
&lt;p&gt;At the moment the repo contains only mixins that are relevant to application/document.&lt;/p&gt;
&lt;p&gt;(to distinct the mixins methods from the default enigma.js ones all mixin methods, from this package, are having prefix &lt;code&gt;m&lt;/code&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>enigma.js - mixins</title>
      <link>https://sstoichev.eu/post/enigma-js-mixins/</link>
      <pubDate>Tue, 23 Jun 2020 09:15:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/enigma-js-mixins/</guid>
      <description>&lt;p&gt;You know it already but &lt;a href=&#34;https://github.com/qlik-oss/enigma.js&#34;&gt;enigma.js&lt;/a&gt; is the JavaScript wrapper around the Qlik&amp;rsquo;s Engine API.&lt;/p&gt;
&lt;p&gt;If you are building a mashup/web app or some sort of automation that require Engine communication you&amp;rsquo;ll have to use Engine API and here enigma.js is your friend.&lt;/p&gt;
&lt;p&gt;Just to mention that JavaScript is not the only &amp;ldquo;flavor&amp;rdquo; of Enigma. You can find enigma for &lt;a href=&#34;https://github.com/qlik-oss/enigma-go&#34;&gt;&lt;em&gt;Go&lt;/em&gt;&lt;/a&gt; and &lt;a href=&#34;https://github.com/q2g/enigma.net&#34;&gt;&lt;em&gt;.NET&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!-- &lt;figure class=&#34;kg-card kg-bookmark-card&#34;&gt;
  &lt;a href=&#34;https://github.com/qlik-oss/enigma-go&#34; class=&#34;kg-bookmark-container&#34;&gt;
    &lt;div class=&#34;kg-bookmark-content&#34;&gt;
      &lt;div class=&#34;kg-bookmark-title&#34;&gt;qlik-oss/enigma-go&lt;/div&gt;
      &lt;div class=&#34;kg-bookmark-description&#34;&gt;Go library for consuming Qlik’s Associative Engine. - qlik-oss/enigma-go&lt;/div&gt;
      &lt;div class=&#34;kg-bookmark-metadata&#34;&gt;
        &lt;img src=&#34;https://github.githubassets.com/favicons/favicon.svg&#34; class=&#34;kg-bookmark-icon&#34;&gt;
        &lt;span class=&#34;kg-bookmark-author&#34;&gt;qlik-oss&lt;/span&gt;
        &lt;span class=&#34;kg-bookmark-publisher&#34;&gt;GitHub&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&#34;kg-bookmark-thumbnail&#34;&gt;
      &lt;img src=&#34;https://avatars3.githubusercontent.com/u/23365920?s=400&amp;amp;v=4&#34;&gt;
    &lt;/div&gt;
    
  &lt;/a&gt;
  
&lt;/figure&gt; --&gt;
&lt;!-- &lt;figure class=&#34;kg-card kg-bookmark-card&#34;&gt;
  &lt;a href=&#34;https://github.com/q2g/enigma.net&#34; class=&#34;kg-bookmark-container&#34;&gt;
    &lt;div class=&#34;kg-bookmark-content&#34;&gt;
      &lt;div class=&#34;kg-bookmark-title&#34;&gt;q2g/enigma.net&lt;/div&gt;
      &lt;div class=&#34;kg-bookmark-description&#34;&gt;.NET library for consuming Qlik’s Associative Engine. - q2g/enigma.net&lt;/div&gt;
      &lt;div class=&#34;kg-bookmark-metadata&#34;&gt;
        &lt;img src=&#34;https://github.githubassets.com/favicons/favicon.svg&#34; class=&#34;kg-bookmark-icon&#34;&gt;
        &lt;span class=&#34;kg-bookmark-author&#34;&gt;q2g&lt;/span&gt;
        &lt;span class=&#34;kg-bookmark-publisher&#34;&gt;GitHub&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&#34;kg-bookmark-thumbnail&#34;&gt;
      &lt;img src=&#34;https://avatars2.githubusercontent.com/u/29521584?s=400&amp;amp;v=4&#34;&gt;
    &lt;/div&gt;
    
  &lt;/a&gt;
  
&lt;/figure&gt; --&gt;
&lt;p&gt;But in this post I want to introduce you to one very cool (but not very popular) functionality that Enigma provides - &lt;strong&gt;mixins.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing qlbuilder</title>
      <link>https://sstoichev.eu/post/introducing-qlbuilder/</link>
      <pubDate>Tue, 08 Oct 2019 08:30:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/introducing-qlbuilder/</guid>
      <description>&lt;h3 id=&#34;qlbuilder&#34;&gt;qlbuilder&lt;/h3&gt;
&lt;p&gt;In general &lt;code&gt;qlbuilder&lt;/code&gt; 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 &amp;ldquo;stitched&amp;rdquo; from multiple files.&lt;/p&gt;
&lt;h3 id=&#34;why&#34;&gt;Why?&lt;/h3&gt;
&lt;p&gt;Everyone have their own preferred IDE/text editor and we can write own &lt;code&gt;Qlik Sense&lt;/code&gt; load scripts there and use &lt;code&gt;include&lt;/code&gt;/&lt;code&gt;must_include&lt;/code&gt; inside the app to &amp;ldquo;bring&amp;rdquo; the script inside the app.&lt;/p&gt;
&lt;p&gt;But it will be nice if we can write the scrips locally and upload them directly to the app as it is.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deploy Qlik extension/mashup with Qlik-CLI</title>
      <link>https://sstoichev.eu/post/deploy-extension-mashup-with-qlik-cli/</link>
      <pubDate>Thu, 18 Jul 2019 08:15:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/deploy-extension-mashup-with-qlik-cli/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Usually I&amp;rsquo;m using &lt;a href=&#34;link-here&#34;&gt;qExt&lt;/a&gt; or &lt;a href=&#34;link-here&#34;&gt;sense-go&lt;/a&gt; but in this specific case I didn&amp;rsquo;t had the chance to use either (enterprise restrictions)&lt;/p&gt;
&lt;p&gt;Luckily for me &lt;a href=&#34;https://github.com/ahaydon/Qlik-Cli&#34;&gt;Qlik-CLI&lt;/a&gt; was available. And &lt;code&gt;Qlik-CLI&lt;/code&gt; is doing a great job dealing with Qlik Repository API.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve decided to write a small &lt;code&gt;PowerShell&lt;/code&gt; script that can be used to import the extension from my local PC to Qlik.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Global Environment Values Approach (Qlik Sense)</title>
      <link>https://sstoichev.eu/post/qlik-sense-environment-values-approach/</link>
      <pubDate>Tue, 16 Jul 2019 08:49:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/qlik-sense-environment-values-approach/</guid>
      <description>&lt;p&gt;With multi-stage Qlik environment (DEV, TEST, PROD etc) the load scripts are usually including some kind of a check - &amp;ldquo;&lt;strong&gt;In which environment am I?&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Based on the result different/additional actions might be performed. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if the environment is not PROD then mask/scramble the client names&lt;/li&gt;
&lt;li&gt;use different data connection names (providers) on each environment&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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 &amp;ldquo;storage&amp;rdquo; that can be changed/updated (by the administrators)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Qlik Sense Mail Notifications</title>
      <link>https://sstoichev.eu/post/qlik-sense-tasks-notifications/</link>
      <pubDate>Sun, 24 Apr 2016 10:23:00 +0000</pubDate>
      <guid>https://sstoichev.eu/post/qlik-sense-tasks-notifications/</guid>
      <description>&lt;p&gt;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&amp;rsquo;m finding it very useful.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve found 3 ways that this can be achieved in QS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Log files scraping&lt;/li&gt;
&lt;li&gt;QRS API&lt;/li&gt;
&lt;li&gt;log4net&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ll cover the third option in details&lt;/p&gt;
&lt;h2 id=&#34;log-files&#34;&gt;Log files&lt;/h2&gt;
&lt;p&gt;Every QS service have it&amp;rsquo;s own log folder where the activity is logged. Batch file can be written that monitor the &lt;code&gt;Scheduler&lt;/code&gt; service log file and on change to scrap the content and mail the result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Qlik Sense Console (Chrome extension)</title>
      <link>https://sstoichev.eu/post/qlik/</link>
      <pubDate>Tue, 07 Jul 2015 20:52:41 +0000</pubDate>
      <guid>https://sstoichev.eu/post/qlik/</guid>
      <description>&lt;p&gt;In Qlikview if there is a need to test/debug something developers are just creating some textboxes or straight/pivot tables right next to the dashboard (or in another sheet). In Qlik Sense it&amp;rsquo;s bit more tricky because the free space is kinda limited and if the need to check is on top of already fixed dashboard then some free space need to be made which involve some re-arrangement which I&amp;rsquo;m not big fan of.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Styled listbox (Qlik Sense Extension) (Updated)</title>
      <link>https://sstoichev.eu/post/styled-listbox-qlik-sense-extension/</link>
      <pubDate>Sat, 29 Nov 2014 21:35:32 +0000</pubDate>
      <guid>https://sstoichev.eu/post/styled-listbox-qlik-sense-extension/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m missing the option to present Qlik Sense listboxes in a different ways (Not that I don&amp;rsquo;t like the default one I&amp;rsquo;m just missing it)&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;ve made an extension that can represent field values as Checkboxes, Radio buttons or Buttons.&lt;/p&gt;
&lt;p&gt;As you can see from the screenshots below few more options are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Orientation: display the list as single row or multiple rows&lt;/li&gt;
&lt;li&gt;Toggle select: if &amp;ldquo;false&amp;rdquo; the behavior of the selection will be * more like &amp;ldquo;only one selected&amp;rdquo; option in Qlikview&lt;/li&gt;
&lt;li&gt;Active style (css): style the selected value(s) with valid CSS&lt;/li&gt;
&lt;li&gt;InActive style (css): style the non selected value(s) with valid CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the source code and the zip file in the &lt;a href=&#34;https://github.com/countnazgul/Qlik-Sense-Styled-Lists-Extension&#34;&gt;Github repo&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>QMC Viewer</title>
      <link>https://sstoichev.eu/post/qmc-viewer/</link>
      <pubDate>Fri, 28 Nov 2014 04:50:07 +0000</pubDate>
      <guid>https://sstoichev.eu/post/qmc-viewer/</guid>
      <description>&lt;p&gt;If you manage multiple Qlik servers (Qlikview or Sense) and need to access the management consoles multiple times per day you usually keep a list of servers urls somewhere (at least this is what I have). In this case opening this list every time or try to remember server url might be a bit frustrating sometimes.&lt;/p&gt;
&lt;p&gt;For this reason I&amp;rsquo;ve made a little Chrome packaged app that can help a little.
The app itself is pretty simple. It is possible to add all the QMC urls and the app will display the selected server url in webview control
The app will also generate shortcuts for all main QMC categories (like Source Documents, User Documents, Licenses etc.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Develop Qlik Sene extension with Chromebook</title>
      <link>https://sstoichev.eu/post/develop-qlik-sene-extension-with-chromebook/</link>
      <pubDate>Wed, 12 Nov 2014 12:13:34 +0000</pubDate>
      <guid>https://sstoichev.eu/post/develop-qlik-sene-extension-with-chromebook/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve started playing with Qlik Sense extensions these days and pretty much I&amp;rsquo;m happy with the process in overall.&lt;/p&gt;
&lt;p&gt;You can develop extensions using Workbench (if you have Qlik Sense Desktop installed) or any text editor. But if you have Sense Server installed you need to develop directly on the server or upload your files every time a change is made.&lt;/p&gt;
&lt;p&gt;From 7-8 months I&amp;rsquo;m a proud owner of Chromebook and I&amp;rsquo;m trying to use it as many as possible. At this point I can use it as my default laptop for work.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
