Autor Thema: GetAlldocumentsByKey vs. GetDocumentByKey + GetNetxDocument  (Gelesen 1304 mal)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Hi Folks,

ich grüble gerade über einem Problem. Vielleicht könnt ihr mir helfen.

Aufgabenstellung:

Eine Reihe von Dokumenten soll bearbeitet (exportiert) werden. Welche Dokumente exportiert werden sollen, wird anhand von Feldwerten ermittelt. Das relevante Feld ist ein Feld mit Mehrfachwerten, welches ID Nummern enthält (die ID Nummern beziehen sich nicht auf das Dokument, sondern auf Personen). Ich will beispielsweise alle Dokumente ausgeben, die Person X zugeordnet sind. Person X hat die ID Nummer "12345" und ich will jetzt alle Dokumente ausgeben, welche in dem Feld "IDNummern" die spezielle ID Nummer "12345" enthalten ist.

Der Clou ist, die Dokumente sollen in exakt der Reihenfolge ausgegeben werden, die in der Ansicht, in der die Dokumente herausgesucht werden, vorhanden ist.

Lösungsansätze:

Die Funktion GetAllDocumentsByKey ist problematisch, da diese eine DocumentCollection zurückliefert, in welcher die Dokumente aber *nicht* in der Reihenfolge enthalten sind, welche sie in der entsprechenden Ansicht haben.

Mein Ansatz ist nun, dass ich GetDocumentByKey verwende, um das erste Dokument zu ermitteln und dann mittels GetNextDocument schrittweise die folgenden Dokumente durchlaufe. Hierbei wird in der entsprechenden Ansicht in der ersten Spalte das Feld "IDNummern" aufsteigend sortiert angezeigt, wobei Mehrfachwerte getrennt angezeigt werden.

Probleme:

Die Funktion GetNextDocument prüft natürlich nicht mehr die Bedingung, mit der das erste Dokument per GetDocumentByKey gefunden wurde. Ich muss also im Code berücksichtigen, dass die Urspungsbedingung (enthält das Feld "IDNummern" die Nummer "12345") erfüllt ist. Das Problem hierbei ist, dass das Feld "IDNummern" Mehrfachwerte zulässt (und zulassen *muss*). So kann es passieren, dass - nachdem alle Dokumente ermittelt wurden, indem die erste Spalte der Ansicht, Mehrfachwerte getrennt, ausgewertet wurde - das nächste Dokument zwar nicht mehr die Suchbedingung erfüllen würde, wenn man GetAllDocumentsByKey verwenden würde, aber dennoch im Feld "IDNummern" die zu suchende ID enthält. Ein Dokument darf/soll aber nicht doppelt bearbeitet werden.

Für die Kombination GetDocumentByKey und GetNextDocument muss ich also eine gesonderte Abbruchbedingung definieren. Hierzu habe ich spontan zwei Ideen:

1. In einem versteckten Feld ein Flag "bearbeitet" setzen - das ist deswegen problematisch, weil zwei Suchanfragen zeitnah hintereinander abgesetzt unterschiedliche Ergebnisse bringen könnten; zweimal dieselbe Suche bringt beim zweiten mal keine Ergebnisse mehr (die Dokumente stehen bereits auf "bearbeitet")

2. Im Skript selber merke ich mir anhand der DocIDs oder UNIDs, welche Dokumente bereits bearbeitet wurden. Treffe ich auf ein bereits bearbeitetes Dokument, ist dies eine Abbruchbedingung.

Ich hoffe, ich habe mich überhaupt verständlich ausgedrück. Falls nicht: fragen!

Habt ihr Ideen/Anmerkungen dazu? Vielleicht eine komplett andere Vorgehensweise?

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:GetAlldocumentsByKey vs. GetDocumentByKey + GetNetxDocument
« Antwort #1 am: 01.04.04 - 14:11:22 »
Hilft Dir da nicht die ViewEntryCollection class ?

Zitat
Represents a collection of view entries, selected according to specific criteria. This class mainly provides you with a collection of documents in a view-sorted order.

HTH,
Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:GetAlldocumentsByKey vs. GetDocumentByKey + GetNetxDocument
« Antwort #2 am: 01.04.04 - 14:22:55 »
Die beiden Ansätze sind nicht wirklich fertig ausgekocht und werfen noch ein paar Fragen, neben dem, dass Bernhard wohl mit seinem Ansatz 3 den richtigen Weg aufzeigt, die viewEntryCollection bringt die Sache in View-Reihenfolge
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:GetAlldocumentsByKey vs. GetDocumentByKey + GetNetxDocument
« Antwort #3 am: 01.04.04 - 14:36:56 »
Vielen Dank, das scheint mir auf den ersten Blick weiterzuhelfen.

Bisher habe ich nicht mit den ViewEntry Klassen nicht gearbeitet. Ich bin irrigerweise davon ausgegangen, dass diese sich ausschliesslich auf das beschränken, was in der View angezeigt wird, ohne Zugriff auf die Dokumente, welche dahinter liegen.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz