Qlik Sense data model of the year

Qlik-Sense-Logo1Long overdue, but during last few months I have finally started to play around with the various APIs available on the Qlik Sense platform.

It has been said before, but it is worth repeating: those APIs are really, really powerful. They are one of the main reasons why I think Qlik have some good years ahead of them.

Anyway Рa recent experiment involved serialising apps to JSON text files, so they can be stored in Git in an effective way. Works really well and is surprisingly simple to achieve thanks to the groundwork done by members of the Qlik developer community.
So far so good, but the JSON blob describing a Sense app is extremely large and hard to navigate.

But wait… why not bring it back into Sense using Qlik’s REST connector? It very nicely converts JSON to a Sense data model, exactly what’s needed here.

The result is… Interesting. Maybe it even has artistic qualities to it.. There for sure are lots of things going on behind the scenes in a Sense app!


6 Replies to “Qlik Sense data model of the year”

    1. Yeah, that Branch project is really neat, but I have also struggled getting it working. From what I found that solution does not support virtual proxies, nor SAML authentication. Haven’t looked at it on QS3 though. Should be possible to tweak it ta handle virtual proxies etc too, though.

      Re de-serializing to qvf, no I haven’t looked much at that.
      I solved the need at hand by getting the load scripts out of all apps, and storing them to disk in QVDs. It’s then possible to create a script viewer app, in which you can search for all occurrences of some text you are interested in. Very powerful when it comes to knowing in what apps a particular data connection is being used, for example.

  1. thx for your fast response.

    Qlik Sense is storing the script into the Binary. Therefore I have to backup a >10GB binary, just to do versioning of the script. That’s somehow ridiculous, not quite sure why they have designed it this way – one would expect things like the script+chart definitions in the Repository database.

    Something like the -prj-Folder in QlikView is very necessary in Qlik Sense. I’m not quite sure if I want to rely on serialize+deserializing on a branch-project. But as you said, it looks very promising. However if something fails (or is missing), we are in real trouble. So I hope Qlik provides something in the near future in the product..

  2. @roland

    Well, using Butler (http://branch.qlik.com/#!/project/57c358c0f7f5aa0db1a982dc) it’s real easy to extract the load scripts. It’s just a single call to Butler’s REST API, and you get the load script back as part of a JSON that in addition to the load script contains all/most of the app metadata.
    Schedule this to run nightly, and you’ll have a daily snapshot of all the load scripts of all your apps. Works a treat ūüôā

    1. Hi!
      I agree. A -prj folder is not the best fit for Qlik Sense.
      But the APIs are in quite some cases too lowlevel. It should be scope of Qlik R&D to provide API calls similar to:


      As an app can have so many different elements (script, objects, stories, variables, bookmarks) I don’t want to rely on third party tools that will miss one part or the other.

  3. @roland

    Re having PRJ folders in Sense.
    That might seem a good idea at first, but it would be a major step backwards, IMHO. The real strength of Sense is the fact that it’s a platform, with really good APIs into the inner workings of that platform.
    Relying on folders on disk on a particular server would make versioning easier at glance, true, but also not take advantage of the platformization that makes Sense so powerful..

Leave a Reply

Your email address will not be published.