The app is a pricing tool to evaluate the costs associated with a project. In the app there are around 10/12 screens.
The majority of the page interact with three sharepoint lists doing reporting but there are around 20 sharepoint lists ranging from job roles, cost rates to continents connected to the app.
For the three lists where most of the interaction and querying happens, a filter is applied on each of the lists. This is to get the relevant resource, expense and subcontractor costs. From this reporting is done to determine contributions from difference sources of costs, breakdown of resources and so forth.
This reporting happens across six or so of these screens at this moment.
An example is attached below.
Currently to have a single source of lookup for the sharepoint list, a gallery which is then queried by different elements on the page such as the table above. Is this a good design practice? I have a few performance concerns regarding this approach.
Any suggestions on improving design and performance will greatly be appreciated. As having 6 or 7 screens with the galleries that have access to the same data. Thats around 5/6 redundent copies on the app.
I also have a question regarding where you can use galleries as a data source (Gallery.AllItems as an Items property for another Gallery for instance) whilst on a separate screen. When you make a change to a sharepoint list, the data source refreshes. If the gallery is on another page, will it refresh consistently?
I have run a test where I update a sharepoint list on my current screen via a button, and have a data table reference a gallery connected to the updated sharepoint list. The Gallery being referenced is on a separate screen. It seems to work but I'm not sure how reliable it may be.
Hi @Jerry1567 ,
Sorry but could you please provide more details about your app?
In Context section, you said that there are 3 lists as the data source for reporting. Did you mean that there are 3 SharePoint lists display data in 3 galleries control?
Then in Some Questions section, you mentioned that multiple galleries have the same data source.
When you made changes to the data source of a gallery control inside the PowerApps, all galleries in this app with this data source would refresh and update with the new data.
Hi @v-monli-msft ,
Thanks for your response. Sorry for the confusion, hopefully this can clarify it a bit more.
I'm currently using three galleries with the Items Property being set to something similar to Filter(AllocatedEmployee, TaskID=someID). From these three galleries, I use a combination of them as a source of calculation, such as Sum(GalleryAllocatedEmployees.AllItems, num_hours * hourly_rate). The gallery themselves which become the source of the data for the rest of the app is on a hidden screen. The idea was to reduce the amount of queries required to Sharepoint for performance considerations but also if you do Sum(Filter()), even if the inner Filter() should be delegateable by wrapping it in a sum, it no longer is delegateable for some reason.
I think I have two questions regarding this scenario.
1. Is this a valid way or good way of approaching this. Use Galleries with filter for the items property on the Sharepoint list. This then becomes the basis for any calculations displayed in text labels and other galleries on the page, so there is only one call per Sharepoint list and this can be used as if it itself is a data source with Filter(Gallery.AllItems,) if further filtering and calculations are required?
2. Does have a gallery control on a separate screen that is connected the Sharepoint list affect the data consistency. I.e. if the data source is refreshed, even if the user is not on that specific screen, the gallery control will be up to date? Or do I need to have a gallery with the data source on screen but maybe in a hidden datacard for it to work 100% reliably?