Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: bikerboy am 23.02.09 - 10:23:49

Titel: Wildcard für GetAllDocumentsByKey()
Beitrag von: bikerboy am 23.02.09 - 10:23:49
Hallo zusammen, ich hoffe hier sind noch ein paar Leute vom WE übrig geblieben oder nicht gerade auf einem Umzug.

Ich brauche dringend alle Dokumente einer Ansicht. Mein Problem ist, dass ich nach Möglichkeit keine Ansicht verändern , bzw neu erstellen soll.

Also wüsste ich gerne wie ich in der Ansicht alle Dokumente bekommen.

Hinweis: Ich möchte nicht über die Entrys gehen !  Da ich nicht alle Informationen in der Ansicht habe muss ich früher oder später eh an die Dokumente.
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: m3 am 23.02.09 - 10:28:11
Der übliche Weg, um über eine View zu iterieren wäre notesview.GetFirstDocument und notesview.GetNextDocument.

Ich vermute mal, dass Deine Frage dahin zielt, dass Du die Dokumente in einer Collection willst. Ist das wirklich notwendig?
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: Thomas Schulte am 23.02.09 - 10:32:05
Warum nicht. Wenn es NICHT zeitkritisch ist, es gibt bei dieser Methode ein paar limitierende Faktoren, dann mach dir deine Collection mit den Dokumenten die du benötigst doch einfach über ein Db.Search selber.
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: LN4ever am 23.02.09 - 10:51:38
Die entscheidende Frage ist doch, ob du bei der Verarbeitung die Sortierreihenfolge der Ansicht benötigst - dann mußt du entlang der Ansicht laufen oder mit Viewentries arbeiten - oder ob die Sortierreihenfolge der Dokumente egal ist. Dann ist das db.Search dein Freund. Für ein StampAll reicht das aus.

Wenn du entlang einer Ansicht läufst, kannst du natürlich das gleiche Dokument mehrfach erwischen, wenn es in der Ansicht mehrfach dargestellt wird.

Der Titel dines Posts deutet aber eigentlich etwas Drittes an: du hast nicht den ganzen Key, sondern nur einen Teil. Wenn das "hintere Ende" fehlt, hilft dir der zweite Parameter eines GetAllDocumentsbykey weiter. Typisches Beispiel: gestaffelt inhaltsorientierte Produktnummern. Wenn das Produkt durch die ersten 4 Stellen, die Produktvariante durch die Stellen 5 und 6 und die Verpackung durch die Stellen 7 und 8 ausgedrückt wird, kannst du mit einem 4- oder 6-stelligen Key die vorhandene Staffelung ansprechen.

Wenn dir das "vordere Ende" des Keys fehlt, mußt du über alle Dokumente laufen. Im Beispiel oben: alle Produkte und Varianten zu einer gegebenen Verpackungsart lassen sich in einer rein produktnummernorientierten Ansicht nicht mit einem Statement in eine Collection fassen.

Gruß

Norbert
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: Thomas Schulte am 23.02.09 - 11:11:13
Ähh lassen sie doch. Mit FTSearch.
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: LN4ever am 23.02.09 - 11:50:40
Lieber Thomas,

mit FTSearch kann man in den Suchstring natürlich @Formula-Dinge wie MATCHES, LEFT, MID usw. einbauen, aber der LS-Script-Befehl GETALLDOCUMENTSBYKEY ist nur am rechten Ende mit dem zweiten Parameter FALSE trunkierbar.

Danke dennoch für deine Klarstellung.

Gruß

Norbert
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: bikerboy am 24.02.09 - 10:42:04
huhu,

also ich wollte keinen walk the view machen und ein db.search fällt auch aus, da die db nicht indieziert ist.

habe nun doch erstmal eine ansicht gebaut in der alle doks drin sind und habe als spaltenformel ein fach "1" angegeben.
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: koehlerbv am 24.02.09 - 12:09:02
Robert, Du verwechselst da etwas: NotesDatabase.Search benötigt keinen FTI - es nützt diesen nicht einmal, wenn er da wäre.

Bernhard
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: Hardcore-Hoschie am 24.02.09 - 14:10:58
Hi,

warum holst Du dir nicht einfach alle (Dokumenten) entries mittels NotesView.AllEntries? An die Doks kommst Du dann ja problemlos über die Document Eigenschaft des jeweiligen Entries...

Gruß, der Hoschie
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: bikerboy am 24.02.09 - 15:08:58
@Bernhard

Mist hab ich mit FTSearch verwechselt.

@Hoschie

Ich möchte nicht erste das Entry im Speicher haben nur um an das  Dokument zu kommen.
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: koehlerbv am 24.02.09 - 15:11:22
Was glaubst Du denn, was Du mit einer NotesDocumentCollection im Speicher hast? Da ist die NotesViewEntryCollection ein Zwerg dagegen.

Bernhard
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: bikerboy am 25.02.09 - 11:29:08
gut habe das ganze mal mit den entrys gemacht, habe keinen unterschied festgestellt. und ich hatte den vorteil, dass die dinger nun sortiert sind wie in der ansicht.

so nebenbei es gibt keine möglichkeit listen zu sortieren, ausser ich schreibe selbst was oder ?

Habe nen Quicksort für Arrays gefunden, aber ein Array kann ja nicht mehr als 32.000 einträge haben und ich habe nun mal bis zu 170.000 im Moment , Tendenz steigend.

Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: koehlerbv am 25.02.09 - 11:35:22
Entries, Robert  ;)

Wegen dem Sortieren: Schau Dir mal List-Variable an  ;)

Bernhard
Titel: Re: Wildcard für GetAllDocumentsByKey()
Beitrag von: Thomas Schulte am 25.02.09 - 12:14:13
Lieber Thomas,

mit FTSearch kann man in den Suchstring natürlich @Formula-Dinge wie MATCHES, LEFT, MID usw. einbauen, aber der LS-Script-Befehl GETALLDOCUMENTSBYKEY ist nur am rechten Ende mit dem zweiten Parameter FALSE trunkierbar.

Danke dennoch für deine Klarstellung.

Gruß

Norbert

Hi Norbert.

Da bin ich jetzt nicht ganz damit einverstanden.

Zum Beispiel geht in der Volltextsuche ein
Code
[Subject] Contains *uster 
um alle Einträge in deiner Mail Anwendung zu finden deren Subject den wert "uster" am ende eine Wortes enthält. Und nur die. Lass das "er" weg und du erhältst nur noch die Einträge die auf ust enden.

Der FTSearch funktioniert auf die komplette Datenbank. Und für einen FTSearch brauche ich keine Formelsprache.