Subject: RE: Populate a Readers Field
Believe me I’ve had this fight with them several times and have basically> been told that I’m wrong, no one should have access to do anything with
the address book 
Would you like me to talk with them?
Maybe you need to address this as part of a larger initiative of process improvement. “I want to make sure we’re adding value with every step of a process,” you could say. “I want to improve productivity by making sure (y)our employees aren’t wasting time doing pointless tasks, and that they aren’t blocked in their tasks by unnecessary wait time on their requests.” It’s hard to argue against that. “Are these group membership change requests ever denied? All the administrator does is make sure the request comes from the right person? Oh, we can automate that process.”
If they’re paranoid about giving anyone author access to the address book, there is an adminp request to add users to a group, or you could do it as follows. The authorized owners of a group would be listed as owners in the group document in the address book – just as they are in a sensible setup – except this doesn’t grant them access because they aren’t authors. Then you establish a separate group request database with depositor access for everyone. Anyone can compose a group access change request for a group of which they are the listed owner (verified by code on the form that looks up the group). The request is electronically signed to insure the identity of the requester. An agent in the request database processes all new requests within minutes, verifies that the requester is a listed owner of the group and the signature is valid, and makes the requested change in the membership or ownership. This is, of course, no more secure than just giving people appropriate access and roles in the address book, but it might feel to management more like it’s under their control. You could add a manual approval step if people are nervous, but also add a checkbox allowing the approver to instruct that requests for updates to that particular group should be handled automatically in future. 95% of those boxes will be checked the first time an a request comes through for the particular group.
Alternatively, if you don’t have too many different “office symbols,” you could use ACL roles instead. Just define a role name for each “office symbol” and assign the appropriate users to it. Your formula could come up with a list of roles, e.g. translating 4PAS to “[4PAS]”:“[4PA]”:“[4P]”. You can define, I believe, up to 75 roles.
If you must do it the way you’ve designed, then at least do only one lookup; that’ll work if all the indexes are defined, or if you can arrange that any indexes that are not defined go at the end of the key list. You could do this:
key := @Unique(OffSym : @Left(OffSym; 3) : @Left(OffSym; 2));
@DbLookup(…; key; …; [failsilent])