Skip to main content
Skip table of contents

How to refactor dataTable to Converter

The documentation of the PocketQuery Chart API describes an option dataTable:

dataTable: array-of-arrays containing the dataset to be drawn. This overrides the data taken from the query results. Example: [['Month', 'Value'],['JAN-17', 52.1],['FEB-17', 51.2],['MAR-17', 51.7]]. If you want to create a custom dataTable using the query results, you can use the PocketQuery.query* functions described in the general JS API documentation. This can

This option has been deprecated. Historically, this option comes from a time when Converters weren’t present in PocketQuery. Any use of dataTable can be refactored to using a Converter.

The basic structure of a Converter looks as follows:

CODE
function convert(json) {
  const parsed = JSON.parse(json);
  
  return parsed;
}

The parsed variable in the snippet will contain the same data as what you might have retrieved using the queryArray JavaScript helper method (see JavaScript API available in Templates). This means that you can move any code you used for creating the dataTable array into the converter and use the result of JSON.parse(json) the same way as the result of what queryArray returned before.

Finally, you will have to return the prepared result for the chart in the Converter. The format of this result is slightly different: rather than an array-of-arrays as with the dataTable option, it needs to be an array-of-objects where the headers of the dataTable are properties of each object. Using the dataTable example from the documentation:

CODE
[['Month', 'Value'],['JAN-17', 52.1],['FEB-17', 51.2],['MAR-17', 51.7]]

This would become the following array-of-objects returned from the Converter:

CODE
[
  { Month: 'JAN-17', Value: 52.1 },
  { Month: 'FEB-17', Value: 51.2 },
  { Month: 'MAR-17', Value: 51.7 }
]

In this example, each of the header columns (Month and Value) is a property key in each row. This structure resembles a default PocketQuery result that is already translated for the PocketQuery.chart API by default, so no dataTable is required anymore.

If you struggle refactoring your dataTable chart option to a Converter, please reach out to us.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.