How to Delete $UpdatedBy field

I have a database with existing documents. I am now required to make the documents anonymous. That is, there should be no name displayed in the Modified By of the Document Properties.

Since this are already existing documents, I cannot make use of “Anonymous Form” checkbox in the Form properties. I tried to make an agent that deletes the $UpdatedBy field but for some reason, the Modified By is still not blank.

Here is my code:

Set updatedBy = doc.GetFirstItem(“$UpdatedBy”)

updatedBy.Remove

Call doc.Save(True, False)

How should I make it correct? Any suggestions?

Thanks guys,

Jen

Subject: How to Delete $UpdatedBy field

Make the agent to update the field from all records with null value than delete it.

Subject: RE: How to Delete $UpdatedBy field

Thanks but…

I tried your suggestion (setting $UpdatedBy to Null instead of removing), but I still get the same result. I am suspecting that the $UpdatedBy field is “read only” and thus cannot be updated nor deleted.

Any other suggestions?

Subject: RE: How to Delete $UpdatedBy field

Jeramie, I tried deleting this field using both Lotus Notes and @Formula agents but not doing the same. Instead it is creating $Revisions and updating the modifications.

My question…? can we delete this field as this is system generated.

–Phani

Subject: How to Delete $UpdatedBy field

There might be a possibility using the Notes C API, but otherwise no formula, LotusScript or Java agent would be able to change or delete that field. It would go against the security model of Lotus Domino, so it’s actually a good thing that you’re not able to change it.What you can try is have some agent copy the contents of the documents into new documents and delete the old ones. That way only the agent signer would be in the updated by fields, which is as good as anonymous.

Subject: RE: How to Delete $UpdatedBy field

And adding to it… I would also suggest to mark the form as anonymous and then create new documents with the values from existing documents and then remove the old ones.

–Phani

Subject: RE: How to Delete $UpdatedBy field

Thanks for the replies guys. I will try your suggestion.

Subject: How to Delete $UpdatedBy field

I’ve already did it.What i did is… Just hving a view of the documents to remove the $UpdatedBy field. And take the collection.

Within the for loop

for index = 1 to viewCollectionvble.Count

Set doc = db.GetDocumentByID(strNoteId)

If doc.HasItem("$UpdatedBy") Then

Call doc.RemoveItem("$UpdatedBy") 

Call doc.Save(True,True)

End If

next

Keep the notes document id of each and every document in strNoteID string variable.

Hope this will be useful.

  • Guna

Subject: RE: How to Delete $UpdatedBy field

I was surprised to read this note, suggesting that it was possible to alter the $UpdatedBy field using LotusScript. I immediately wrote an agent to try this suggested method and… it doesn’t work. Phew. My answer that it’s not possible to alter the $UpdatedBy field in formula, LotusScript or Java is still correct.

Subject: RE: How to Delete $UpdatedBy field

At least in R7 and almost certainly earlier You CAN “remove” $UpdatedBy on design elements. I guess it doesn’t work on regular docs, and for all the good reasons pointed out in this thread. Note that $Updated isn’t actually removed, but rather all the older values are cleaned out and replaced by the current user name (or presumably server name if run by the server).

This ability is actually quite useful for “cleaning up” a database design that originated from outside your current organization (e.g. OpenNTF, Sandbox, etc.). I can’t seem to find an example at the moment to prove this, but I’m pretty sure there are situations when simply signing the database will not completely suppress those annoying prompts to cross-certify “/SomeOtherOrg” which typically appear when first opening a database created by somebody at “SomeOtherOrg”. Running this sort of cleanup code on the design elements I believe should further reduce the chances of seeing those prompts. Ytria’s ScanEZ has a “Cleanup” function specifically for this purpose.

For those without ScanEZ, I’ve added a design cleanup script to a special view showing design elements (I hacked $FormulaClass, but that’s another story) in my SuperNTF database (OpenNTF.org - The Open Source Community for Collaboration Solutions), which is based on code in this thread. The one area I’ll probably try to extend the cleanup to is profile documents, which I think may be one of the areas that signing misses, and that might be another reason for the persistence of cross-certify prompts. btw - the code is going to be posted soon as SuperNTF v0.9.5 beta, so if you’re reading this today, its not posted quite yet.

Subject: As Rocky would say…

Just export the documents (or whole db) to a DXL file, edit with a text editor and re-import. Of course if you have many documents, this could be quite time consuming…

Subject: DXL Worked Great to Zap $UpdatedBy

I liked this idea, so I created a simple program using the NotesDXLExporter and NotesDXLImporter help code to dump out the database design and import it back into a new database. I intended to do as suggested and edit the DXL between operations, but along the way I discovered the .OmitItemNames property for the exporter and that worked even better:

exporter.OmitItemNames = “updatedby”

When the DXL was re-imprted the $UpdatedBy field was recreated, of course, but my name was the only entry.