Page 1 sur 1

Désactivation de l'agent d'absence dans les BD Archives

MessagePublié: 19 Déc 2006 à 14:13
par Pascale
Bonjour,

Afin de résoudre le problème de l'agent qui s'active parfois également dans la BD Archive des utilisateurs (réf bug IBM: http://www-1.ibm.com/support/docview.ws ... wg21084373 - corrigé dans la 7.02? mon serveur est en 7.01 fp1 et le problème persiste)

J'ai mis cet agent dans un bd Admin qui me sert pour deux trois autres trucs et je le lance régulièrement. Il fait le tour des BD dans le répertoire Archive et désactive les éventuels agent d'absence activés.

Code de l'agent:

Code : Tout sélectionner
Sub Initialize
   Dim s As New NotesSession
   Dim curDB As NotesDatabase
   Dim nabDB As NotesDatabase
   Dim db As NotesDatabase
   Dim archiveYear As String
   Dim mailFile As String
   Dim OwnerName As String
   Dim agent As NotesAgent
   Dim nName As NotesName
   Set curDB = s.CurrentDatabase
   Set nabDB = New NotesDatabase(curDB.Server,"names.nsf")
   On Error Goto errorHandler
   
   Print "Started..."
   Dim dbdir As New NotesDbDirectory(curDB.Server)
   Set db = dbdir.GetFirstDatabase(DATABASE)
   While Not(db Is Nothing)
      If Lcase(Left(db.FilePath,8)) = "archive\" Then
         Print "working on " & db.FilePath
         If Left(db.FileName,2) = "a_" Then ' is it an archive database
            Set db = New NotesDatabase(curDB.Server,db.FilePath)
            If db.IsOpen Then
'disable all scheduled agents. for example, out of office
               Forall a In db.Agents
                  If a.Trigger = TRIGGER_SCHEDULED Then
                     If a.IsEnabled Then
                        a.IsEnabled=False
                        Call a.Save
                     End If
                  End If
               End Forall
            End If ' If db.IsOpen Then
         End If 'If Instr(db.Title, "(Archive") = 0 Then
      End If ' If Lcase(Left(db.FilePath,8)) = "archive\" Then
nextUser:
      Set db = dbdir.GetNextDatabase
   Wend
   Print "Stopped..."
   Exit Sub
errorHandler:
   If Err() <> 4005 Then Print Err() & " " & Error()
   Resume nextUser
End Sub


Bonne fin d'année à tous
Pascale