Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Don Pasquale am 30.09.03 - 09:27:32

Titel: Wie leert man einen Ordner
Beitrag von: Don Pasquale am 30.09.03 - 09:27:32
Es gehört thematisch zu einem anderen Thread, ist
aber etwas eigenes :

Ich will einen existierenden Ordner leeren.

Ich will folgenden Code ersetzen, er funktioniert nur unter Lotus 5 einwandfrei.

   Set view = db.GetView(ORDNER_EIGENE_DOKUMENTE)
   Set vc = view.AllEntries
   Call vc.RemoveAllFromFolder(ORDNER_EIGENE_DOKUMENTE)


Gibt es eine andere Möglichkeit, einen Ordner zu leeren,
Die Dokumente sollen nicht (!) gelöscht werden.

Vielen Dank für Eure Antworten

Ciao
Don Pasquale
Titel: Re:Wie leert man einen Ordner
Beitrag von: Glombi am 30.09.03 - 09:35:27
Hi,
unter R6 geht das nicht???

Evtl. so:

dim doc as NotesDocument
dim nextdoc as NotesDocument

Set view = db.GetView(ORDNER_EIGENE_DOKUMENTE)
set doc = view.GetFirstDocument

while not (doc is nothing)
 set nextdoc = view.GetNextDocument(doc)
 call doc.RemoveFromFolder(ORDNER_EIGENE_DOKUMENTE)
 set doc = nextdoc
wend

Andreas
Titel: Re:Wie leert man einen Ordner
Beitrag von: Scorp am 30.09.03 - 09:40:02
Hi! Unter R6 mach ichs auch immer so ähnlich

dim doc as notesdocument
dim view as notesview

set view = db.getview("zzz")
set doc = view.getfirstdocument

while not (doc is nothing)
  call doc.remove(true)
  set doc.getfirstdocument
wend
Titel: Re:Wie leert man einen Ordner
Beitrag von: Don Pasquale am 30.09.03 - 09:55:23
@Glombi
Der Code scheint buggy unter R6 zu sein.

@Scorp

Oh, so schnell, Herzlichen Dank Ihr beiden !

Titel: Re:Wie leert man einen Ordner
Beitrag von: Don Pasquale am 01.10.03 - 14:15:11
dim doc as notesdocument
dim view as notesview

set view = db.getview("zzz")
>set doc = view.getfirstdocument

while not (doc is nothing)
  call doc.remove(true)
  set doc.getfirstdocument
wend

Genau hier bekomme ich wieder diesen Fehler,
was bedeutet der denn überhaupt :

Index IS not be generated on server

Ich werd noch wahnsinnig

Ciao
Don Pasquale
Titel: Re:Wie leert man einen Ordner
Beitrag von: Semeaphoros am 01.10.03 - 14:48:14
Ist das auch ein SPOFU? (Shared, Private on first use)

Uebrigens, mit doc. remove wird das Dokument als ganzes gelöscht und nicht nur der Ordner geleert, wie die Ueberschrift eigentlich sagt (zugegeben, wenn die Dokumente gelöscht werden, ist der Ordner auch leer, aber das hat einen gar nicht so unbedeutenden Seiteneffekt ........) Das andere wäre doc.removeFromFolder. Die Fehlermeldung kommt aber vermutlich trotzdem, da der Folderindex neu aufgebaut werden muss.

Andere Frage, hat der User das Recht, Private Folders anzulegen oder nicht? Steht in der ACL der Datenbank. Wenn ers hat, landet der Folder auf dem Server, wenn ers nicht hat, landet der Folder lokal im Desktop.
Titel: Re:Wie leert man einen Ordner
Beitrag von: Don Pasquale am 01.10.03 - 16:59:12
@Semeaphorus

SPOFU : ja
ACL : Recht erteilt
doc.Remove : Verdammt, hab ich übersehen. Danke !
Das war knapp !


bytheway: Gruß an Rudi K.
Ciao
Don Pasquale
Titel: Re:Wie leert man einen Ordner
Beitrag von: eknori am 01.10.03 - 17:21:57
strange...  ???

hab folgenden Code unter 6.02 CF1

   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim vc As NotesViewEntryCollection
   Set db = session.CurrentDatabase
   Set view = db.GetView("test")
   Set vc = view.AllEntries
   Call vc.RemoveAllFromFolder("test")

getestet; funzt einwandfrei...
Titel: Re:Wie leert man einen Ordner
Beitrag von: Semeaphoros am 01.10.03 - 17:28:33
Ulrich:
Scheint tatsächlich ein merkwürdiges Problem zu sein, geistert ja schon ewig rum, so wie es scheint, und irgendwie kriegen die Entwickler das nicht in den Griff, und es scheint schon immer so gewesen zu sein, dass das Problem nicht in jeder Umgebung auftritt.

Don Pasquale:
Auch hier das GetView durch den Workaround-Code aus der KB ersetzen.

Den Gruss an Rudi hab ich schon weitergeileitet, dh er bekommt ihn, wenn er heute abend aus Holland zurückkomt :-)
Titel: Re:Wie leert man einen Ordner
Beitrag von: Don Pasquale am 02.10.03 - 10:35:07
OK, das Ordner leeren eines Shared, Private at First Use
welches im Lotus Client 6.0 einen
"Index is not to be generated on server" evoziert
ist in diesem  Thread gelöst:

http://www.atnotes.de/index.php?board=3;action=display;threadid=11338

@Semeaphorus

Nochmals herzlichen Dank für Deine wertvolle Hilfe.


Ciao
Don Pasquale