Domino 9 und frühere Versionen > Entwicklung
periodischer Agent
ata:
... hast du die erforderlichen Rechte im Server-Dokument des Servers?
... du kannst die DB auch mit der ID des Servers unterzeichnen, auch das könnte Abhilfe schaffen - vorausgesetzt der Server hat die Berechtigung...
ata
ata:
... ich denke ich bin der Sache auf der Spur. Ich habe die Situation bei mir nachgestellt - da sind Denkfehler bezüglich der Positionierung des Agenten drin...
... soweit ich das übersehe muß der periodische Agent vom Adressbuch aus gestartet werden um dann die Dokumente in deiner Address.DB aktualisieren, bzw. zu exportieren, wenn neue Adressen vorhanden sind...
Wenn ich es heute noch schaffe (hab gerade loose), dann lege ich dir morgen eine Demo vor, so wild ist der Umbau nicht...
ata
ata:
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:
--- 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 #####
--- Ende Code ---
Viel Spaß ...
ata
Ralph:
:)
Danke hat alles geklappt.
Da soll nun einer draufkommen das der Agent in der Quell DB laufen muß. Wobei mir das noch nicht einleuchtet warum es andersrum manuell aber nicht automatisch funktioniert. Vielleich habe ich auch zu einfach gedacht.
Meine Gedanken waren das der periodische Agent "im Prinzip für mich auf den Button clickt " habe ich wohl falsch gedacht :-X
ata:
... machmal ist es besser nicht alles zu verstehen, es lässt einen ruhiger schlafen...
ata
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln