Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

API for in-memory access?

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

17 Replies
Gysbert_Wassenaar

Not for Qlikview afaik. There is an API for the Qlik Sense Engine that allows you to calculate with and retrieve data from the in-memory data store of Qlik Sense apps.


talk is cheap, supply exceeds demand
petter
Partner - Champion III
Partner - Champion III

You can certainly gain access to the in-memory data of a running QlikView application both for an application you are running in single-user or on a server shared by many.

First there is the application's own internal Module/Macro that can be written in either VBScript or JScript. It use the QlikView Object Model to gain access to any part of the QlikView enviroment and data.

The QlikView object model expose a rich - but not very fast - API. This can be leveraged not only from the inside as mentioned first but also from the outside by any scripting or programming language that supports Windows Automation. So everything from a simple VBscript, JScript running from a .vbs/.js text-file external to the application and Microsoft Office (through VBA) to .NET languages or Python can connect to a .QVW (single-user) or to a server via the QVP-protocol. Any of these programming languages can control and automate QlikView in the way a user would do interactively and hide or show QlikView while it does so. The control is more extensive than what a user can gain via the user-interface.

Doing massive manipulation of data with Windows Automation without resorting to reloads is rather slow but apart from that you can really gain full control of the QlikView-application and integrate it with other applications that way.

Via the JavaScript API you can also gain access and integrate with QlikView server-applications in a number of ways through HTTP. It is not only limited to writing object extensions and document extensions.

And there is something called Dynamic Update and it can be used in several ways to change/update in-memory data. It is not well documented and it has some serious limitations - but as long as you stick to some sensible rules and thread very carefully it can be useful. The documentation is very slim. You can leverage it even in a regular QlikView applications by using Buttons/Text Boxes/Actions and doing INSERT, UPDATE and DELETE against the in-memory data-model. This can be employed from any Macro Module too (VBScript/JScript) and the external Windows Automation. Qlik themselves does not promote this and it might disappear in future version of QlikView. It is not supported in Qlik Sense.

There is an OCX-version of the Windows Automation too - which is mostly or maybe only used by OEM-partners.

Hope this is not too confusing - but if you have a more specific need I could certainly elaborate a little bit more on a specific approach...

HTH

- Petter

petter
Partner - Champion III
Partner - Champion III

There is a lot of information to be found here on the community - for instance here:

QlikView Version 11 SDK

Along with the proper installation of "Documentation and Tutorial" which is separately and freely downloadable for anyone you will get a QlikView Application that is a comprehensive documentation of the Windows Automation and OCX-API. It is called APIGuide.QVW (AFAIK last updated this January).

Not applicable
Author

Hi Petter –

Thanks for the responses. Unfortunately, we require direct API access because OCX, as you mentioned in your note, will create a performance issue that we cannot absorb in the architecture we are putting together.

Thanks,

Brian

petter
Partner - Champion III
Partner - Champion III

Then you probably should go for an in-memory external DB-solution that you can connect to QlikView via Direct Discovery. There are several in-memory closed-source and open-source solutions to pick amongst.

One of the newest partners to Qlik that connect quite well via Direct Discovery is JethroData. This leverage Hadoop and creates a solution that can be used in close integration with QlikView and Qlik Sense.

petter
Partner - Champion III
Partner - Champion III

Look here: Qlik Sense‌ and JethroData demo-site

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

A clarification. For QlikView, you can access the fieldvalues via API but you cannot access data tables row by row. The workaround is to create a chart or tablebox that contains the rows and fields you want. The API can read rows of a sheet object.

-Rob

Not applicable
Author

Hi Rob,

Does QlikSense differ from QlikView in this regard? Is it possible to access data tables directly in the Qix database via the Qlik Engine API?

Thanks,

alessandra

P.S. Sorry that this thread is about QlikView not Qlik Sense but I am exploring access to data in both.

See my questionWhat are exactly Structs objects for?

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

You can create hypercubes -- dimensions & measures -- on the fly in Sense and then access that data. I don't know if direct table access is provided, but you can simulate the same with a hypercube.

-Rob