Sharing Account related data without showing ALL records
Imagine having an Account associated with Owner A. That Account has a bunch of Sales Orders also owned by Owner A. Now, that Account changes ownership to Owner B, and some new Sales Orders are now also created and they are now owned by Owner B.
Well, when Owner B looks at the Account, he can only see Sales Orders he created, he cannot see the Sales Orders created by Owner A. So then, we apply Data Sharing rule on Sales Orders, so that Owner B can see records associated with Owner A.
Well ... the issue is that now if Owner B accesses the Sales Order module list view, he can see ALL of Owner A's Sales Orders, and NOT for just the Accounts Owner B owns. So this is a major issue we're trying to solve.
This is a simplified example, effectively the issue is that we now have to show ALL of our Sales Orders to ALL of our Users, because otherwise there is no way for them to see previous Sales Orders placed by other Users. Sales Orders is just one module, but also with Activities (calls, tasks, etc). Imagine you'd like to share Activities related to an Account currently owned by Owner B, but he has no idea what other Activities have occurred in the past by other Owners, and of course if we simply use Data Sharing then if they go to Activities they will now see everyone elses Activities, no matter if the related Account is theirs or isn't.
This is a basic feature of any CRM, the idea that if you own an Account, you want to see data associated with that Account that isn't necessarily your data but historical data created by others, BUT at the same time you don't need to open up every single record in a particular module to everyone in order to do that.
I am sure others have struggled here and I'm wondering if they found a solution, or a workaround, or anything that could help us?