Home > Domino Tips > Developer > Remove orphaned Lotus Notes documents on Domino databases with a 'virtual delete'
Domino Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

LOTUSSCRIPT

Remove orphaned Lotus Notes documents on Domino databases with a 'virtual delete'


Michael List
09.12.2007
Rating: -1.88- (out of 5)


Lotus Notes and Domino tips, tutorials and how-to articles
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Related information from SearchDomino.com:
Tip: Delete documents over the Web using Ajax and JavaScript

Tutorial: 30 LotusScript tips

LotusScript FAQs

LotusScript Reference Center

In this tip, I explain a "virtual delete" solution I developed in LotusScript that removes orphaned and extraneous Lotus Notes documents from my Domino databases.

I am currently developing and maintaining multiple Lotus Notes Domino databases. I created this workaround to help me delete Lotus Notes documents in those databases that were created by mistake, bounced back to the creator, etc.
VIEW MEMBER FEEDACK TO THIS TIP

I originally wanted to assign delete privileges to address this issue, but that can only be done through the access control list (ACL) at the Lotus Notes database level -- and I don't think that is a good idea.

To implement my "virtual delete" solution, I created three hidden fields on all Lotus Notes documents during the development. They are as follows:

  • IsDeleted (default value = NO)
  • DeletedBy (default value = NULL)
  • DeletedDate (default value = NULL)

Although the first field is all you really need, I like to know who deleted the Lotus Notes document and when they did it.

Additionally, I created a user action button that populates the above fields using LotusScript. The IsDeleted field is set to "YES" and the others are self-explanatory. All of the user view selection formulas contain IsDeleted = NO. One hidden admin view is used to list all of the deleted Notes documents.

If a Lotus Notes user accidentally deletes a document, I can then use my action button to clear all three fields and restore the Lotus Notes document back to its original state.

Sub Click(Source As Button)
 
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
 
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
 
' Make sure document is in edit mode.
If Not uidoc.EditMode Then
 uidoc.EditMode = True     
End If
     
' Get the actual username of the 
person processing this action button.
Dim nam As NotesName
Dim strCurrentUser As String

Set nam = session.CreateName
(session.UserName)
' convert to the common name format
strCurrentUser = nam.Common

Dim dateTime As New NotesDateTime( "" )
Call dateTime.SetNow
 
Dim strDateAndTime As String 
strDateAndTime = Cstr(dateTime.LocalTime)
 
' Set the Deletion fields.
Call uidoc.FieldSetText( "IsDeleted",
 "YES" )
Call uidoc.FieldSetText( "DeletedBy", 
strCurrentUser )
Call uidoc.FieldSetText( "DeletedDate", 
strDateAndTime )
     
Call uidoc.Save
Call uidoc.Close

End Sub

MEMBER FEEDBACK TO THIS TIP

Here is some Formula language code to the rescue:

REM {make sure document is in EDIT mode}; 
@Command([EditDocument]; "1"); 

FIELD IsDeleted := "Yes"; 
FIELD DeletedBy := @Username; 
REM {maintain a DATETIME value 
(not a string) for date-related matters}; 
FIELD DeletedDate := @Now; 

@Command([FileSave]); 
@Command([FileCloseWindow]) 

—Manfred P.

Do you have comments on this tip? Let us know.

This tip was submitted to the SearchDomino.com tip library by member Michael List. Please let others know how useful it is via the rating scale below. Do you have a useful Lotus Notes, Domino, Workplace or WebSphere tip or code snippet to share? Submit it to our monthly tip contest and you could win a prize.

Rate this Tip
To rate tips, you must be a member of SearchDomino.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Lotus Notes Domino Database Management
LotusScript agent parses ACL to Microsoft Notepad
Domino Domain Monitoring hints and gotchas
LotusScript code rebuilds corrupted busytime.nsf file
LotusScript agent automates selective mail file replication
Configuring Domino Domain Monitoring (DDM)
How to move Notes databases off Domino 8 servers and save disk space
What is Notes 8.5's DAOS (Domino Attachment and Object Storage) feature?
LotusScript agent indexes Lotus Notes/Domino databases
An introduction to Domino Domain Monitoring (DDM)
'Customize this view' options are disabled in Lotus Notes databases

LotusScript
LotusScript agent parses ACL to Microsoft Notepad
LotusScript finds the first occurrence of a string from the right
Clear Recent Contacts view and prevent repopulation in Lotus Notes 8.x
Search Microsoft Active Directory with LotusScript
Three steps to trap and handle save conflicts with LotusScript
Troubleshoot agents by displaying LotusScript variables online
LotusScript sorts lists alphabetically
Run or restart Notes/Domino agents via text messages
LotusScript code rebuilds corrupted busytime.nsf file
Soft-code item names to facilitate LotusScript management

LotusScript
LotusScript agent parses ACL to Microsoft Notepad
LotusScript finds the first occurrence of a string from the right
Clear Recent Contacts view and prevent repopulation in Lotus Notes 8.x
Search Microsoft Active Directory with LotusScript
Three steps to trap and handle save conflicts with LotusScript
Troubleshoot agents by displaying LotusScript variables online
LotusScript sorts lists alphabetically
LotusScript code rebuilds corrupted busytime.nsf file
Soft-code item names to facilitate LotusScript management
LotusScript agent automates selective mail file replication

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Domino & Lotus Notes Security Solutions: Authentication, Antispam, Encryption and Antivirus
HomeTopicsITKnowledge ExchangeTipsAsk the ExpertsMultimediaWhite PapersDomino IT Downloads
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 1999 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts