5 Replies Latest reply: May 12, 2015 2:51 PM by Rob Wunderlich RSS

    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

        • Re: What are exactly Structs objects for?
          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
            • Re: What are exactly Structs objects for?

              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!


            • Re: What are exactly Structs objects for?
              Borja Rodriguez

              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.

              • Re: What are exactly Structs objects for?
                Rob Wunderlich

                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