Ich möchte benutzerdefinierte Ordner per Lotusscript anlegen - benötige das, um Suchergebnisse anzuzeigen. Wenn ich SPOFU's benutze, funktioniert das PutAllInFolder aus der Suchroutine nicht, bzw. nicht zuverlässig.
Ich habe mir folgendes Script gebastelt, das ich aus einem Agenten heraus aufrufen will, der ansonsten mit vollständigen Admin-Rechten (manipuliert die ACL) korrekt läuft:
Sub createPersonalFolders(user$)
Dim session As New NotesSession
Dim sourceDb As New NotesDatabase("","")
Dim sourceFolder As NotesDocument
Dim destFolder As NotesDocument
user$="test"
Set sourceDb=session.Currentdatabase
'On Error Resume Next
ForAll folder In sourceDb.Views
If folder.IsFolder And folder.Name="SearchFolderTemplate" Then
Set sourceFolder = sourceDb.GetDocumentByUNID(folder.UniversalID)
Set destFolder = New NotesDocument( SourceDB )
Call destFolder.CopyAllItems( sourceFolder,True)
destFolder.~$TITLE="searchfolder_" & user$ &"|searchfolder_" & user$
Call destFolder.save(True,False)
Set destFolder = destDb.GetView(folder.Name)
Exit forall
End If
End ForAll
End Sub
Wenn ich nun mein obenstehendes Script als Subroutine in dem Agenten laufen lasse, hängt sich der Client auf und der Ordner "searchfolder_test" wird auch nicht erstellt.
Hat jemand eine Idee, wo mein Fehler liegen könnte?
Habe gerade gesehen, dass es ladürnich
Call SourceFolder.CopyAllItems( destFolder,True)
heissen muss, nicht umgekehrt.
Ich sehe den destFolder aber immer noch nicht nach Neustart des Clients und öffnen der DB...
Dafür brauchst Du (bzw. der Agent) aber mind. Designer-Rechte.
Ich habe mir in einem Agent, der auch einen Ordner anlegen und dann mit dem Ergebnis einer Suche füllen muß, mal mit folgendem Konstrukt beholfen. Ich kann leider nicht mehr sagen, wo ich den Tipp dazu herhabe, aber es funktioniert :
...
Set folder = db.GetView("Ordername")
If (folder Is Nothing) Then
Call db.EnableFolder("Ordnername")
End If
...
Dadurch wird der Ordner mit dem Design des Standardordners angelegt und läßt sich auch direkt nutzen.
Dazu auch aus der Designer-Hilfe :
Call notesDatabase.EnableFolder( foldername$ )
foldername$
String. The name of the folder that you want to enable. If the folder does not exist, this method creates a folder.