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.71- (out of 5)


Lotus Notes, Domino, Workplace and WebSphere tips and advice
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
Add a program doc to compact Lotus Notes databases automatically
Set a value in a field existing in another Lotus Notes database
Fix 'Audit Trail' error when opening Notes docs
'Illegal circular use: Audit Trail' error when opening Lotus Notes docs
Shrink Lotus Notes databases with many attachments
Copy Lotus Notes databases from the Domino Server console command line
Tutorial: How to import data into Lotus Notes -- without programming
Easily show and hide layers in a Lotus Notes database
Managing Lotus Notes doclinks with LotusScript
Moving a remote user mail database to new Lotus Domino server

LotusScript
How to find files on a hard drive or mapped network with LotusScript
Update the ACL from the Roles view with LotusScript
LotusScript agent moves tagged spam email to junk mail folder
Set a value in a field existing in another Lotus Notes database
Create an automatic scheduled view export in Excel
Top 10 LotusScript tips
Create a personalized greeting for Lotus Notes database users
Fail-safe rich-text validation using LotusScript
How to export Lotus Notes views to a Microsoft Excel database
Modifying LotusScript code for date and time handling

LotusScript
How to find files on a hard drive or mapped network with LotusScript
Update the ACL from the Roles view with LotusScript
LotusScript agent moves tagged spam email to junk mail folder
Create a personalized greeting for Lotus Notes database users
Fail-safe rich-text validation using LotusScript
How to export Lotus Notes views to a Microsoft Excel database
Create file system labels for Microsoft Excel and Word mail merges
Fix Lotus Notes 8.0 issues when launching Microsoft Office applications
Capture rich-text comments in Lotus Notes fields using LotusScript
Retrieve cell values from tables in a Lotus Notes rich-text field

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.

HomeNewsTopicsITKnowledge ExchangeTipsAsk the ExpertsMultimediaWhite PapersDomino IT Downloads
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Reprints  |  Site Map




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