I have developed an similar app for my internal use and how I modeled is:
- There is an Entity named FinancialYear
- And the entity that depends on the Year data is associated with the FinancialYear
- This way, we can simply solve this by having the refresh on the Financial year (or year) drop down
- Loading the associated Sub entities through association
With your current setup of no entity for Year information and loading datagrid with onchange and refresh, you will have the infinite refresh loop.
See if the advice from Ruud suits the business need to you must think about remodeling your entities
It doesn't help the entity names are wiped out, but I'll give it a try:
1 The snippet's entity does not need to be persistent or committed. Make this entity non persistable. Make sure the year attribute has read / write access to the user accessing the page
2 At the on change event of the year attribute, call a microflow that includes 1 activity: change object [snippets entity] with refresh in client. Make sure the user that accesses the page has access to this microflow
3 datagrid will be refreshed as soon as the year is changed, as all widgets within refreshed dataview will refresh automatically
Another option is to set refresh interval on the datagrid widget