Hallo Ralph,
meine Vermutung war richtig. Der Agent muß aus dem Adressbuch heraus die Dokumente in deiner Zieldatenbank aktualisieren, bzw. hinzufügen.
Ich habe den unteren Code in einen zeitgesteuerten Agent im Initialize eingefügt.
Der Agent gilt für alle Dokumente in der Datenbank, den Terminplan kannst du entsprechend wählen, wie du es brauchst.
Meine Zieldatenbank befindet sich auf demselben Server im Data-Verzeichnis und heißt "Address.nsf" - hier muß du also noch deine Anpassungen fahren.
Und hier der Code:
' # #### Export von Adressen #####
Dim session As New NotesSession
Dim dbExport As NotesDatabase
Dim dbNAB As NotesDatabase
Dim docNAB As NotesDocument
Dim vwParDocID As NotesView
Dim dc As NotesDocumentCollection
Dim sSearch As String
Dim dateTime As NotesDateTime
Set dateTime = New NotesDateTime("01/01/1990")
Dim docNew As NotesDocument
Dim i As Integer
Set dbNAB = session.CurrentDatabase
Set dbExport = session.GetDatabase(dbNAB.Server,"address.nsf")
If dbExport Is Nothing Then
Print "Keine Export-DB gefunden"
Exit Sub
End If
Set vwParDocID = dbExport.getView("PersonByParDocId")
sSearch = | Select Form = "Person" |
Set dc = dbNAB.Search (sSearch ,dateTime,0) ' # alle Personen-Dokumente aus dem NAB
If dc.Count > 0 Then
Set docNAB = dc.GetFirstDocument
For i = 1 To dc.Count
' # Überprüfen. ob es dieses Dokument bereits gibt
Set docNew = vwParDocID.GetDocumentByKey(docNAB.UniversalID)
If docNew Is Nothing Then
' # Die Adresse ist noch nicht vorhanden
Set docNew = dbExport.CreateDocument
With docNew
.Form = "TeleMask"
.ParDocID = docNAB.UniversalID
.LastName = docNAB.LastName
.FirstName = docNAB.FirstName
.OfficePhoneNumber = docNAB.OfficePhoneNumber
.OfficeFaxPhoneNumber = docNAB.OfficeFaxPhoneNumber
.FullName = docNAB.FullName
.CompanyName = docNAB.CompanyName
.Department = docNAB.Department
.Location = docNAB.Location
.MailDomain = docNAB.MailDomain
.MailAdress = docNAB.Address
.InternetAddress = docNAB.InternetAddress
' # ... die gewünschten Felder eben...
Call .Save(True, True)
End With
Else
' # Die Adresse gibt es bereits - akzualisieren
With docNew
.LastName = docNAB.LastName
.FirstName = docNAB.FirstName
.OfficePhoneNumber = docNAB.OfficePhoneNumber
.OfficeFaxPhoneNumber = docNAB.OfficeFaxPhoneNumber
.FullName = docNAB.FullName
.CompanyName = docNAB.CompanyName
.Department = docNAB.Department
.Location = docNAB.Location
.MailDomain = docNAB.MailDomain
.MailAdress = docNAB.Address
.InternetAddress = docNAB.InternetAddress
Call .Save(True, True)
End With
End If
Set docNAB = dc.GetNextDocument(docNAB)
Next
Else
' # Es wurden keine Dokumente gewählt
End If
' # #### ENDE: Übernahme von Adressen #####
Viel Spaß ...
ata