EDIT:
Tja, da habe ich wohl nicht aufgepasst! Die Funktionalität gibt es schon:
database.createDocumentCollection()
Schade, daß man bei den XSnippets Code nicht mehr entfernen kann.
Domino bietet Out-of-the-Box leider keine Möglichkeit, ein leeres NotesDocumentCollection-Objekt zu instanzieren. Um trotzdem in den Genuss zu kommen, mit einer leeren NotesDocumentCollection arbeiten zu können, ist der schnellste Weg, einfach alle Dokumente der Datenbank zu verwenden und von sich selbst „abzuziehen“.
In SSJS sieht das wie folgt aus:
/***** *** getEmptyDocumentCollection() *** returns an empty NotesDocumentCollection-Object *****/ function getEmptyDocumentCollection(){ var dc:NotesDocumentCollection = null; try{ dc = database.getAllDocuments(); dc.subtract( database.getAllDocuments() ); }catch(e){} return dc; } /*** how to use ***/ var hlpDC:NotesDocumentCollection = getEmptyDocumentCollection(); var hlpDoc:NotesDocument = database.getAllDocuments().getFirstDocument(); hlpDC.addDocument ( hlpDoc ) hlpDC.getCount();
Die gleiche Funktionalität sieht in LotusScript wie folgt aus:
%REM Function getEmptyDocumentCollection Description: Returns an empty document collection Created Nov 28, 2011 by Sven Hasselbach %END REM Function getEmptyDocumentCollection() As NotesDocumentCollection On Error GoTo errH Dim session As New NotesSession Dim db As NotesDatabase Dim dc As NotesDocumentCollection Set db = session.Currentdatabase Set dc = db.Alldocuments dc.Subtract db.Alldocuments Set getEmptyDocumentCollection = dc the_end: Exit Function errH: Print "getEmptyDocumentCollection() - Error #" & Err & _ ": '" & Error & "' @ Line " & Erl Resume the_end End Function
Und schon hat man eine leere NotesDocumentCollection, der man nach Belieben arbeiten kann!
Hallo Sven,
seit Lotus Notes 8 gibt es in Lotus Script einen undokumentierten Befehl
Set NotesDocumentCollection = NotesDatabase.CreateDocumentCollection
um eine leere NotesDocumentCollection zu erzeugen.
Grüße
Alexander
Hallo Alexander,
stimmt, kann aber auch Probleme bereiten, siehe hier: Creating an empty NotesDocumentCollection can crash Domino
Viele Grüße
Sven
Hello Sven,
I found your XSnippet relative to this blog entry, and I usally do something like this to get an empty document collection :
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Set db = session.Currentdatabase
Set dc = db.getProfileDocumentCollection("DummyCollectionNameThatDoNotExistsInDatabase")
Much more simple in my opinion 🙂
Thx anyway for sharing code in XSnippets
Stéphane