Domino 9 und frühere Versionen > Entwicklung

db.Search funktioniert nicht so richtig

(1/3) > >>

rar:
Hi Leute!
Bei mir liefert Notes eine leere Collection zurück. Das Script ist in einer Schaltfläche eines Antwortdokumentes drin.

Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection      
Dim s As String
Dim doc As NotesDocument
Dim parentUNID As String

Set uidoc = ws.CurrentDocument
Set db = session.CurrentDatabase
Set doc = uidoc.Document
parentUNID = doc.ParentDocumentUNID
s = {$Ref = "} + ParentUNID + {"}
Set coll = db.Search( s,Nothing,0 )

Theoretisch sollten in der coll alle Antworten des Hauptdokumentes stehen. Tun sie aber nicht :-/
Hat jemand eine Ahnung, warum dem so ist?

-rar

Axel:
Hi,

mach es doch über die Eigenschaft Responses der NotesDocument-Klasse.

...
Dim parantdoc As NotesDocument

Set db = session.CurrentDatabase
Set doc = uidoc.Document
Set parentdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID )

Set coll = parentdoc.Responses
...


Ist, denk ich mal einfacher und sollte auch funktionieren.


Axel

rar:
Das geht nicht so einfach.
Es ist ein ähnliches Problem wie das JaNein-Problem von hmarco
(http://www.atnotes.de/cgi-bin/yabb/YaBB.pl?board=002-2;action=display;num=1028638014)

Nur schaut es bei mir so aus:
Viele, viele Antwortdokumente, die aber alle Leserfelder drin haben. Jetzt gibt es ein Verantwortlichen für nur ein Antwortdoc, der auch nur seine Antwort sieht.
Wenn er dann sein Status auf erledigt setzt, soll im Hauptdoc der Status dann auf erledigt gesetzt werden, wenn alle Antworten erledigt sind.
Da der Verantwortliche aber nur ein doc sieht, stehen in den Responses zwar alle Antworten des Hauptdocs drin, aber die Items sind leer. Deshalb kann ich auch nicht abfragen, ob ein doc nicht erledigt ist.

Jetzt dachte ich mir, daß ich mit einem Search alle Antwortdokumente hole in denen der Status nicht erledigt ist. Wenn er keines findet, kann ich den Status im Hauptdoc ändern. Ob in der collection vom Search die Antworten als leere docs sind (wie bei doc.Responses) , ist mit dann wurscht.

Ist ein bischen komisch, aber mir fällt nichts anderes ein. Ich bin mir nicht einmal sicher, ob das überhaupt klappt. :-/
-rar

Axel:
Hi,

könnte sein das es nicht klappt, denn wenn mit doc.Responses die Felder leer sind, dann kann auch search nichts finden. Denn es liest ja die Feldinhalte.

Wäre eine Erklärung, denn dein Script sieht ok aus.

Alternativ fällt mir dazu nur ein getriggerter Agent ein, der auf dem Server läuft und die Statusfelder prüft.


Axel

rar:
An den Agent habe ich auch schon gedacht. Gefällt mir zwar nicht, aber wenn nix geht, wird es das werden.
Ich möchte es vorher aber auf jeden fall mit dem Search noch probieren.
Leider findet das Scriptl in einer TestDb ohne Leserfelder auch keine Antworten. Und ich weiß nicht warum... :'(
-dani

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln