Qlik Sense certified Business Analyst

Yesterday I did the Qlik Sense Business analyst certification exam. Even though I’ve worked with the product since the development started and as a contractor since 2016 I have never done it before.

Certifications are good: they force you to make sure you cover more of the product. If you’ve worked with a product for a while, you tend to know parts of the product very well but might have missed some stuff completely. The certification forces you to fill in the gaps (or at least some of them..) and learn those features you never used in your projects. Perhaps you pick up something that comes handy in your next project. Personally I learned a lot on the Data Manager and quite a few visualizations I have never used.

The exam situation is pretty special. When I have taken certification exams previously (some time ago..) I have done it at testing centers, but this time I did it from home, probably the only possibility in the current Coron situation, and certainly the only one I would do. But then I had to clear my desk completely (never happened before), stay at my desk for the full exam (two hours) and keep my eyes on the screen, all very strange for me, who normally gets up and walk around a lot.

The exam is good: pretty difficult questions that really tests your knowledge. Taking it without having worked with the product, just from reading books and other material would be very hard, almost impossible.

It is available only in English. A tips when preparing, if you are not native english speaking, is to make sure you run Qlik Sense in english, to get the terminology right. You can do that by running Qlik Sense in the browser and adding ‘/language/en’ to the URL.

And I did make it, with a score of 76% (you need 58%). Feels good!

Sometimes when you are working with the Qlik Sense APIs you need access to information that is not connected to the Qlik Sense document you are working with, but rather to the QIX Engine running.

You find the apis for this in the global object in the Capabilities APIs, or in the Global class in the Engine API. While the Capabilities APIs only include very few methods, the full list of calls in the Engine API is much longer.

Finding the Global object

While there is a method in the Capabilities API to get the global object, in most cases you should not use it. In fact if you are building an extension you never should. Instead you should use the global property on the app.

That is because the getGlobal() method will open a new web socket to the engine, while app.global property will use the web socket used for the app. There is not reason to open another web socket to the server when you already have one, and in an extension there always is one.

The only situation getGlobal() should be used is when you do not have an open web socket, like in a mashup before the app is opened. And in that case you might be better off with a REST call.