Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Dominique M. am 20.11.07 - 14:45:11
-
Hallo,
ich habe derzeit ein Problem beim Löschen von Dokumente aus Ordnern.
Problem ist folgendes:
Der User hat die Möglichkeit mehrere Dokumente in einer View zu löschen. Beim löschvorgang wird lediglich Form="" gesetzt und in ~70% der fälle verschwinden die Dokumente auch aus dieser Ansicht. (Blöder Notes Ansichten Index)
Problem dabei ist das es keine Methode gibt herauszufinden, in welchen Ordnern dieses Dokument überall lagert.
Um diese Dokument aus den Ordner zu löschen, verwendete ich bisher eine einfache Schleife durch alle Ansichten und benutzte lediglich ein .RemoveFromFolder()
Nun ist diese Methode nicht gerade die Schnellste. Die Frage ist also, wie kann ich Dokumente am einfachten aus allen Ordnern löschen ohne diesen Umweg zu gehen?
Vielen dank ;)
-
Ordner? Ansichten? Was denn nun?
-
Hallo
Du vermischt hier einige Begriffe: Ansicht <> Ordner
Das feld "Form" auf Leer ( "" ) zu setzten ist nicht so gut :-:
Kannst Du nicht ein anderes Flag / Feld setzen, damit das entsprechende Dokument nicht in der Ansicht angezeigt wird ? > Innerhalb Ansichten sollte das zu 100 % funktionieren.
Um das Dok aus den Ordnern zu entfernen, musst DU über die Ordner (!!)......
-
Hmm...okay komisch ausgedrückt...
Ich habe einen Ordner "B" und markiere dort ein Dokument zum Löschen.
Nun liegt dieses Dokument aber noch in einem zweiten, dritten oder noch mehr Ordnern.
Jetzt sollte natürlich beim löschen es aus allen Ordnern rausfliegen.
Ist das so verständlicher?
Eigentlich löschen wir sogar das Form Feld und setzen es nicht nur leer, besser einen eigenen Flag nutzen? Werd ich mal testen...
Okay, problem ist nachwievor das ich erst alle Vorhandenen Ordner durchgehe und sage "Lösch es mir aus diesem Ordner", das ist bei vielen Huntert Ordnern (Und sogar Ansichten) sehr langsam. Ich bekomme keine überprüfung ob die Ansicht in meiner Schleife ein Ordner ist oder nicht (isFolder geht nicht)..
Hoffe das ist so jetzt korrekt :)
-
Wenn Du nur das Dokument aus einem Ordner entfernen (!!) willst, genügt die Standardaktion ..
Wenn Du es quasi Löschen willst ( = aus allen Ansichten ausblenden und aus allen Ordnern entfernen), dann lieber "anders" flaggen und über alle Ordner ...
-
Schau Dir mal diesen Best Practice-Artikel von TMC an, das sollte Dir weiterhelfen :
Folder References - In welchem Ordner ist das jeweilige Dokument? (http://atnotes.de/index.php?topic=13503.0)
Wenn das aktiviert ist, kannst Du zu einem Dokument die Ordner abfragen, in denen es liegt. Dann kannst Du dir die Schleife über alle Ordner schenken.
-
Ordner (Folder) oder Ansichen (Views) ?
DAS ist die wichtige Frage.
Willst Du das Dokument tatsächlich aus der Datenbank löschen, oder nur aus dem Ordner/Ansicht entfernen?
-
Schau Dir mal diesen Best Practice-Artikel von TMC an, das sollte Dir weiterhelfen :
Folder References - In welchem Ordner ist das jeweilige Dokument? (http://atnotes.de/index.php?topic=13503.0)
Wenn das aktiviert ist, kannst Du zu einem Dokument die Ordner abfragen, in denen es liegt. Dann kannst Du dir die Schleife über alle Ordner schenken.
Das hab ich jetzt mal eben schnell getestet, das Ergebnis sieht bisher sehr gut aus!
Danke dir für diesen Link.
-
Hallo,
eine Frage hab ich dann aber doch noch:
Kann es sein das Die FolderReference garnicht wirkt wenn ein Dokument per FolderOptions="2" gespeichert wird? Zumindest macht er es gerade nicht und ich frag mich warum.
Ok anders:
Ich würde auch ein doc.PutInFolder nehmen wenn ich den aktuellen Ordner Namen wüsste... gibt es da Lösungen zu?
Ich danke euch :)
-
Ohne mehr Informationen zur aktuellen Situation zu haben, kann ich nur auf die Doku zu "FolderOptions" verweisen:
"2" (In aktuellem Ordner speichern)
Wenn der Benutzer das Dokument von einem geöffneten Ordner aus erstellt, speichert dieser Wert das Dokument und fügt es dem Ordner hinzu. Wenn der Benutzer das Dokument nicht von einem Ordner aus erstellt, wird das Dokument gespeichert, jedoch keinem Ordner hinzugefügt.
Es könnte als durchaus sein, dass hier gilt: Works as designed.
Bernhard