Na denn, so sieht's aus. Wenn ich das On Error Resume Next weglasse, krieg ich ne FM (invalid universalid), wenn das Dokument noch nicht da ist:
Option Public
Option Declare
Dim s As notessession
Dim Zieldb As notesdatabase
Dim Quelldb As notesdatabase
Dim selecteddocs As notesdocumentcollection
Dim Quelldoc As notesdocument
Dim Zieldoc As notesdocument
Sub Initialize
Set s = New notessession
Set Quelldb = s.currentdatabase
Set Zieldb = s.getdatabase("","Eigene Datenbanken\Ziel.nsf")
Set selecteddocs = Quelldb.unprocesseddocuments
Set Quelldoc = selecteddocs.getfirstdocument
While Not Quelldoc Is Nothing
If Quelldoc.ZielDocUniqID(0) = "" Then
Call CreateEntry
Else
Call UpdateEntry
End If
Call Zieldoc.save(True,True)
Quelldoc.ZielDocUniqID = Zieldoc.universalid
Call Quelldoc.save(True, True)
Set Quelldoc = selecteddocs.getnextdocument(Quelldoc)
Wend
End Sub
Sub CreateEntry
Set Zieldoc = Zieldb.createdocument
Call Zieldoc.replaceitemvalue("QuellDocUniqID",Quelldoc.universalid)
Call Zieldoc.replaceitemvalue("Form","Maske")
Call Zieldoc.replaceitemvalue("Beruf",Quelldoc.Beruf(0))
End Sub
Sub UpdateEntry
Set Zieldoc = Nothing
On Error Resume Next
Set Zieldoc = Zieldb.getdocumentbyunid(Quelldoc.ZielDocUniqID(0))
If Zieldoc Is Nothing Then
Set Zieldoc = Zieldb.createdocument
End If
Call Zieldoc.replaceitemvalue("QuellDocUniqID",Quelldoc.universalid)
Call Zieldoc.replaceitemvalue("Form","Maske")
Call Zieldoc.replaceitemvalue("Beruf",Quelldoc.Beruf(0))
End Sub
Dann hab ich noch ein Scipt, über das ich die Dokument in der ZielDB wieder rausnehmen kann:
Sub Initialize
Set s = New notessession
Set Quelldb = s.currentdatabase
Set Zieldb = s.getdatabase("","Eigene Datenbanken\Ziel.nsf")
Set selecteddocs = Quelldb.unprocesseddocuments
Set Quelldoc = selecteddocs.getfirstdocument
While Not Quelldoc Is Nothing
Set Zieldoc = Nothing
On Error Resume Next
Set Zieldoc = Zieldb.getdocumentbyunid(Quelldoc.ZielDocUniqID(0))
Call Zieldoc.Remove(True)
Quelldoc.ZielDocUniqID = ""
Call Quelldoc.save(True, True)
Set Quelldoc = selecteddocs.getnextdocument(Quelldoc)
Wend
End Sub
Gruß
Bernd
P.S. Da ist sicher Vieles zu verbessern, ich bin nicht so der Script-Freak