Autor Thema: Wie DocCollection aus View erstellen?  (Gelesen 5330 mal)

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Wie DocCollection aus View erstellen?
« am: 10.01.13 - 09:17:18 »
Hallo zusammen!

Ich haben eine View und möchte alle Docs daraus in einer Doc.Collection zusammenfassen. Ich habe eine Methode, aber sie ist zu langsam. Geht das irgendwie schneller?

Ich schnappe mir dazu die ViewEntryCollection mit

Set vc = view.AllEntries

Und dann wird daraus in einer Schleife die DocCollection aufgebaut

Set entry = vc.GetFirstEntry()
   
While Not (entry Is Nothing)   
   Set doc = entry.Document
   Call dc.AddDocument(doc)
   Set entry = vc.GetNextEntry(entry)
Wend

Soweit so schick. Problem: bei 50.000 Docs in der View dauert das locker 10 Minuten.
Gibt es eine Methode, das zu beschleunigen?

Grüße
Basti


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Wie DocCollection aus View erstellen?
« Antwort #1 am: 10.01.13 - 09:21:22 »
Ich erstelle für solche Fälle eine separate Ansicht, bei der in der ersten sortierten Spalte ein fester Wert (z.B. "1") eingetragen ist und hole mir die Collection mit NotesView.GetAllDocumentsByKey ("1")

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Re: Wie DocCollection aus View erstellen?
« Antwort #2 am: 10.01.13 - 09:27:21 »
Raffiniert!! 
Danke Dir für den Tipp :)

Basti

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Wie DocCollection aus View erstellen?
« Antwort #3 am: 10.01.13 - 09:36:49 »
Vielleicht hilft auch folgendes:

Zitat
Merge method
Syntax
Call notesDocumentCollection.Merge( inputNotes )

Parameters
inputNotes

String, NotesDocument, NotesDocumentCollection, NotesViewEntry or NotesViewEntryCollection. The NotesDocument, NotesDocuments, NotesViewEntry or NotesViewEntries that the method will merge with the NotesViewEntryCollection.

Eine View kostet nämlich wieder zusätzliche Ressourcen...
allerdings hat man hier das Problem, dass man nicht so einfach eine leere NotesDocumentcollection erzeugen kann (gibt eine undokumentierte Methode dafür)

Gruß
Roland

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Re: Wie DocCollection aus View erstellen?
« Antwort #4 am: 10.01.13 - 09:47:13 »
Auch spannend!

allerdings hat man hier das Problem, dass man nicht so einfach eine leere NotesDocumentcollection erzeugen kann (gibt eine undokumentierte Methode dafür)

So knifflig ist es gar nicht. Meine Methode für eine leere DocumentCollection:
   
   Set db = session.CurrentDatabase
   Set dc = db.GetProfileDocCollection("IrgendEinNameDenEsNichtInDerDBGibt")
   

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 475
Re: Wie DocCollection aus View erstellen?
« Antwort #5 am: 10.01.13 - 09:53:29 »
Die merge-Funktion ist aber erst neu mit Notes 8 und dies hier ist das 7er-Forum !

Gruß

André

Driri

  • Gast
Re: Wie DocCollection aus View erstellen?
« Antwort #6 am: 10.01.13 - 10:57:36 »
Roland hat es angesprochen, ab Domino 8 gibt es folgende undokumentierte Funktion zum Erstellen einer leeren DocumentCollection :

Zitat
Dim coll As NotesDocumentCollection
Set coll = db.CreateDocumentCollection

Siehe auch hier : http://www-01.ibm.com/support/docview.wss?uid=swg21368236

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Wie DocCollection aus View erstellen?
« Antwort #7 am: 10.01.13 - 11:22:10 »
Wenn man die separate View sparen möchte, kann man auch mit db.Search die Collection füllen, dort die Selektionsformel der Ansicht übergeben. Ist m.E. performant genug.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz