Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: CarstenB am 08.06.11 - 11:24:15

Titel: StampAllMulti
Beitrag von: CarstenB am 08.06.11 - 11:24:15
Hallo zusammen,
kann mir jemand sagen, wie die Methode StampAllMulti funktioniert. Ich verstehe dich Hilfe nicht ganz.
Wenn ich z.B. 2 Items in eine Collection schreiben will, lege ich dann ein neues Dokument mit diesen 2 Items an? Alle anderen items der Dokumente aus der Collection bleiben dann unberührt?
Titel: Re: StampAllMulti
Beitrag von: ghostmw am 08.06.11 - 11:31:39
Hi CarstenB,

Zitat
StampAllMulti
macht genau folgendes.

Du gibst ihr als Parameter ein NotesDocument mit allen Items, die du in der DocCollection setzen willst.

Wenn der Datentyp im Zieldokument eines Items nicht passt, wird das betreffende Item im Zieldokument gelöscht und neu gesetzt.
Sind die Items im Zieldokument nicht da, werden sie angelegt.

Der Datentyp ist immer der vom Parameter-Dokument.

Also => es dürfen in dem Sourcedokument nur die Items enthalten sind, die auch gesetzt werden sollen, also JA bzgl. der Frage.

Das ersetzt das "umständliche" zigfache StampAll ( FeldName, Feldwert ). Ob das jetzt besser oder umständlicher ist, hängt vom Einzelfall ab.

Titel: Re: StampAllMulti
Beitrag von: marschul am 08.06.11 - 11:48:03
Cooles Ding, musste ich gleich mal in einem Agent (einer Spielwiesen-DB) ausprobieren:

Code
Sub Initialize

 Dim oSession As New NotesSession
 Dim oDB As NotesDatabase
 Dim oColl As NotesDocumentCollection
 Dim oDoc As NotesDocument

 Set oDB = oSession.CurrentDatabase
 Set oColl = oDB.AllDocuments
 Set oDoc = oDB.CreateDocument
 oDoc.StampAllMultiTest1 = "Wert1"
 oDoc.StampAllMultiTest2 = "Wert2"

 oColl.StampAllMulti oDoc

End Sub

Ergebnis: Alle Doks in der DB behielten ihre "alten" Felder und bekamen die 2 neuen dazu. Und: Das Teil ist rasend schnell und sollte sich auf jeden Fall lohnen, wenn man mal mehrere Felder in einer Collection bei gleichem Inhalt pro Feld füllen möchte...
Titel: Re: StampAllMulti
Beitrag von: CarstenB am 08.06.11 - 11:49:14
vielen Dank für die schnelle Antwort

Das ersetzt das "umständliche" zigfache StampAll ( FeldName, Feldwert )

Ist es denn auch performanter?
Titel: Re: StampAllMulti
Beitrag von: CarstenB am 08.06.11 - 11:51:01
@Marschul,
da hat sich meine letzte Frage mit deiner Antwort wohl gerade überschnitten. Also bringt das ganze wohl zusätzlich einen Leistungsschub.
Vielen Dank!