2 Replies Latest reply: Oct 12, 2017 4:32 AM by Erik Wetterberg RSS

    Get variable value

    Bill Markham

      Hi,

       

      Does anybody know a good, non deprecated, way in an extension to get the value of a Qlik Sense variable into a Javascript variable  ?

        • Re: Get variable value
          Jesper Snihs

          Do you mean something like this?

           

          define( [
                  "qlik", 
                  "text!./template.html"
              ],
              function ( qlik, template ) {
                  var app = qlik.currApp(this);
          
                  return {
                      template: template,
                      support: {
                          snapshot: true,
                          export: true,
                          exportData: false
                      },
                      paint: function () {
                          var qix = this.backendApi.model.enigmaModel.session;
                          var numericValue;
                          qix.app.getVariableByName('nameOfVariable').then(function(variable){
                              variable.getLayout().then(function(variableLayout) {
                                  numericValue = variableLayout.qNum;
                              });
                          });
                          return qlik.Promise.resolve();
                      },
                      controller: ['$scope', function ( $scope ) {
                      }]
                  };
          
              } );
          
          • Re: Get variable value
            Erik Wetterberg

            Hi,

            If your extension should be snapshottable, you should make sure the variable value is in the layout, something like this (haven't actually tested this code, so there might be syntax errors):

            initialProperties:{
              myVar:{
                    qStringExpression: '="vBill"'
              }
            }
            

            Or you could use qValueExpression.

             

            You could also use the api's, but then you would have problems with snapshots: it might not work at all, or if it does does you would get the value when the snapshot is shown, not when it was taken.

             

            Hope this helps

             

            Erik Wetterberg