Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
ysapiyev
Responsive Resident
Responsive Resident

How to alter capabilities.json to have 4 inputs for values?

hi,

 

I am creating custom visual, and I'm new in power bi. I need to be able to enter 1 category and 4 values in capabilities.json in categorical data mapping. how it can be done?

1 ACCEPTED SOLUTION
v-viig
Community Champion
Community Champion

 

{
    "dataRoles": [
        {
            "displayName": "Category",
            "name": "Category",
            "kind": "Grouping"
        },
        {
            "displayName": "Values1",
            "name": "Values1",
            "kind": "Measure"
        },
        {
            "displayName": "Values2",
            "name": "Values2",
            "kind": "Measure"
        },
        {
            "displayName": "Values3",
            "name": "Values3",
            "kind": "Measure"
        },
        {
            "displayName": "Values4",
            "name": "Values4",
            "kind": "Measure"
        }
    ],
    "dataViewMappings": [
        {
            "categorical": {
                "categories": {
                    "for": {
                        "in": "Category"
                    }
                },
                "values": {
                    "select": [
                        {
                            "for": {
                                "in": "Values1"
                            }
                        },
                        {
                            "for": {
                                "in": "Values2"
                            }
                        },
                        {
                            "for": {
                                "in": "Values3"
                            }
                        },
                        {
                            "for": {
                                "in": "Values4"
                            }
                        }
                    ]
                }
            }
        }
    ]
}

 

Ignat Vilesov,

Software Engineer

 

Microsoft Power BI Custom Visuals

pbicvsupport@microsoft.com

 

View solution in original post

8 REPLIES 8
Anonymous
Not applicable

why don't you simply use Table instead of categorical ? otherwise I think what you are looking for is serie.

v-viig
Community Champion
Community Champion

 

{
    "dataRoles": [
        {
            "displayName": "Category",
            "name": "Category",
            "kind": "Grouping"
        },
        {
            "displayName": "Values1",
            "name": "Values1",
            "kind": "Measure"
        },
        {
            "displayName": "Values2",
            "name": "Values2",
            "kind": "Measure"
        },
        {
            "displayName": "Values3",
            "name": "Values3",
            "kind": "Measure"
        },
        {
            "displayName": "Values4",
            "name": "Values4",
            "kind": "Measure"
        }
    ],
    "dataViewMappings": [
        {
            "categorical": {
                "categories": {
                    "for": {
                        "in": "Category"
                    }
                },
                "values": {
                    "select": [
                        {
                            "for": {
                                "in": "Values1"
                            }
                        },
                        {
                            "for": {
                                "in": "Values2"
                            }
                        },
                        {
                            "for": {
                                "in": "Values3"
                            }
                        },
                        {
                            "for": {
                                "in": "Values4"
                            }
                        }
                    ]
                }
            }
        }
    ]
}

 

Ignat Vilesov,

Software Engineer

 

Microsoft Power BI Custom Visuals

pbicvsupport@microsoft.com

 

@v-viig

 

I am beginning to design custom visuals and am interested by this data scheme.

 

Once the capabilities.json is set, how would you extract each Value 1, 2, 3, 4 into the visual.ts file?

I understand that the dataViews method is able to fetch user data but I can't figure out the correct syntax to pick each specific node.

 

Sorry for this newbie question. I am also just starting with TS.

 

Thank you in advance for your guidance.

 

Best regards

 

Michael

ysapiyev
Responsive Resident
Responsive Resident

@Maikeru

 

let dv = options.dataViews;
let view = dv[0].categorical;
let values1 = view.values[0];
let values2 = view.values[1];
let values3 = view.values[2];
let values4 = view.values[3];

This should help.

 

Regards,

Yerkhan

 

Thank you very much, @v-viig!

 

Really appreciate your time helping me out.

 

I tried to implement the piece of code you sent me, but I am not able to retrieve the data to the viz.

 

As you can see below, I tried to substitute the fetched data with some static one (value_array) and in the latter case, the visual displays properly.

 

Is there something obvious that I missed?

 

 

 

function visualTransform(options: VisualUpdateOptions, host: IVisualHost) {

        let dataInfo = {
            dataPoints: [],
            dataMax: 0
        };

        let dataPoints = [];
        let dataMax: number;

        let dv = options.dataViews;
        let view = dv[0].categorical;
        let values1 = view.values[0];
        let values2 = view.values[1];
        let values3 = view.values[2];
        let values4 = view.values[3];

        //let value_array = [values1,values2,values3,values4];
        let value_array = [100,10,8,120];

        for (let i = 0; i < 4; i++) {
            dataPoints.push({
                category: "test" + i,
                value: view.values[i]
                //value: value_array[i]
            });
        }
        dataMax = 130;

        return {
            dataPoints: dataPoints,
            dataMax: dataMax
        };
    }

 

Best regards

 

Michael

 

I figured out what was wrong.
I needed to add an extra « values » property to retrieve the node value.

view.values[i].values

 

Thank you very much, @v-viig!

 

Really appreciate your time helping me out.

 

I tried to implement the piece of code you sent me, but I am not able to retrieve the data to the viz.

 

As you can see below, I tried to substitute the fetched data with some static one (value_array) and in the latter case, the visual displays properly.

 

Is there something obvious that I missed?

 

 

 

function visualTransform(options: VisualUpdateOptions, host: IVisualHost) {

        let dataInfo = {
            dataPoints: [],
            dataMax: 0
        };

        let dataPoints = [];
        let dataMax: number;

        let dv = options.dataViews;
        let view = dv[0].categorical;
        let values1 = view.values[0];
        let values2 = view.values[1];
        let values3 = view.values[2];
        let values4 = view.values[3];

        //let value_array = [values1,values2,values3,values4,values5];
        let value_array = [100,10,8,120];

        for (let i = 0; i < 4; i++) {
            dataPoints.push({
                category: "test" + i,
                value: view.values[i]
                //value: value_array[i]
            });
        }
        dataMax = 130;

        return {
            dataPoints: dataPoints,
            dataMax: dataMax
        };
    }

 

Best regards

 

Michael

 

Anonymous
Not applicable

@Maikeru

let valColumnName = metadata.columns.filter(c => c.roles["value1"])[0].displayName;
let valColumnIndex = metadata.columns.filter(c => c.roles["value1"])[0].index;

 

I hope this helps you !

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.