Skip to main content Skip to complementary content


The cols parameter of the create method defines the visualization's hypercube . The number of columns you need to specify depends on the visualization. If you specify too few columns, you will get an Incomplete visualization error, just as if you created it in the client.

The order of the columns are in some cases not important. For a basic bar chart with one dimension and one measure, the columns can be specified in any order. However, for a table it does matter in which order the columns are specified. The order you specify in the cols parameter is the order that will be shown in the table.

There are three different ways of specifying the columns:

The above three methods can be combined in the same create statement. You can use a simple string syntax for one column, a more advanced object for another and a predefined master measure for the third.

String syntax

If a string starts with =, it will be treated as a measure, otherwise it is treated as a dimension.

app.visualization.create( 'barchart',
	["Case Owner Group", "=Avg([Case Duration Time])"]
).then( function ( visual ) { 'QV01' );
} );
Information noteUsing the string syntax is quite easy but at the same time there are some limitations. If you want to set labels or limit the dataset to only the top five values, you should use the object syntax instead.

Object syntax

Use the object syntax if you want to set more options for your columns. If you. for example, create a pivot table with labels, you should use qFieldLabels for dimensions and qLabel for measures.

app.visualization.create( 'pivot-table',
      "Year",  //dimension
      {"qDef": {"qFieldDefs": ["Case Owner Group"], "qFieldLabels": ["Group"]}},           //dimension with label
      {"qDef": {"qDef": "=Avg([Case Duration Time])", "qLabel": "Avg Case Duration Time"}},//measure with label
      {"qDef": {"qDef": "Sum( [Open Cases] )", "qLabel": "Open Cases"}}                    //measure with label
   {"title": "Case Owner Group Case stats per year"}

You can limit the data set to only show the top five values using qOtherTotalSpec.

app.visualization.create( 'barchart',
    "qDef": {
      "qFieldDefs": ["Case Owner Group"],
      "qFieldLabels": ["Group"]
    "qOtherTotalSpec": {
      "qOtherMode": "OTHER_COUNTED",
      "qOtherCounted": "5"
  "=Avg([Case Duration Time])"
{"title": "Barchart with others"}

The full list of available options is documented in the Engine API documentation.

Using predefined dimensions and measures

You can use dimensions and measures that are predefined in the app. This is mostly relevant if the user should be able to select dimensions and measures from lists. You must know the Dimension ID or the Measure ID, which is defined in the qLibraryID property. You must also state if it is a measure or a dimension in the qType property.

app.visualization.create( 'gauge',

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!