1 of 1 people found this helpful
I believe the use of $$ in access calculations has changed from v11 to v12, but it is to be avoided (although I wish it worked.) As I recall it was a bit flaky but could not be trusted to work in all cases.
Add a global field in place of the $$ and set it immediately upon startup. _gHome_Country = OwnerField should be fast enough.
Edit: Normal finds will be slower, probably similar to your multi-priv set solution.
Thanks Scott - I am looking into your approach. To set the gloabl upon startup, I assume the global has to be located in another table as I would not have access to any records in my main table if the global _gHome_Country="" as it would be on startup.
Any other ideas/approaches out there?
I have a similar situation. Something I found helpful. I was using FIND to restrict the visibility of records that the user has no access for (helps avoid confusing people who see the <no access> records). I used to do this by simply doing a FIND with * in one of the fields (such as an ID field). This would effectively hide any <no access records>. But this did not work when using a global as part of the privilege set. Interestingly what DID work was using an OMIT statement instead. So rather than FIND * in a field, I would have OMIT with an = in the ID field. This would effectively omit any records with <no access> giving the same result, except this one of course worked consistently.