Forum Discussion

absmiths's avatar
absmiths
Regular Visitor
8 years ago
Solved

What determines the column order of a table data view mapping?

In my capabilities.json, I have data roles defined like this:

 

"dataRoles": [
	{"displayName": "Measured Depth", "name": "measuredDepth", "kind": "Grouping"},
	{"displayName": "Is Planned", "name": "isPlanned", "kind": "Grouping"},
	{"displayName": "Is Actual", "name": "isActual", "kind": "Grouping"},
	{"displayName": "Depth Above", "name": "depthAbove", "kind": "Grouping"},
	{"displayName": "Planned TVD", "name": "plannedTrueVerticalDepth", "kind": "Grouping"},
	{"displayName": "Depth Below", "name": "depthBelow", "kind": "Grouping"},
	{"displayName": "Actual TVD", "name": "actualTrueVerticalDepth", "kind": "Grouping"},
	{"displayName": "Dog Leg Severity", "name": "dogLegSeverity", "kind": "Grouping"}
]

And my data view mapping looks like this:

"dataViewMappings": [{
	"table": {"rows": { "select": [
		{"for": {"in": "measuredDepth"}},
		{"for": {"in": "isPlanned"}},
		{"for": {"in": "isActual"}},
		{"for": {"in": "depthAbove"}},
		{"for": {"in": "plannedTrueVerticalDepth"}},
		{"for": {"in": "depthBelow"}},
		{"for": {"in": "actualTrueVerticalDepth"}},
		{"for": {"in": "dogLegSeverity"}}
	]}}
}]

And yet, when I look at my row data in the javascript debugger, the columns do not come in that order (abbreviated):

{
	"0": {"roles": {"isActual": true}},
	"1": {"roles": {"isPlanned": true}},
	"2": {"roles": {"depthAbove": true}},
	"3": {"roles": {"plannedTrueVerticalDepth": true}},
	"4": {"roles": {"depthBelow": true}},
	"5": {"roles": {"actualTrueVerticalDepth": true}},
	"6": {"roles": {"dogLegSeverity": true}},
	"7": {"roles": {"measuredDepth": true}}
}

Is this normal, or did I set something up wrong?  Do I need to scan the columns and dynamically locate my data points on each refresh?  I sort of thought the data view mapping would handle that.

  • Columns order depend on how you fill data-fields of your custom visual.

    Custom visual must use roles property to detemine what column is.

     

    Ignat Vilesov,

    Software Engineer

     

    Microsoft Power BI Custom Visuals

    [email protected]

8 Replies

  • v-viig's avatar
    v-viig
    Icon for Community Champion rankCommunity Champion

    Columns order depend on how you fill data-fields of your custom visual.

    Custom visual must use roles property to detemine what column is.

     

    Ignat Vilesov,

    Software Engineer

     

    Microsoft Power BI Custom Visuals

    [email protected]

    • absmiths's avatar
      absmiths
      Regular Visitor

      Okay - not the answer I hoped for - but at least confirms my suspicion.  Perhaps this would be a good feature request since parsing column data and matching by name to the configured values will be a common activity (I would suspect).

      • v-viig's avatar
        v-viig
        Icon for Community Champion rankCommunity Champion

        We'll consider this idea but it's pretty easy to implement by enumerating columns and checking role name.

         

        Ignat Vilesov,

        Software Engineer

         

        Microsoft Power BI Custom Visuals

        [email protected]

    • Anonymous's avatar
      Anonymous
      Not applicable

      v-viig Can you give an example of how to use the 'roles' property to determine column? 

      • dm-p's avatar
        dm-p
        Icon for Super User rankSuper User

        Hi Anonymous,

        We've recently discussed this here, and this helped out the person making the post. See if this works for you and we can discuss further as necessary.

        Good luck!

        Daniel