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:
- Why is valueSources of dataView.matrix empty?
- 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"}}}}]