October 29, 200817 yr Newbies Hope someone has an answer for this. We recently created a privilege set that uses global variables in the calculation of a privilege set (example: if LocationID = $$YourLocation). We preload a set of global variables at login with user shortname, users location Id, etc., so we can use them to grant access to layouts and tables. This all seems to work fine in the privilege set to control Access and Privileges, until we go to try to find a record in find mode. As soon as we try to find a record (in a record set we can actually see based on privileges) it tells us it can not find any matching records. When we cancel the find request, we actually do have access to the records. It just won't "find" them in "find" mode. Here is an example: I load $$YourLocation with "985" at login. My privilege set (which has a calculation that will only show me records that have a value in LocationID that is equal to $$YourLocation) shows me all five records that have a value of "985" in the LocationID field (just as you would expect). When I enter find mode and do a search for "985" using the LocationID field, FMP pops a dialog saying "No records found matching this criteria". When you cancel out of the find mode, all of your records with a value of "985" are (of course) still there. So the records are there, viewable, editable, just can't use find mode to find them or a subset of them. What gives? Edited October 29, 200817 yr by Guest
October 29, 200817 yr Any chance you're doing the Find in a different file? Global variables are file-specific.
October 29, 200817 yr How, exactly, are you attempting to find records? I believe if you simply enter the general find criteria, the access privileges will omit records that shouldn't be accessed.
October 29, 200817 yr Author Newbies any chance you're doing the Find in a different file? Global variables are file-specific. I had considered that possibility, but the data loaded into the global vars is from the same file as the records being viewed and the same file used in the find request. They are different tables, but the same file. How, exactly, are you attempting to find records? I believe if you simply enter the general find criteria, the access privileges will omit records that shouldn't be accessed. I have tried entering find mode from browse mode and doing a simple find request, and I have tried scripting a find request. The scripted find request will only work if you allow the script to run with Full Access, which I do not want to do. Hope this helps explain the issue. Thanks again for any help. Edited October 29, 200817 yr by Guest
August 3, 200916 yr I'm getting this exact same issue. As soon as you reference a global var in the priv set, find mode will never find any records. In browse mode, the formula works fine - it blocks access to the correct records
August 3, 200916 yr The scripted find request will only work if you allow the script to run with Full Access, which I do not want to do. There is the option to re-login temporarily in the scripting so the status only is full during the progress of the script in question. I would rethink every use of global entities as such, since it seems to reveal a weekness in the structure. --sd
Create an account or sign in to comment