Forum Discussion

soeren's avatar
soeren
Advocate I
9 years ago

PowerBI custom visual dataView matrix valueSource is empty

I am currently trying to port a PowerBI visual from API Version 1.0.0 to Version 1.1.0.

I am creating a Visual with a matrix as a dataView. To this point my Visual works. But when I try to check if a have a valueSource for my matrix, I get returned by calling console.error(dataView.matrix.valueSources.length = 0), that: dataView.matrix.valueSources.length = 0.

In a converter Method, I'm trying to iterate over my valueSources and for each valueSource I try call addTreeChildrenValues() and then push my columns.

 

public update(options: powerbi.extensibility.visual.VisualUpdateOptions) {
var dataView = this.dataView = options.dataViews[0];
var viewModel: FormattedColumnsViewModel = FormattedColumnsVisual.converter(dataView);
...
}


public static converter(dataView: DataView): FormattedColumnsViewModel {
for (var i = 0; i < dataView.matrix.valueSources.length; i++) {
FormattedColumnsVisual.addTreeChildrenValues(values, dataView.matrix.rows.root.children, i); columns.push({ headerCaption: dataView.matrix.valueSources[i].displayName, values: values, formatOption: formatOption, showNumbers: showNumbers, width: width, leftMargin: leftMargin, usableWidth: usableWidth, fullRange: fullRange, zeroPosition: zeroPosition, formatter: formatter }); }

My question is:

  1. Why is valueSources of dataView.matrix empty?
  2. Does it have something to do with my capabilities.json file?

Capabalities.json (part of it):

  {
  "dataRoles": [
    {
      "name": "Category",
      "kind": 0,
      "displayName": "Category"

    },
    {
      "name": "Column",
      "kind": 1,
      "displayName": "Value" 
    }
  ],
  "dataViewMappings": [
    {
      "matrix": {
        "rows": {
          "select": [ { "for": { "in": "Category" } } ],
          "dataReductionAlgorithm": { "top": { } }
        },
        "values": {
          "for": {"in": "Column"} 
        }
      }
    }
  ]