You're going to need to give us a lot more detail and context to help with that question.
A good example of when I would like to change the rows and columns of an embedded visualization without going into the edit mode is when I am working with a pivot table and a large number of dimensions/measures. It really would be best if I could create a secondary application that could interact with the dragging and dropping of rows and columns and also give some more context to the fields that are being considered for on-grid, show a list of related fields, and to do so without the changing of gears involved with going into edit mode.
Is there a way to change the rows and columns without going into edit mode via the use of an API?
There is currently no way to programmatically change what is on columns/rows with any of our APIs. I am curious as to why you would want to do this with a secondary application when end users could just change what is on columns/rows themselves with web authoring. If that is not an option then you may be able to achieve something similar with parameters that show and hide values based on selections. Example: https://www.airweb.org/eAIR/techtips/Pages/Tableau-Dimensions.aspx.
Keisha thank you for your response but don't you think that this solution is terribly impractical for developers (and also users) when working with databases that have hundreds of dimensions? Even with web authoring, the users would still have to reference some secondary manual I would have to create in order to define what all of these dimensions are, right?
Also, please correct me if I am wrong but parameters are only going to work against measures, aren't they? This would mean we would have to take our thousands of dimensions members, inside of our hundreds of dimensions, and create a parameter in each one. If I am correct then I am surprised this is recommended as a solution. Please let me know if I am seeing this incorrectly because I would love to make this work.
Ryan, I'm struggling to understand your use case here - and it's probably ME not you. What you describe ("change the rows and columns of an embedded visualization") is kind of the definition of Edit mode.
What you're describing is a visualization or dashboard creation activity in Tableau. It's not something that we would normally conceive of as a "configuration" task, which is how I interpret what you're describing. I think most Tableau users would find it odd to want to give a consumer of a dashboard or viz the ability arbitrarily add or remove dimensions from that dashboard or viz.
There are ways (manual, but possibly automatable) to add meaning (metadata) to every field (dimension or measure) in a Tableau data source, so that "secondary manual" you reference can be handled within Tableau. You could also create a data dictionary that could be included in the workbook if that is a better solution.
But what is the core use case here? To give your users all the dimensions in the data set and let them build whatever they need interactively? Something else? Let them build the functional equivalent of an Excel pivot table but in Tableau?
If you can be more specific about what the data domain is, why users would need this capability, and so on, we might be able to get you a better answer.
Thank you for your response.
It would be much more efficient for some of our less capable users if they had something along the lines of what I have been been describing in this thread:
A control which would allow them to search, give deep context on their selections, and interact with other parts of our application. All without having to reference a secondary manual or open up edit mode and completely change gears from where they are at.
Thank you for your suggestions, we will have to implement them if we decide to move forward with Tableau.
As for the parameter idea, you would not need to create a parameter for every dimension, this article (Use Parameters to Make Views More Interactive - Tableau) goes into more details on what I was suggesting.
I do agree with Michael though, what you are describing is exactly what web authoring is for which is why there is no built-in way to do this outside of that. As Michael mentioned, you can add context to fields as part of the data source so editors/authors can get context (Edit Default Settings for Fields - Tableau ) when they hover over a field. There are ways to do this more programmatically so you wouldn't have to do it manually for all those dimensions, but I would also question if your users actually need all of those hundreds of dimensions.
If you are looking for a way to simply let your users ask their own questions of their data without using the full web authoring mode perhaps Ask Data could address your use case. It lets users just type in their questions and build views for them and can leverage the context you've added to the data source fields.
Also, you mentioned "interact with other parts of our application", are you embedding Tableau? That would give us a stronger sense of your use case.