1

I am currently trying to figure out a way to publish objects (charts/tables/variables/dimensions/etc) to the Qlik Hub from an application. I've been using Javascript, Enigma.js, and have been hosting the application on the same machine as the Qlik server as a mashup extension.

I've noticed there is a method called createObject() in the Engima.js API for use upon Generic Objects in Qlik, but I have working, but only creates objects locally (in application memory, not persistent, not in the hub). If I try to call the publish() method on that object, I receive a 'Bad Request' error.

This is the repo for Engima.js: https://github.com/qlik-oss/enigma.js. And the API schema: https://github.com/qlik-oss/enigma.js/blob/master/schemas/12.1477.0.json

Pretty stuck, any help would be greatly appreciated.

Thanks,

Matt

I've tried using the createObject() method:

"CreateObject": {
                "In": [{ "Name": "qProp","DefaultValue": {"qInfo": {"qId": "", "qType": ""}, "qExtendsId": "", "qMetaDef": {}, "qStateName": ""} }],
                "Out": [{ "Name": "qInfo" }]
            }

in tandem with publish() which is for Generic Objects in Qlik:

"Publish": {
                "In": [],
                "Out": []
            }

But receive a Bad Request error.

Matt K
  • 11
  • 2

1 Answers1

0

There may be a misunderstanding here (assuming I'm not misreading). You can't publish a single object (chart, sheet, bookmark, etc.) to the Hub the same way you'd be able to publish an app. That's because Qlik objects are specific to individual apps. A chart can't be disambiguated away from an app -- even when you copy and paste a chart from one app to another one, it's really just creating a new deep copy of that chart.

With that in mind, your remaining options depend on the end goal and the version of Qlik Sense that you are using. If you're using Qlik SaaS, then you're able to "monitor in hub" your charts, like so:

enter image description here

.

enter image description here

However, if you're using Qlik Sense on Windows, you don't have a way of doing that (as of this writing). What you could do is create a mashup to display charts from different apps while still being able to enforce security rules and have full control over the aesthetics (See more about mashups here). Another solution you could consider (with more effort and complexity) is utilizing Dynamic Views, allowing you to essentially embed charts from multiple separate apps into a single "parent" app (more here).

SmoothBrane
  • 721
  • 4
  • 5