Jump to content
Claris Engage 2025 - March 25-26 Austin Texas ×

Using Global Variables in Privilege Sets does not work with find mode


This topic is 5592 days old. Please don't post here. Open a new topic instead.

Recommended Posts

  • Newbies
Posted (edited)

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 by Guest
Posted

Any chance you're doing the Find in a different file? Global variables are file-specific.

  • Newbies
Posted (edited)

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 by Guest
  • 9 months later...
Posted

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

Posted

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

This topic is 5592 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.