** EDIT **
Komplette Lösung siehe hier unter Best Practices:
Best Practices Folder References
Hi,
ich hab mich zu dem Thema "Wie finde ich heraus, in welchem Ordner Dokument XY liegt" mal etwas schlau gemacht und ein paar Scripts geschrieben.
Damit dies überhaupt klappt, müssen die folgenden Ordner der R5 Mailschablone in die jew. DB kopiert werden:
- $FolderRef
- $FolderRefInfo
Außerdem muss vorher ein db.FolderReferencesEnabled = True ausgeführt werden.
Per Default werden keinerleid Infos in den Dokumenten gespeichert!
Beispiel-Code:
| Sub Click(Source As Button) |
| Dim session As New NotesSession |
| Dim db As NotesDatabase |
| Set db = session.CurrentDatabase |
| |
| If db.FolderReferencesEnabled Then |
| If Messagebox ("Folder References are enabled." & Chr(10) & Chr(10) _ |
| & "Do you want to disable the Folder References?" ,1 + 32,db.title) = 1 Then |
| db.FolderReferencesEnabled = False |
| Messagebox "Disabled Folder References now.....", 64, db.title |
| Else |
| Exit Sub |
| End If |
| Else |
| If Messagebox ("Folder References are disabled." & Chr(10) & Chr(10) _ |
| & "Do you want to enable the Folder References?" ,1 + 32,db.title) = 1 Then |
| db.FolderReferencesEnabled = True |
| Messagebox "Enabeled Folder References now.....", 64, db.title |
| End If |
| End If |
| End Sub |
Nachträglich Folder References erzeugenNun hat man ggf. das Problem, dass db.FolderReferencesEnabled nicht enabled wurde und eine DB (z.B. Mailfile) u.U. viele tausend Dokumente hat ohne jeder Referenz.
Da kann man dann folgenden Code nehmen, damit wird einfach jedes Dokument wieder in denselben Folder geschoben, und damit wird dann nachträglich eine Referenz erzeugt.
| Sub Click(Source As Button) |
| Dim session As New NotesSession |
| Dim db As NotesDatabase |
| Dim vec As NotesViewEntryCollection |
| Set db = session.CurrentDatabase |
| |
| If Not Messagebox ("Do you really want to create references of all docs in all folders?" ,1 + 32,db.title) = 1 Then |
| Exit Sub |
| End If |
| |
| Forall v In db.Views |
| If v.isFolder Then |
| Set vec = v.AllEntries |
| Call vec.PutAllInFolder( v.Name ) |
| End If |
| End Forall |
| Messagebox "Folder References are created...", 64, db.title |
| |
| End Sub |
Ist erstmal ein erster Wurf, to be continued.....
TMC