Domino 9 und frühere Versionen > Entwicklung

periodischer Agent

<< < (3/4) > >>

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