Erstell Dir einen Agenten mit folgenden Code Anschließend Dokumente auswählen und den Agenten starten:
Sub Initialize
Dim savecount%, tempstring$, itemstring$
Dim flag As Integer
Dim workspace As New Notesuiworkspace
Dim session As New Notessession
Dim thisdb As Notesdatabase
Dim collection As Notesdocumentcollection
Dim doc As Notesdocument
Dim dialogdoc As Notesdocument
Dim newdoc As Notesdocument
Dim tempitem As Notesitem
Dim dialogformname As String
Dim dialogform As NotesForm
Dim totalcount As Integer
Dim savedcount As Integer
Set thisdb = session.currentdatabase
Set collection = thisdb.unprocesseddocuments
totalcount = collection.count
Set dialogdoc = thisdb.createdocument
Set newdoc = thisdb.createdocument
Set doc = collection.GetFirstDocument
doc.ParentView.autoupdate = False
' Show copy of first selected document in dialog box
Call doc.CopyAllItems( dialogdoc )
'Get form name
Set tempitem = dialogdoc.GetFirstItem("Form")
If tempitem Is Nothing Then
dialogformname = ""
Else
' If Notesitem.Text property is empty or null (or anything but text), useempty string
Select Case Datatype(tempitem.text)
Case 8: dialogformname = tempitem.text
Case Else: dialogformname = ""
End Select
End If
Do
If dialogformname = "" Then
dialogformname = Inputbox( "Geben Sie einen Maskennamen für die Dokumentenbearbeitung ein, oder CANCEL zum Beenden." , "Maske nicht gefunden" )
If dialogformname = "" Then
Print "Sie haben keinen Maskennamen eingegeben, es wurden keine Änderungen vorgenommen."
Exit Sub
End If
End If
Set dialogform = thisdb.GetForm( dialogformname )
If dialogform Is Nothing Then dialogformname = ""
Loop Until dialogformname <> ""
flag = Workspace.DialogBox( dialogformname ,True,True,False,False,False,False,"Wenn Sie mit OK bestätigen, werden die Änderungen in allen ausgewählten Dokumenten übernommen !", dialogdoc,True,False)
If flag = False Then
Print "Der Dialog wurde abgebrochen, es wurden keine Änderungen vorgenommen."
Exit Sub
End If
Forall item In dialogdoc.items
If Datatype(item.text) = 8 Then
itemstring$ = item.text
Else
itemstring$ = ""
End If
Set tempitem = doc.GetFirstItem(item.name)
If tempitem Is Nothing Then
tempstring$ = ""
Elseif Datatype(tempitem.text) = 8 Then
tempstring$ = tempitem.text
Else
tempstring$ = ""
End If
If itemstring$ <> tempstring$ Then
Call item.copyitemtodocument(newdoc, "")
End If
End Forall
While Not doc Is Nothing
Call newdoc.CopyAllItems( doc, True )
savecount = savecount + 1
Print totalcount & " Dokumente gewählt, " & savecount & " Dokumente geändert"
Call doc.save(True, True, True)
Set doc = collection.GetNextDocument(doc)
Wend
End Sub