Autor Thema: Reihenfolge der Dokumente in db.unprocessedDocuments  (Gelesen 4922 mal)

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Hallo,

ist meine Vermutung richtig, dass die Reihenfolge der Dokumente von db.unprocessedDocuments nicht vorhersehbar ist?

Ich hätte mir jetzt gewünscht (träum...) das man die einzelnen Dokumente genau in der gleichen Reihenfolge iterieren kann wie sie in der Ansicht erscheinen.
Das ist für mich deshalb wichtig, weil sich im ersten Dokument  Daten befinden, die in die folgenden markierten Dokumente übertragen werden sollen. Wenn jetzt aber als erstes Dokument ein beliebiges Dokument aus der gesamten collection geliefert wird, dann funktioniert das nicht.
Gibt es es vielleicht eine Möglichkeit eine Brücke zur viewentrycollection zu schlagen? Da soll ja die Reihenfolge einbehalten werden. Das sehe ich zur Zeit aber nur durch ein Ablatschen der Collection. Bei mehreren zehntausend bis einige hunderttausend Dokumente scheint mir das keine gute Lösung zu sein.

Danke schön für Hinweise die meine eingehende Frage beantworten, oder Tipps wie ich an das erste Dokument von unprocessedDocuments komme.

Bernd
« Letzte Änderung: 10.02.10 - 15:02:11 von Hatschi »


Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #2 am: 10.02.10 - 14:29:51 »
Hallo Andreas,

danke für den Link. Der Hinweis mit dem Datum erklärt nun auch, warum es mit meinen Testdaten funktioniert hat!

Um jetzt wirklich an den ersten Eintrag zu kommen, sehe ich nur folgende Möglichkeit:
NotesViewentryCollection ablatschen, und für jeden Eintrag prüfen ob die UNID sich auch in meiner Collection befindet. Falls ja, wäre das erste Dokument gefunden. Aber das halte ich nicht für praktikabel. Bei z.B. 500 markierten Dokumenten in einer Ansicht mit 35.000 Dokumenten wäre das bestimmt nicht der Renner.

Dann muß ich mir einen anderen Lösungsansatz suchen.

Bernd

Glombi

  • Gast
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #3 am: 10.02.10 - 14:38:53 »
Du kannst mit
Set checkdoc = notesDocumentCollection.GetDocument( doc )
prüfen, ob das Dokument in der Collection ist. Falls nicht, ist checkdoc = Nothing.

Das ist performant und Du brauchst nicht durch die Collection nudeln.

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #4 am: 10.02.10 - 15:01:54 »
Ahhhh Super! Das ist eine Idee.

coll = Sammlung zu bearbeitender Dokumente
Schleife über die NotesviewEntryCollection

  wenn coll.getdocument(Notesviewentry.document) gefunden --> erstes Dokument und abbrechen

sonst nächsten Eintrag der ViewentryCollection

Vielen Dank,

Bernd

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #5 am: 10.02.10 - 15:52:13 »
Nachtrag zur Performance:
Tests auf dem Server mit 900 Dokumenten.
Markiere ich eines der letzten Dokumente, werden zwischen 4 und 5 Sekunden dafür benötigt.
Die Schleife die das prüft schafft demnach ungefähr 200 Dokumente in der Sekunde. Da es erst einmal ein  Administrationsagent sein soll, kann ich noch damit leben.


Print "Ich suche den ersten markierten Eintrag"
Set view=ws.CurrentView.View
Set ViewEntryCollection=view.AllEntries
Set entry=ViewEntryCollection.GetFirstEntry
Do While Not entry Is Nothing
   Set doc=coll.GetDocument(entry.Document)
   If Not doc Is Nothing Then
      'Der Eintrag wurde gefunden, also raus aus der Schleife
      Exit Do
   End If
   Set entry=ViewEntryCollection.GetNextEntry(entry)
Loop

Die Last auf dem Server ist aber bestimmt auch nicht ohne.

Bernd

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #6 am: 10.02.10 - 16:07:32 »
Sortiere Dir doch die Collection nach den gleichen Kriterien wie in der Ansicht um. Dann wird die benötigte Zeit eher gegen nicht messbar sein.

Bernhard

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #7 am: 10.02.10 - 16:31:55 »
Hallo Bernhard,

