Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi All -
Apologize for asking what may be a known to you all, but does Qlik provide API(s) for directly accessing the in-memory data store?
Thanks in advance!
Brian
Hi Peter/Rob,
That's an amazing piece of information you have provided there.
Now, regarding the points you have mentioned above, there's a need for us to push data obtained on the fly into an extension from a web service into a table in the data model. So basically a dynamic data update from JavaScript. Also, would the data updated by dynamic update persist for eternity or is it only for that user during that session?
Any pointers in this would be very helpful. Or any other workaround that you can suggest also would work.
Thanks,
KR
KR, QlikView or Qlik Sense?
-Rob
Hi Rob, this is for QlikView.
Thanks,
KR
QlikView has the Dynamic Data Update facility. Your extension could fetch new data and insert it using the DynamicUpdateCommand API call. I have not thought through how/if an extension can call the API. If there is not an extension mechanism to invoke the API directly, perhaps the extension can simulate a button click that runs the macro. Sorry for the incomplete solution, but hopefully will get you pointed in a direction. Let us know if you figure something out. rbecher is my goto guy on extensions, perhaps he can suggest an approach.
-Rob
Hi Rob!
Thanks for the points you mentioned and guiding in the right direction. I am not actually finding the way to invoke the API from the extension as this is in JavaScript and in AJAX/WebView mode, wherein, the button triggering macro or simulating a macro call is not working.
I understand from above and from various other community posts and DOC-XXXs that there would be QlikView JavaScript API to manipulate the data model,(like the one that you also mentioned 'DynamicUpdateCommand API') but am not able to find the right invocations/parameters to be used. Have gone through the JavaScript API doc by QlikView and help files, etc., but no luck.
If there's something in this space that one can help would be really great. Also, this blog post says there is no such API provided for JavaScript based extensions as of now. Not sure if it is still not available or only the documentation is not updated.
However, post success of this small poc, I shall be sharing the way how this is done in a blog post that am working on and hoping it would be a useful resource.
Hi rbecher rwunderlich stephen-x.redmond, swr, hic, dgudkov, any inputs further shall be really helpful.
Thanks,
KR
Hi knightriderX,
the only way I know (also mentioned in the blog post from dgudkov you've linked) is the variable change action (plus update macro) you could trigger from an extension. But I wonder what use case you want to accomplish. You should give us more details.
Extensions run in a user session only so data ingestion would be available only there, dependent from user interaction. QlikView isn't probably the right tool for this requirement. I would ask why you would need the data in the QlikView data model itself. Sometimes a data blending is a good way for integration (and easy to do): having data rendered from another system via Ajax call in an extension. So the user has this external data in a UI component besides the QlikView loaded data. You could also use the external data to make a selection in QlikView.
- Ralf
Hi Ralf,
Thanks for the quick reply. Due to confidentiality reason, am not able to delve into the actual requirement details.
I understand about the point you mentioned:
Extensions run in a user session only so data ingestion would be available only there, dependent from user interaction.
However, on the standpoint of the requirement, it is sufficient to have data obtained from the web-service be getting updated into the data model only for the user session and only for the user based on the user privileges(the web-service takes care of this).
On your point :
Sometimes a data blending is a good way for integration (and easy to do): having data rendered from another system via Ajax call in an extension.
Yeah, i completely agree on this as it might be like a near-real-time analysis.
I have a working prototype of this wherein one can select YHOO or APPL or both in a field loaded in QlikView and the extension invokes the web-service for the values selected and fetches Stock values accordingly. Now this is available inside the extension and can be displayed.
The challenge faced now is that, from within the extension the table in the data model should be updated with the new stock values against those codes. I see no API or documentation that could let me do this using JavaScript.
And I have a feeling that I have not clearly understood this point of yours:
Sometimes a data blending is a good way for integration (and easy to do): having data rendered from another system via Ajax call in an extension. So the user has this external data in a UI component besides the QlikView loaded data. You could also use the external data to make a selection in QlikView.
Please do let know if you have further suggestions or can guide me in a better direction.
Thanks,
KR
A "Dynamic Update" can be invoked by calling the click method of a button object. You will have to define a button and associate an action with it that is a "Dynamic Update". The Dynamic Update can use as a parameter a variable which contains the dynamic update commands: delete, insert, update, transaction etc ...
Variables can be set from the JavaScript API and buttons can be clicked programatically also.
{void} Click()
Note! Only available for Buttons.
Trigger a click on the button.
qvButton.Click();