Qlik Community

Qlik Sense Integration, Extensions, & APIs

Discussion board where members can learn more about Integration, Extensions and API’s for Qlik Sense.


Measure creation via javascript


The case that I'm trying, is to create a measure on the fly and then get the value and add it to my html.

I'm trying to create a measure via javascript, using qsocks.

I used Engine api explorer to create the json message.


  "handle": 1,

  "method": "CreateMeasure",

  "params": {

  "qProp": {

  "qInfo": {

  "qId": "SumQuantityId",

  "qType": "Measure"


  "qMeasure": {

  "qLabel": "SumQuantity",

  "qDef": "=sum(Quantity)",

  "qGrouping": 0,

  "qExpressions": [



  "qActiveExpression": 0


  "qMetaDef": {}



  "id": 6,

  "jsonrpc": "2.0"


This seems to work fine using the explorer.

When i use qsocks, I get "error: {"code":9,"parameter":"Missing Type","message":"Empty parameters"}".


qapp.createMeasure(obj).then(function(reply) { 

  console.log("reply: " + JSON.stringify(reply)); 

}, function(error) {  

  console.log("error: " + JSON.stringify(error));



Of course, I'm connected to my app, and the "obj" is the json message provided above.

Can someone help me?

Thanks in advance,


3 Replies

Re: Measure creation via javascript

If you just want to evaluate the expression, then you might want to look into this engine API method: Evaluate method ‒ Qlik Sense

I'm not sure if that method is available in through the API you are using though.

Honored Contributor

Re: Measure creation via javascript

If you don't really want to create a measure, but only get the expression evaluated, you could use the Capability APIs and the createGenericObject method. For your expression that would be something like this:

app.createGenericObject( {

     sumQuantity: { qValueExpression: "=sum(Quantity)" }

}, function ( reply ) {

//handle the reply

//the value will be in reply.sumQuantity

//and this function will be called whenever the value changes



Erik Wetterberg

Re: Measure creation via javascript

Thanks a lot both of you for your quick replies.

app.evaluate("=sum(Quantity)").then(function ( reply ) {

     // do something

}, function(error) {

     // do something


This works fine, but it sums all "quantity", instead of selected.

Community Browser