Autor Thema: GetAllDocumentsByKey liefert nur ein Dokument zurück  (Gelesen 1668 mal)

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Morgen ihr,

ab und zu bringt Notes mich schon zum verzweifeln. Ich habe zwar schon eine Lösung für mein Problem gefunden, aber warum das so ist, würde mich schon interessieren.

Folgende Situation:
Ich habe eine Suche in eine DB eingebaut. Bei dieser Suche werden Dokumente in ein SPOFUOrdner verschoben und dann wird der Ordner geöffnet. Vorher muss der Ordner aber geleert werden, dass die Suche auch stimmt. Dazu habe ich in die erste (versteckte, sortierte) Spalte des Ordners die Fomel "xxx" angegeben. Dann such ich mit GetAllDocumentsByKey nach "xxx" und versuche dann mit coll.RemoveAllFromFolder den Ordner zu leeren.
Wenn aber eine hintere Spalte des Ordners kategorisiert ist, liefert GetAllDocumentsByKey nur ein Dokument zurück. Wenn die Spalte nicht kategorisiert ist, stimmt das Ergebnis von GetAllDocumentsByKey. Das kann es doch nicht sein?!? Weiss jemand warum sich Notes da so verhält?  :-:

lG
-daniel
†090620141300

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: GetAllDocumentsByKey liefert nur ein Dokument zurück
« Antwort #1 am: 27.08.06 - 11:55:55 »
Das Entleeren eines Ordners mit einem GetAllDocumentsbykey einzuleiten, ist eine merkwürdige Methode. Einfacher, schneller und sicherer ist doch die folgende Methode

Set db = session.CurrentDatabase
Set view=db.Getview("SPOFUOrdner")
If Not view is Nothing Then
   If view.IsFolder Then
  Set collection = view.AllEntries
  If collection.count>0 Then Call collection.RemoveAllFromFolder( "SPOFUOrdner" )
  Else
     Messagebox "Fehler - kein Ordner"
  End If
End If

Zur allgemeineren Frage: Kategorien hinter sortierten Spalten (die nicht selbst auch Kategorien sind), reagieren beim Zugriff etwas merkwürdig. Obwohl du durch das Backend darauf zugreifst, gibt es hier oft Abhängigkeiten der Collection von der Art, wie du die View von den allgemeinen Vorgaben öffnest. ALL COLLAPSED führt i.A. zu nur einem Dokument. Hast du hingegen den Ordner im Frontend bereits geöffnet gehabt und ein Dokument der Kategorie als Letztes im Zugriff gehabt, dann liefert es dir alle Dokumente, wenn die Ansichtseigenschaft "GEHE ZU ZULETZT GEÖFFNETEM DOKUMENT" für die View eingestellt ist (weil du bei einem Zugriff durch das Frontend die Kategorie damit auch geöffnet hättest).

An der Stelle ist das Objekt-Modell von Notes etwas löcherig.
Situs vilate in isse tabernit.

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: GetAllDocumentsByKey liefert nur ein Dokument zurück
« Antwort #2 am: 28.08.06 - 07:34:12 »
Danke dir für die Infos.
Bei den Kategorien verhält sich Notes echt sehr merkwürdig.... Ist halt schade, dass das Verhalten nicht wirklich logisch ist.

Die Gründe warum ich GetAllDocumentsByKey genommen habe waren folgende:
1.) Ich habe ein bisschen Angst vor view.AllEntries. Wir hatten damit schon mal große Probleme. Der Server (hardwareseitig) hat sich regelmäßig so abgeschossen, dass man den Stecker ziehen musste. (UnserProblem) Aber Wahrscheinlich ist es jetzt eh nicht mehr so...
2.) Mit GetFirstDocument und doc.RemoveFromFolder durchzuschleifen  dauert zu lang.

Ich habe jetzt eine eigene Ansicht (ohne Kategorien) gemacht, such da mit GetAllDocumentsbykey und lösch sie mit RemoveAllFromFolder. So gehts auch.  :D

Während ich das geschrieben habe ist mir aufgefallen, dass es sehr kindisch ist nie mehr view.AllEntries verwenden. Der Bug ist sicher schon behoben. Ich werde es mal umbauen und schauen was passiert. Ich weiss ja wo ich suchen muss, wenn ich durch den Code den Server töte.  >:D

lG
-daniel
†090620141300

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: GetAllDocumentsByKey liefert nur ein Dokument zurück
« Antwort #3 am: 29.08.06 - 11:25:32 »
Ich empfinde es nicht als kindisch, wenn man "alte Fehler", mit denen man schlechte Erfahrungen gemacht hat, meidet. Das ist nur natürlich. Z.B. war es in den mittleren 4er-Versionen so, daß eine Veränderung der Fenstergröße während einer Wartezeit zu einem Red Panic Screen führte. Bis heute rühre ich die Notes-Fenster während der Wartezeit auf die Abarbeitung eines Befehls nicht an.

Wenn man mit gedrückter Steuerungstaste von einer View in eine andere wechselte, brachte der Client den Server zum Absturz, wenn das Dokument ein Konfliktdokument war, das auf sich selbst verwies ($REF = UNID). Bis heute schaue ich bei einem Konflikt immer über die Properties nach, ob sich diese beiden Nummern unterscheiden, bevor ich so die View wechsele.
Situs vilate in isse tabernit.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz