4 Replies Latest reply: Dec 18, 2017 3:04 AM by Ilias Mansouri RSS

    How to ask for a list of dimensions and measures in Qlik Engine API?

    Ilias Mansouri

      Hi all,

       

       

      Using the Sales Discovery example, how can I construct a json which will ask for a list of dimensions and measures?

      So using the Qlik Engine API, I would like something like:

       

      {
           "handle": 1, #Handle of Sales Discovery app
           "method": "GetListofMeasures_and_Dims",
           "params": {}
      }
      

       

       

      Thanks in advance

        • Re: How to ask for a list of dimensions and measures in Qlik Engine API?
          Jesper Snihs

          Hi Illias,

          Is it a requirement that you need to use the Qlik Engine API?

          Otherwise you can set the initial properties to fetch the measures and dimensions in the application and you will then find them in the layout property.

           

          Example code:

          define( [
                  'jquery',
                  'text!./template.html',
                  'qlik'
              ],
              function ( $, template, qlik ) {
                  'use strict';
          
                  return {
                      initialProperties: { 
                          qMeasureListDef:{
                              qType: 'measure'
                          },
                          qDimensionListDef:{
                              qType: 'dimension'
                          }
                      },
                      support: {
                          snapshot: false,
                          export: false,
                          exportData: false
                      },
                      template: template,
                      paint: function ($element, layout) {
                          console.log("layout.qDimensionList", layout.qDimensionList);
                          console.log("layout.qMeasureList", layout.qMeasureList);
                          return qlik.Promise.resolve();
                      },
                      controller: ['$scope', function($scope){
                      }]
                  };
              });
          
          

           

           

          Regards

          Jesper

            • Re: How to ask for a list of dimensions and measures in Qlik Engine API?
              Ilias Mansouri

              Hi Jesper,

               

              FIrst of all, thanks for your kind feedback. Unfortunately due to the set of constraints, using the Qlik Engine API is the only solution.

               

              KInd regards,

              Ilias

                • Re: How to ask for a list of dimensions and measures in Qlik Engine API?
                  Erik Wetterberg

                  Hi

                  Have you tried the Engine API explorer? It helps you construct Engine API Explorer messages. You find it at http://localhost:4848/dev-hub/engine-api-explorer for Qlik Sense Desktop.    

                   

                  If you connect to engine and open an app you will find a list of macros, among them 'List Measures' and 'List Dimensions'. The 'List Measures' Macros will give you something like this:

                  {
                     "method": "CreateSessionObject",
                     "handle": 1,
                     "params": [
                     {
                        "qInfo": {
                           "qType": "MeasureList"
                        },
                        "qMeasureListDef": {
                           "qType": "measure",
                           "qData": {
                              "title": "/title",
                              "tags": "/tags"
                           }
                        }
                     }
                     ],
                     "outKey": -1,
                     "id": 3
                  }
                  

                  To actually get the data you would need to call first CreateSessionsObject and then GetLayout using the handle you get in return from the first command. Also I'm afraid the macro is not very good, since you will get all measures but really not any data about them, like definition etc. If you modify the qData part and do something like this:

                  "qData": {
                     "title": "/title",
                     "tags": "/tags",
                     "measure": "/qMeasure"
                  }
                  

                  It will be more useful.

                   

                  Then you can add a qDimensionList section to the same CreateSessionObject command and you will get Dimensions to in the same message.

                   

                  Hope this helps

                   

                  Erik Wetterberg

                   

                  Please marks as correct and/or helpful if you find the answer helps you.