# Perspective Design Theory for Large Datasets

**URL:** <https://forum.inductiveautomation.com/t/perspective-design-theory-for-large-datasets/99295>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [December 2, 2024, 10:10am UTC](https://forum.inductiveautomation.com/t/perspective-design-theory-for-large-datasets/99295 "2024-12-02T10:10:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Craig\_Simpson](https://avatars.discourse-cdn.com/v4/letter/c/e56c9b/32.png) [@Craig\_Simpson](https://forum.inductiveautomation.com/u/Craig_Simpson)\
**Post date:** [December 2, 2024, 10:10am UTC](https://forum.inductiveautomation.com/t/perspective-design-theory-for-large-datasets/99295/1 "2024-12-02T10:10:51Z")

</div>

I am looking for some opinions on the best way forwards with an interactive perspective page I am building, with regard to handling large datasets returned from a post call to an API.

Site-wide users will enter a production order number and the post call returns all the production order information in JSON format. The data will be displayed in tables, showing operation status etc. Pretty standard so far.  
The returned JSON from the ERP system can have thousands of key:value pairs, with various nesting levels.  
I have previously built a Vision client that does similar with the same API and using recursive functions I can push the data to dataset tags for my further use. (Removing invalid values, making headers human readable, etc using dataset query expression tags.) All good.

This is where I now need some advice on my first interactive perspective page..  
With multiple users accessing the perspective page a set of dataset tags that sit on the gateway will be continually overwritten and on refresh users would potentially see data that is not correct to their own query.  
AI suggests abandoning tags and pushing the datasets (pydatasets) directly to the tables, which sounds like a good theory? Client tags are Vision based but then session properties may be an option?  
I do not want to build something and then discover I should have done it differently so I am reaching out for guidance.  
Any opinions are welcome.  
Thanks.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [December 2, 2024, 10:49am UTC](https://forum.inductiveautomation.com/t/perspective-design-theory-for-large-datasets/99295/2 "2024-12-02T10:49:45Z")

</div>

Session properties are a good option - but bear in mind that they will be common to all the browser windows / tabs (for a given browser) on a particular client PC. This only becomes a problem if the user wants two views differing by date range or machine ID, for example. It could probably be "worked around" in code.

I recall a recent discussion on the forum about ways to handle this problem but can't find it right now. I'll have a look later.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [December 2, 2024, 1:01pm UTC](https://forum.inductiveautomation.com/t/perspective-design-theory-for-large-datasets/99295/3 "2024-12-02T13:01:44Z")

</div>

I think this is the the thread I was thinking of.

> [@Session properties shared by all pages from the same client](https://forum.inductiveautomation.com/t/session-properties-shared-by-all-pages-from-the-same-client/45703):
>
> session properties data are shared by multiple pages launched on the same client. (we can compare in the vision “world” : the tag client for multiple desktop from the same vision client are shared) Is there a way to have some session data not shared by all pages of the same session ? My idea was to use session.custom.myprop[pageId] But I have to bind session custom prop data. Can we make some kind of indirect binding with session custom prop ?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 2, 2024, 3:02pm UTC](https://forum.inductiveautomation.com/t/perspective-design-theory-for-large-datasets/99295/4 "2024-12-02T15:02:24Z")

</div>

Also note that anything assigned to Perspective properties (anywhere) will lose their object identity during Perspective normalization. If you don't want that to happen, you probably will want to use my `pageVarMap()` functions from my Integration Toolkit.

Also, be sure to mark any Perspective properties with intermediate values **private**.
