Would it be less resource intensive on the server to populate parameters into session variables and read them multiple times in visual overview instead of calling the parameter more than once?
What affect if any would this have on the client?
When making complex and big Visio's, it is worth looking into this option. If you have a rather small Visio or only need to reference the parameter only once, it does not make sense. The advantage here is that you don't need to make a call to the server, but keep the variables in memory on each/your client. I highly advise limiting the scope of session variables when you're working on a Visio that will be used multiple times (i.e. assigned to Element or Services) to at least CardVariable.
Some use cases where it is useful (not limited):
- Typically you need to fetch multiple parameters from a table on a certain row. Having the index in a session variable is convenient.
- If you need to format the session variable by means of a Regex, you don't want to make your Visio visually overly complex, so then it might be worth saving the result of the Regex in a session variable.
- When you are showing a popup page (e.g. Maps, Trending graph) multiple times (e.g. different configs, different parameters), you should consider making one hidden 'Visio' page and reusing it by using Session Variables that will be set once you click on the icon/button that opens the popup.
- Show/Hide content based on interactions within the Visual Overview is typically done by Session Variables, although this might also work with Parameters. The scope of Session Variables can be limited though, so it's multi-session, while using parameters will make the change for all users.
- It's always the best idea to make your Visio as generic as possible by using placeholders like [this elementid] or [this view], but if you need to link to objects beyond the scope of your Visual Overview card (e.g. you need information from a manager element), then you might want to save the ID or name in a session variable and use this in all relevant places. By doing this, you don't need to search all shapes whenever the ID or name changes. At that time, you only need to change the session variable initialization.
I'm sure there are other (specific) use cases that might also be worth considering using session variables, but I hope this already gives you some tips and tricks.