Here's a general-purpose Author and Reader field troubleshooting guide. This document explains how these fields work and the causes of common perplexities.

There's a helpful tool that analyzes and explains your access to read or edit the document, but you should still read the information below so you'll understand what the tool does and what can go wrong.

To begin, look at one of the documents that has the readers fields in it. If the documents are hidden even from you, the database manager, then you will have to access the database from the server console, or use full access administration, which lets you see all documents regardless of Reader access. You may also have to temporarily disable the local security property ("Use consistent access control") in the database ACL.

TIP: To prevent the database manager/administrator ever losing read access to documents, put a Computed when Composed Authors field (not a Readers field) on every form, with a formula such as "[Admin]". This will allow all members of [Admin] role to read the document, without preventing others from reading it as a Readers field would.

From a view, open the Document Properties box. Here's an example of what it should look like:


Highlight each of your reader fields in turn and look for differences from this ideal image. Note that:

- Field flags must say READ-ACCESS NAMES. If not, read in Domino Designer help about IsReaders property of NotesItem.
- If there are multiple values, they should appear as separate quoted strings on separate lines. In this case there are two values, "CN=Rex Rightway/O=Pings" and "[Admin]". If instead the value were listed as "CN=Rex Rightway/O=Pings, [Admin]" (or any other character instead of comma) then the problem is that you are storing multiple values as a string instead of a proper multivalue. If this is the problem:
- Make sure the multivalue checkbox is checked in the field properties.
- If you assign the field with LotusScript, assign it from an array with one value in each element, as opposed to a string with some character in it as the delimiter. Example: Dim readerNames(0 to 1) As String
readerNames(0) = "CN=Rex Rightway/O=Pings"
readerNames(1) = "[Admin]"
doc.Readers = readerNames
' If field did not previously exist, tell Notes
' it's a Readers field.
doc.GetFirstItem("Readers").IsReaders = True

- If assigning the field from macro language, say FIELD Readers := "CN=Rex Rightway/O=Pings" : "[Admin]" as opposed to "CN=Rex Rightway/O=Pings;[Admin]" (for instance).
- If you use a username, you must use the full canonical username. If you store "Rex Rightway/Pings" the readers field will not work in all situations. You need that CN= garbage.
- Make sure there are not excess characters in the name, e.g. leading or trailing or multiple consecutive spaces. In other words, always use @Trim.
- If the field is not visible in the document properties from the view, but only when the document is open, you've probably made the field Computed for Display, or created the document using an agent that neglected to set the field as shown above, so that it's not being stored in the document when it's saved. To take effect, a readers field must actually be saved in the document, before the user tries to access it. Notes looks at the document, not the form, when deciding whether to grant access.
- Should you have a problem with users being able to read the document whom you think should not have access:
- Check whether the READ-ACCESS flag is set on your Readers fields as shown above.
- If all Readers fields are blank, anyone can read the document.
- An Authors field also allows read access (see below).

Author fields work like Readers fields for all the above tests, except that:

- the Field flags should read READ/WRITE-ACCESS NAMES instead of READ-ACCESS NAMES, and
- a blank Authors field does not enable everyone to edit the document. "*" does, though.

3 Responses to "The Complete Reader and Author Field Troubleshooter"

  1. gravatar Anonymous Says:

    Thanks for the tips on using Lotus Script to assign multiple values to a readers field. I was just running into that very issue, and your post answered my question quickly!

  2. gravatar Unknown Says:

    Hi,

    I have a query regarding the Authors field containing multivalues.

    I have a requirement as stated below :

    I need to read the Author fild values from Configuration document and stamp it in my notesDoc.

    Now the pproblem is Author field from the configuration document may or may not contain multiple names in it.

    But I want my code to handle this possiblity if Autor field in Configuration doc contains multiple names then this multivalue should be stamped to NotesDocument.

    Can you please suggest the workaround?

    Thanks...

  3. gravatar aoi soba Says:

    Hello, is there a way to force my document reader to save canonical format?
    my code below doesnt work :(
    @If(Scope = "Private"; From :@Name([CANONICALIZE];Reviewers); "");

Leave a Reply

preload preload preload