Domino 9 und frühere Versionen > ND8: Entwicklung
Spalte mit Ordnerreferenzen in Ansicht sortieren
TY:
Guten Morgen,
ich habe in den Tiefen des Internet eine einigermaßen brauchbare Lösung gefunden:
http://www.runningnotes.net/index.php/tag/lotusscript
Hier werden die FolderReferences über LotusScript gesetzt. Ich habe das Ganze mal in einen Agenten eingefügt:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim myViews As Variant
Dim myFolders As Variant
Set db = session.CurrentDatabase
Dim doccol As NotesDocumentCollection
Dim doc As NotesDocument
Set doccol = db.UnprocessedDocuments
'Set doc = doccol.GetFirstDocument()
myViews = db.Views
Dim viewnav As NotesViewNavigator
Dim intCount As Long
'View-Ansicht aktualisieren
Dim uiws As New NotesUIWorkspace
intCount = doccol.Count
If Not MessageBox ("Wollen Sie für " & intCount & " Dokumente die Ordnerreferenz setzen?" & Chr(13) & Chr(10) &_
"Dies kann einige Minuten dauern!" ,1 + 32,db.title) = 1 Then
Exit Sub
End If
Set doc = doccol.GetFirstDocument()
While Not (doc Is Nothing)
ForAll v In myViews
If v.IsFolder Then
v.AutoUpdate = False
Set viewnav = v.CreateViewNavFrom(doc)
If viewnav.Count > 0 Then
doc.FolderName = v.name
Call doc.save(True,True)
End If
End If
End ForAll
Set doc = doccol.Getnextdocument(doc)
Wend
Call uiws.ViewRefresh
MsgBox "Ordnerreferenzen gesetzt!"
End Sub
Es wird in das erstellte Dokumenten-Feld "FolderName" der Ordner geschrieben, in der das Dokument liegt. Ich habe eine neue Ansicht "Alle Dokumente nach Ordner" erstellt und in die Spalte "Ordner" den Wert "FolderName" eingetragen. Danach läßt sich auch die Spalte sortieren.
Allerdings müsste die Ansicht mit dem obigen Quellcode aktualisiert werden, da unser Kunde auch weiterhin fleißig Dokumente in Ordner verschiebt. Die Aktualisierung kann bei ca. 3000 Dokumenten 7-8 Minuten dauern.....
Ein kleines Problem hab ich dennoch: Wenn ein Dokument in einen Ordner kopiert wurde, existiert dies ja zweimal. Ich müsste den FolderName ein Array mitgeben, falls das Dokument in mehr als einen Ordner liegt.
Hat hier jemand eine Idee?
Danke
Jürgen
Peter Klett:
--- Zitat von: JS am 20.09.12 - 10:01:14 ---... Wenn ein Dokument in einen Ordner kopiert wurde, existiert dies ja zweimal ...
--- Ende Zitat ---
Nein, das Dokument existiert nur einmal, ist aber mehreren Ordnern zugeordnet.
Etwas Optimierungspotential in Deinem Agenten:
Bei jedem Dokument gehst Du über alle Ansichten und prüfst, ob es ein Ordner ist. Besser, einmal alle Ordner suchen und dann mit jedem Dokument nur noch in den Ordnern suchen.
Was mich etwas davor abschreckt, Deinen Agenten fertigzuschreiben, ist die Passage "unser Kunde". Warum sollte ich hier gratis die Lösung liefern, die Du jemand anderes dann verkaufst? Es ist nicht wirklich schwer, einen Mehrfachwert zusammenzusammeln und dann in ein Dokument zu schreiben, Du brauchst dazu drei neue Zeilen und eine (nein, zwei ;)) vorhandene musst Du ändern. Es gibt da verschiedene Herangehensweisen, ein Tipp wäre "Split", schau da mal in der Hilfe nach. Den Rest kriegst Du selber hin ...
EDIT: Das noch größere Optimierungspotential liegt darin, die Dokumente nicht grundlos zu speichern.
TY:
Danke für den Hinweis :) Werd ich versuchen umzusetzen.
Anm. Mit "Kunde" sind eher unsere firmeninternen Mitarbeiter gemeint, die wir aber als unsere "Kunden" ansehen, da sie uns beispielsweise mit derartigen Anforderungen auf Trapp halten ;)
Jürgen
Peter Klett:
ok, "Kunde" verstanden. Meld' Dich einfach, wenn's klemmt ... ;)
TY:
Danke erstmal für die Antworten. Zur Zeit komme ich nicht dazu in dem Bereich weiter zu entwickeln. Wenn sich demnächst eine Gelegenheit ergibt, werde ich meine Ergebnisse hier weiter posten.
Jürgen
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln