Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skc am 21.01.04 - 09:58:31
-
Hallo Forum,
Ich verlier grad den Überblick den Überblick und brauche Eure Hilfe...
Und zwar möchte ich Dokumente aus einer DB in eine andere kopieren, die das Feld status = "erledigt" besitzen. Das funktioniert auch mit Hilfe von:
...
While Not ( doc Is Nothing )
wert = doc.GetItemValue("status")
Set doctmp = dc.GetNextDocument (doc )
If wert(0) = "erledigt" Then
Call doc.CopyToDatabase(arcdb)
End If
Set doc = doctmp
Wend
...
Jetzt habe ich bemerkt, dass diesen Dokumenten noch weitere Dokumente (eMail, Word-Dokumente,pp.) zugeordnet sind. Als Schlüssel dient hier ein Feld vnr = " 4711".
D.h. ein Dokument besitzt die Felder "status" und "vnr", die diesem Dokument zugeordneten Dokumente lediglich "vnr".
Wie kann erreicht werden, dass alle zusammengehörigen Dokumente kopiert werden? Ich denke, dass es mit einer geschachtelten Schleife möglich ist, habs aber einfach noch nicht gebacken bekommen :-[
Danke!
skc
-
Hi!
Du könntest statt dem Call doc.CopyToDatabase(arcdb)
mit
Set collection = db.Search( {vnr = "} + doc.vnr(0) + {"}, nothing, 0)
alle Dokumente, die im Feld vnr den gleichen Wert haben wie das Hauptdokument. In der Collection ist dann auch das Hauptdokument.
Dann kannst du die Collection mit einer Schleife durchlaufen und die Dokumente in deine arcdb verschieben.
HTH
-rar
-
Hallo rar,
hab deinen Vorschlag ausprobiert. Der Erfolg stellt sich nicht wirklich ein. Wie kann ich den die Collection in die andere DB kopieren? Mit
Call collection.CopyToDatabase(arcdb)
gehts nicht. Hmm... das Prinzip ist mir ja klar, aber an der Umsetzungs scheiterts (noch).
skc
-
Du mußt jedes Dokument einzeln kopieren.
Etwa so:
Set docColl = coll.GetFirstDocument
Do While Not docColl Is Nothing
call docColl.CopyToDatabase(arcdb)
Set docColl = coll.GetNextDocument(docColl)
Loop