Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 11.02.03 - 12:39:56

Titel: Private Ordner löschen aus Skript heraus
Beitrag von: Don Pasquale am 11.02.03 - 12:39:56
Hallo Leute,

Ich habe einen Ordner Private on first use, der aktualisiert werden soll,
d.h. aus 2 Ansichten sollen alle Dokumente mit Namen des Users in einem
bestimmten Feld in diesen Ordner kopiert werden.
Vom Vorlauf könnte er aber noch Dokumente haben, in denen sein Name drin stand, aber jetzt nicht mehr. Diese Dokumente möchte ich raus haben.
Ich habe das so gelöst, das der Ordner jedesmal gelöscht wird und dann
neu gefüllt.

Nun bekomme ich die Fehlermeldung

B-Structure is invalid

   viewName = ORDNER_EIGENE_DOKUMENTE
   If viewName = "" Then Exit Sub
   Set view = db.GetView(viewName)
   Call view.Remove


Nun bekomme ich die Fehlermeldung

B-Structure is invalid

Sagt das jemandem etwas ?

Ciao
Don Pasquale

   Dim ws As New NotesUiWorkspace
   Dim s As New NotesSession
   Dim view As NotesView
   Dim dc As NotesDocumentCollection
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim DocDelete As NotesDocument
   Dim ORDNER_DOKS_NACH_INITIATOREN As String
   Dim ORDNER_DOKS_NACH_SENDEN_AN As String
   Dim ORDNER_EIGENE_DOKUMENTE As String
   
   ORDNER_DOKS_NACH_INITIATOREN =  "_Initiator"
   ORDNER_DOKS_NACH_SENDEN_AN = "_Senden"
   ORDNER_EIGENE_DOKUMENTE  = "Eigene Dokumente"
   
   
   Dim session As New NotesSession
   Dim vc As NotesViewEntryCollection
   
   Set db = s.CurrentDatabase  
   Set db = session.CurrentDatabase
   
   viewName = ORDNER_EIGENE_DOKUMENTE
   If viewName = "" Then Exit Sub
   Set view = db.GetView(viewName)
   Call view.Remove
   
   Set db = session.CurrentDatabase
   Set view = db.GetView(ORDNER_DOKS_NACH_INITIATOREN)
   Set vc = view.GetAllEntriesByKey(session.CommonUserName,False)
   Call vc.PutAllInFolder( ORDNER_EIGENE_DOKUMENTE, True)
   
   
   Set view = db.GetView(ORDNER_DOKS_NACH_INITIATOREN)      
   Set vc = view.GetAllEntriesByKey(s.CommonUserName, False)
   Call vc.PutAllInFolder( ORDNER_EIGENE_DOKUMENTE, True )
   
   Set view = db.GetView(ORDNER_DOKS_NACH_SENDEN_AN)      
   Set vc = view.GetAllEntriesByKey(s.CommonUserName, False)
   Call vc.PutAllInFolder(ORDNER_EIGENE_DOKUMENTE, True )
   
   Set view = db.GetView( ORDNER_EIGENE_DOKUMENTE )      
   Call ws.ViewRefresh
Titel: Re:Private Ordner löschen aus Skript heraus
Beitrag von: Axel am 11.02.03 - 13:12:08
Hi,

ich hab das mal gemacht. Hier ein Auszug aus meinem Code.

...
Dim session As New NotesSession
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Dim foldername As String

foldername = "Recherche"

Set db = session.CurrentDatabase   
Set view = db.GetView(foldername)
Set vc = view.AllEntries

Call vc.RemoveAllFromFolder(foldername) ' Entfernt alle Dokumente aus dem Ordner            
...


Axel
Titel: Re:Private Ordner löschen aus Skript heraus
Beitrag von: Don Pasquale am 11.02.03 - 13:35:13
@Axel,

:-)

Danke sehr.

Thema erledigt (Habe ich versucht anzuklicken, scheint in diesem Client nicht zu funktionieren)

Ciao

Don Pasquale

Titel: Re: Private Ordner löschen aus Skript heraus
Beitrag von: Mandalor am 08.04.05 - 14:24:14
Ich muss auch private ordner löschen, aber alle in der DB

habe mir folgendes überlegt:

   Dim se As NotesSession
   Dim db As notesdatabase
   Dim views As Variant
   views = db.Views
   Forall view In views
      If view.isprivate Then
         call view.remove()
      End If
   End Forall

das bringt mir aber den Fehler, das er einen index auf dem server nicht erstellen kann ???
Titel: Re: Private Ordner löschen aus Skript heraus
Beitrag von: Axel am 08.04.05 - 14:38:59
Hi,

kann das sein, dass der/die Ordner nicht in der Datenbank selbst sondern auf dem Desktop abgelegt sind?


Axel
 
Titel: Re: Private Ordner löschen aus Skript heraus
Beitrag von: Driri am 08.04.05 - 14:49:24
Oder kommt Notes evtl. mit dem Variant durcheinander ?

Versuchs mal so :

Dim se As NotesSession
Dim db As notesdatabase
Forall v In db.views
   If v.isprivate Then
      call v.remove()
   End If
End Forall