By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
A common use for LotusScript is to control the deletion of documents. I found myself often wanting to assure that when a user deletes a document, all of that document's descendants were removed as well.
The following piece of code can be called from anywhere you have a handle to a NotesDocument object. You pass this sub a NotesDocument and it will delete that document as well as all descendants.
Sub DeleteHierarchy(docToDelete As NotesDocument) %REM This code will delete a document and all of its descendants. PARAMETERS docToDelete - NotesDocument object the represents the NotesDocument to be deleted. RETURN Nothing is returned. %END REM Dim ndcResponses As NotesDocumentCollection Dim docResponse As NotesDocument ' docNextResponse is a pointer to the next document in the response collection. ' This is needed because the current response is removed before a call to GetNextDocument can be made. Dim docNextResponse As NotesDocument Set ndcResponses = docToDelete.Responses If ndcResponses.Count > 0 Then Set docResponse = ndcResponses.GetFirstDocument Do While Not docResponse Is Nothing Set docNextResponse = ndcResponses.GetNextDocument(docResponse) Call DeleteHierarchy(docResponse) Set docResponse = docNextResponse Loop End If Call docToDelete.Remove(True) End Sub