Domino 9 und frühere Versionen > ND8: Entwicklung

Agent für Erstellung von Mailverteiler genötigt

(1/2) > >>

(h)uMan:
Hallo,

ich benötige einen Agenten, der als "manuelle Aktion" in allen Personendokumenten im Domino Directory ein bestimmte Feld auf einen bestimmten Wert überprüft und bei Treffer die Mailadresse aus dem Personendokument in eine festgelegte Gruppe (Mailverteiler) schreibt. Der vorhandene Mailverteiler kann überschrieben werden.

Hat jemand schon mal etwas vergleichbares gemacht und/oder könnte mir Tipps geben?

Bin kein Entwickler, aber mit etwas "Input" und Starthilfe ...

Vielen Dank schon mal!

ascabg:
Hallo,

Ja.


Andreas

eknori:
Auto-populate groups nachbauener will , junger Padavan.
Dies soll lesen er dazu: http://www.eknori.de/2008-06-23/autopopulategroup-scheduled-agent/

(h)uMan:
@eknori: gelesen und halb verstanden ich habe. Probieren ich werde ...

(h)uMan:
mit Hilfe eines Kollegen aus unserer Entwicklung nutzen wir nun folgenden Code für den Agenten:

-----------------------
Option Public
Option Explicit
Sub Initialize
'#
' Agent findet alle Dokumente in der names.nsf, die eine "1" in dem
' Feld "PhoneNumber_6" (entspricht "Pager Number") haben,
' holt sich daraus die Abbreviated-Namen und schreibt diese in das
' Feld "Members" der Gruppe "Mitarbeiter".
'#
   Dim NamesDB As NotesDatabase
   Dim dateTime As New NotesDateTime("12/01/94")               
   Dim Coll As NotesDocumentCollection
   Dim sSuchString As String
   Dim Doc As NotesDocument
   Dim oNameOwner As NotesName
   Dim aVerteiler() As String
   Dim nCounter As Integer
   
   nCounter = 0
   Set NamesDB = New NotesDatabase( "domino/server", "names.nsf")     
   sSuchString = "PhoneNumber_6='1'"
   Set Coll = NamesDB.Search(sSuchString,  dateTime, 0)
   Msgbox Trim(Str(Coll.Count)) + " Mitarbeiter gefunden." + Chr(13) + "Ok für weiter...."
   If Coll.Count > 0 Then     
      Redim Preserve aVerteiler(Coll.Count)
      Set Doc = Coll.GetFirstDocument()
      While Not Doc Is Nothing
         Set oNameOwner = New NotesName(Doc.GetItemValue ( "FullName" )(0) )
         If oNameOwner.Abbreviated = "" Then
            Msgbox "Keinen Abbreviated-Namen gefunden bei: " +Doc.GetItemValue ( "FullName" )(0)
         Else
            aVerteiler(nCounter) = oNameOwner.Abbreviated
            nCounter = nCounter +1
         End If         
         Set Doc = Coll.getnextdocument(Doc)
      Wend
   Else
      Msgbox "Es wurden keine Dokumente gefunden!"
      Exit Sub
   End If
   
   sSuchString = "ListName='Mitarbeiter'"
   Set Coll = NamesDB.Search(sSuchString,  dateTime, 0)
   If Coll.Count = 1 Then     
      Set Doc = Coll.GetFirstDocument()
      Doc.replaceItemValue  "Members", aVerteiler
      Doc.Save True, False,True
      Msgbox "Das Feld Members der Gruppe Mitarbeiter wurde erfolgreich neu geschrieben." + Chr(13) + "Programmende."
   Else
      Msgbox "Abbruch!" +Chr(13) + "Die Gruppe Mitarbeiter wurde nicht eindeutig gefunden!" + Chr(13) + "Programmende."
   End If
   
End Sub

----------------------------

Vorschläge zur Optimierung sind gerne willkommen ;-)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln