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

What are exactly Structs objects for?

Hi,

I am currently evaluating Qlik Sense as a BI tool to implement a number of analyses in my company.

The basic requirement is that we would like to have both "pure" BI visualizations (say, QlikSense apps) as well as web applications that visualize relevant data for the top management. The second is needed because we have top level business users that are extremely demanding in terms of user interface customization.

My current understanding is that:

1) the Extension APIs can be used to build customizable extensions of Qlik Sense objects, regarding graphical properties but not data navigation logic;

2) the Mashup APIs can be used to embed Qlik Sense objects (possibly extended) in a web application- but again, interaction with data is ruled by the Qlik Sense object containing them;

3) the Qlik Engine APIs can be used to retrieve and manipulate data without having to use Qlik Sense objects (e.g., using a DataRecord object and/or other Structs objects).


Is #3 correct or am I getting it wrong? If I am getting it wrong, what are Structs objects for?


I personally would go for #1 and #2 but it is likely that we need to build a totally web-based custom dashboard. So I would need to understand whether it is possible to build a common (set of) data model(s) with Qlik and;

- use it in different Qlik Sense apps

- use it in web apps that integrate Qlik Sense objects

- use it in pure web apps that simply "import" the data model and access data without mediation by Qlik Sense objects.


I hope I stated my question clearly enough.

Comments and suggestions are welcome.


Thanks in advance for your help!


Alessandra

1 Solution

Accepted Solutions
rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

I think you have some misunderstandings of #1 and #2. Extensions can do data navigation. Mashups can request data from Qlik as HyperCubes and do what they will with it. A piece of code, living in a web page, can use multiple APIs. It can be a bit confusing to conflate the "thing" (Mashup) with the API (also called "Mashup"). I like to think of those APIs as functional and environment groupings. But you can mix them up. I recently did an Amazon Echo listbox Extension that uses the Mashup API calls to do selections. Qlik Sense voice control with Amazon Echo - YouTube

So looping back around to your original question. Yes, you can build a single QVF and use it as a data source for a web page. That page can embed Sense objects if it wants. It can also read data and visualize or process it any way it sees fit. And the page/app can mix both techniques.

-Rob

http://masterssummit.com

http://robwunderlich.com

View solution in original post

5 Replies
Gysbert_Wassenaar

struct is a value type that is used to encapsulate small groups of related data.

- use it in different Qlik Sense apps:    

Yes


- use it in web apps that integrate Qlik Sense objects:    

Yes


- use it in pure web apps that simply "import" the data model and access data without mediation by Qlik Sense objects.:     

I don't think so. Afaik you always need some Qlik Sense object to interact with the data in a Qix database. The data can only be accessed through the Qlik Engine. See the prerequisites:


Prerequisites

When working with web browsers

The following is necessary:

  • The Qlik Sense engine
  • A web browser that supports WebSocket and JSON format

When working without web browsers

The following is necessary:

  • The Qlik Sense engine
  • A WebSocket library
  • A JSON library

talk is cheap, supply exceeds demand
Not applicable
Author

Answering to your 3rd question:

- use it in pure web apps that simply "import" the data model and access data without mediation by Qlik Sense objects.

Yes, you can do that too. You can use the Qlik Engine API to "communicate" with the Qlik data and represent it with any other visualization library (i.e. d3js) in a custom web.

Not applicable
Author

Hi Gysbert,

thanks for answering.


Do you mean that I need a Qlik Sense object to mediate access to data in the Qix database from a custom web app?


I see that Structs are JSON objects so I guess they represent data inside a Qlik Sense object. For example a DataTable carries data of a Qlik Sense table formatted as a JSON object, right?

If this is the case it may still be possible to access data from Qlik Sense tables that provide the needed chunks of the data model...


So I have another question 🙂 Once I get data as JSON object from a Qlik Sense table, can I use and display them as I like using my custom web app? In other words do data come as they are in the table with no further restriction?

For example, may I implement a customized drill down or filtering strategy on data carried by the Struct? Of course in case of drill down I assume I have defined the hierarchy in the Qix database.


Thanks!


Not applicable
Author

Hi Borja,

thanks for your answer.

Have you tried this already? Any example/experience? I'm trying to figure out how the whole thing works (see above).

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

I think you have some misunderstandings of #1 and #2. Extensions can do data navigation. Mashups can request data from Qlik as HyperCubes and do what they will with it. A piece of code, living in a web page, can use multiple APIs. It can be a bit confusing to conflate the "thing" (Mashup) with the API (also called "Mashup"). I like to think of those APIs as functional and environment groupings. But you can mix them up. I recently did an Amazon Echo listbox Extension that uses the Mashup API calls to do selections. Qlik Sense voice control with Amazon Echo - YouTube

So looping back around to your original question. Yes, you can build a single QVF and use it as a data source for a web page. That page can embed Sense objects if it wants. It can also read data and visualize or process it any way it sees fit. And the page/app can mix both techniques.

-Rob

http://masterssummit.com

http://robwunderlich.com