das verstehe ich jetzt nicht. Welche Collection sortieren? Die ViewEntryCollection oder die unprocessedDocuments? Die ViewEntryCollection ist doch schon sortiert wie in der Ansicht. Also meinst du wahrscheinlich die unprocessedDocuments.
Wie kann ich die denn sortieren? Umkopieren in eine neue leere Collection?
Ich weiß aber noch nicht so ganz wo dann der zeitliche Gewinn herkommen soll? Meinst du das der coll.getDocument() so viel Zeit verbrät?

Hmm, das waren jetzt aber viele neue Fragen. Kannst du mir auf die Sprünge helfen.

Bernd
« Letzte Änderung: 10.02.10 - 16:34:53 von Hatschi »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #8 am: 10.02.10 - 16:35:40 »
Ich meine die Collection der Unprocessed documents. Und die Zeit verbrätst Du ja mit dem Durchlaufen und Abprüfen der gesamten ViewEntryCollection, wei Du selbst schon ausgemessen hast.

HTH,
Bernhard

Offline diam

  • Frischling
  • *
  • Beiträge: 6
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #9 am: 11.02.10 - 15:28:00 »
Hallo!

Kannst Du nicht alle markierte Dokumente in einen leeren und gleichsortieren Ordner verschieben. Dann ist das erste ausgewählte Dokument, das erste Dokument der NotesViewEntryCollection.

Das könnte sogar alles per Script gehen, wenn viele Voraussetzungen erfüllt sind.

Dirk

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #10 am: 11.02.10 - 17:07:58 »
Hallo!

Kannst Du nicht alle markierte Dokumente in einen leeren und gleichsortieren Ordner verschieben. Dann ist das erste ausgewählte Dokument, das erste Dokument der NotesViewEntryCollection.

Das könnte sogar alles per Script gehen, wenn viele Voraussetzungen erfüllt sind.

Dirk

Da gibt's aber eine ganze Reihe an Fallstricken zu beachten.

Die Ordner müssen private Ordner sein, damit sich die User nicht ins Gehege kommen. Die lassen sich aber nicht so einfach per Script anlegen. Wenn du eine andere Sortierung brauchst lassen sich diese Ordner nur sehr schwer bis gar nicht anpassen.

Diese Lösung muss m.E. gut überlegt sein. Ich gebe zu, dass ich so ein Konstrukt in grauer Vorzeit auch mal eingesetzt habe und es eigentlich bis heute auch ohne größere Probleme funktioniert. Allerdings waren an der Stelle bisher keinerlei Anpassungen notwendig.

Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #11 am: 11.02.10 - 17:21:35 »
So wie ich dich verstehe, willst du das erste Dokument "gesondert" behandeln?

Kannst du den "Adminstrator" der das Tool einsetzt, soweit erziehen (ich weiß, ist schwierig), dass er das Caret auf das erste Dokument setzt.

Gruß
Roland
Roland Praml

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

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Reihenfolge der Dokumente in db.unprocessedDocuments
« Antwort #13 am: 12.02.10 - 09:08:24 »
Guten Morgen zusammen!

Da sind ja noch eine Menge Anregungen gekommen. Aber weil der Agent aus mehreren Ansichten heraus gestartet werden soll, wäre eine Anpassung der Sortierungen für über 10 verschiedene Ansichten mit entsprechend viel Aufwand verbunden. Der Link von Thomas vervollständigt Bernhards Idee die Positionierung zu beschleunigen.

Rolands Hinweis den Admin zu erziehen würde ich ja vielleicht noch hinbekommen. Dann habe ich mich aber gefragt, wie ich denn an das ausgewählte Dokument komme und noch einmal die Klassen geprüft. In der NotesUIView bin ich dann fündig geworden. Mit notesUIView.CaretNoteID könnte ich das Dokument holen, auf dem der Cursor steht. Dieses Dokument dient dann zur Vorgabe für die anderen markierten zu ändernde Dokumente.
Am einfachsten wäre dann die Auswahl der zu ändernden Dokumente von unten nach oben. Dann bleibt das Caret automatisch auf dem richtigen Dokument stehen.

Es hat mal wieder Spaß gemacht mit euch zu diskutieren! Vielen Dank dafür.

Bernd

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz