Domino 9 und frühere Versionen > Entwicklung

Antwort -> Rückantwort

(1/2) > >>

MrMagoo:
Hallo zusammen,

ich habe folgendes Problem:

Ich habe ein Hauptdokument mit Antworten und Rückantworten und darauf wieder Rückantworten. Normalerweise ist es ja so, das wenn ein Haupftdok gelöscht wird auch die Antworten und alle Rückantworte gelöscht werden.

Wie verhält sich das aber bei z.B. Rückantworten und Rückantworten als Antwortdokument auf die erste Rückantwort?

Axel:

--- Zitat ---Normalerweise ist es ja so, das wenn ein Haupftdok gelöscht wird auch die Antworten und alle Rückantworte gelöscht werden.

--- Ende Zitat ---


Hi,

wieso soll das normalerweise so sein?

Normal ist das so, wenn du ein Hauptdokument löschst, dann ist es weg (logisch, so soll's ja auch sein). Aber evt. vorhandene Antwortdoks sind nach wie vor noch in der DB als Leichen vorhanden. Sie werden nicht gelösct.

Das ist bei Antwortdocs die Rückantworten haben genauso. Wird das Antwortdokument gelöscht, bleibt die Rückantwort als Leiche im Keller.

Du musst selbst dafür sorgen, dass evt. vorhandene Antworten mit gelöscht werden.

Füge dazu im Datenbankscript im PostDocumentDelete - Event folgenden Code ein:


--- Zitat ---Sub Postdocumentdelete(Source As Notesuidatabase)
   
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim i As Integer
   
   Set collection = Source.Documents
   
   If collection.Count = 0 Then
      Exit Sub
   Else
      For i = 1 To collection.Count
         Set doc = collection.GetNthDocument(i)
         Call DeleteResponseDocs(doc)
         Call doc.Remove(True)
      Next  'For i = 1 To collection.Count
   End If  'If collection.Count = 0 Then
   
End Sub

--- Ende Zitat ---

Die dazugehörige Funktion DeleteResponseDocs sieht so aus:


--- Zitat ---Sub DeleteResponseDocs (doc As NotesDocument)
   
   Dim responses As NotesDocumentCollection
   Dim tmpdoc As NotesDocument
   Dim dummy As NotesDocument
   
   Set responses = doc.Responses
   Set dummy = responses.GetFirstDocument
   While Not (dummy Is Nothing)
      Set tmpdoc = responses.GetNextDocument(dummy)
      Call DeleteResponseDocs(dummy)
      Call dummy.Remove(True)
      Set dummy = tmpDoc
   Wend  'While Not (dummy Is Nothing)
   
End Sub
--- Ende Zitat ---


Axel

MrMagoo:

--- Zitat ---Normalerweise ist es ja so, das wenn ein Haupftdok gelöscht wird auch die Antworten und alle Rückantworte gelöscht werden.

Hi,

wieso soll das normalerweise so sein?

Normal ist das so, wenn du ein Hauptdokument löschst, dann ist es weg (logisch, so soll's ja auch sein). Aber evt. vorhandene Antwortdoks sind nach wie vor noch in der DB als Leichen vorhanden. Sie werden nicht gelösct.
--- Ende Zitat ---

Wird das Hauptdokument gelöscht, haben die nachfolgenden Antwort- und Rückantwortdokumente quasi keine Existenzberechtigung mehr-sie werden ebenfalls gelöscht.
vgl. Anwendungsentwicklung unter Lotus Notes von  Knäpper, Perc u. Perplies S.128

Dann steht das falsch in dem Buch oder zumindest unglücklich ausgedrückt. Das hatte mich verwirrt.

Aber danke für die Antwort, ich probiere das mal
Gruß

klaussal:
... das bezieht sich wohl auf die versionsverwaltung, die ein paar zeilen höher angesprochen wird. aber es stimmt, das ist besch.. geschrieben  ;D

Performance:
MrMagoo

da hilft eher eine "normale" rekursive Funktion  ;D ;D ;D


cu

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln