Avatar billede avest Nybegynder
13. juli 2006 - 14:59 Der er 1 kommentar og
1 løsning

Forbyde sletning dokument hvis der er svardokumenter - SoftDelete

Det er jo noget rod når brugere sletter et dokument hvortil der er svardokument. Så forsvinder de fra oversigten og dukker kun op ved søgninger og den slags.

Så jeg forsøger mig med en "Det må du ikke løsning".

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
    Dim docsDelete As NotesDocumentCollection
    Dim docsChildren As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim i%
    Set docsDelete = Source.Documents  ' Selected documents
  ' Check selected documents for children
    For i = 1 To docsDelete.Count
        Set doc = docsDelete.GetNthDocument( i )
        Set docsChildren = doc.Responses
    ' If children then cannot continue
        If docsChildren.Count > 0 Then
            Msgbox "Der er svar til dokumentet. Dokumentet kan ikke slettes.",0,"Brugerfejl"
            Continue = False
            Exit Sub
        End If
    Next
  ' No children found - OK to delete
    Continue = True
End Sub


Det virker på sin vis glimrende, med undtagelse af én ting.

Softdeletion er slået til i databasen, og så er dokumenter åbenbart ikke helt slettede.

Så når svar - dokumentet slettes og man ønsker at slette hoveddokumentet siger den stadig at der er svardokumenter.

Hvordan pokker klarer jeg lige den ?
13. juli 2006 - 16:43 #1
Du kan lave et view, der kun viser dokumenter, der er slettede (vælg Shared, contains deleted documents) og så slå op om svardokumentet er i dette view. Har ikke testet om man kan slå op på normal vis med LotusScript i et sådant view, men det vil jeg tro.
Avatar billede avest Nybegynder
31. juli 2006 - 13:57 #2
doc.isdeleted kan bruges til at afgøre om alle resonsedokumenter er markeret til sletning.



For i = 1 To docsDelete.Count
        Set doc = docsDelete.GetNthDocument( i )
        Set docsChildren = doc.Responses
    ' If children then cannot continue
        If docsChildren.Count > 0 Then
            Set docChild = docschildren.GetFirstDocument
            ' check if all is softdeleted
            While Not docChild Is Nothing
                If docChild.isdeleted = False Then
                    Continue = False
                    Msgbox "Der er svar til dokumentet. Dokumentet kan ikke slettes.",0,"Brugerfejl"
                    Exit Sub
                End If
               
                Set docChild = docsChildren.GetNextDocument(docChild)
            Wend
           
           
        End If
    Next
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester