I understand where you’re coming from but the fact remains that this has worked fine until this version.
The ‘mass loading’ method I devised in the linked thread three years ago allows me to bulk load a huge hierarchy in ‘one hit’ which is much faster and has provided a big performance boost. This is now broken so I’m forced to either revert and never upgrade again, which isn’t really practical, or revert to the slower ‘standard’ method.
I kind of understand what you’re saying about RemoteFetchEnabled but there are scenarios, including mine, where you want to populate the tables by ‘other means’ yet still have deltas sent to the server via the regular method.
The reason I need to disable RemoteFetchEnabled on the detail tabless in the first place is because, if I don’t, the framework tries to retrieve data as I navigate the parent tables, despite the data already having been populated.
What I really need is a ‘proper’ way of flagging that data has already been retrieved/populated. Once I’ve done my bulk fetching of all data throughout the hierarchy, if I could somehow indicate this to the framework then I could leave RemoteFetchEnabled without it trying to re-fetch data continually.
The framework sort of does this anyway. In a ‘normal’ scenario, if you have a three level master-detail-subdetail hierarchy then, as you navigate the detail table, the relevant subdetail records are retrieved on-the-fly but only once for each detail record. Once you’ve navigated all detail records, the subdetail table contains all records and doesn’t retrieve them again as you move round the detail table.
That’s what I’m trying to achieve, to somehow tell the framework that all the subdetail records are there already so it doesn’t need to fetch them the first time I navigate to a detail record.
The performance benefits of my method are far from trivial. The hierarchy in question represents parts in a stock/pricing system and there are cases where I have a single top-level parent with thousands of detail records and subdetail records beneath them. With standard loading, if I need to iterate all of these records then it will generate thousands of round-trips to the server to retrieve the subdetail for each detail as I go. Being able to retrieve everything in a single trip saves masses of time.