Autor Thema: Agent für Erstellung von Mailverteiler genötigt  (Gelesen 5018 mal)

Offline (h)uMan

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.054
  • Geschlecht: Männlich
  • Wird schon ...
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!
Beste Grüße, Uwe

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.696
  • Geschlecht: Männlich
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #1 am: 15.12.09 - 09:31:58 »
Hallo,

Ja.


Andreas

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.718
  • Geschlecht: Männlich
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #2 am: 15.12.09 - 09:59:57 »
Auto-populate groups nachbauener will , junger Padavan.
Dies soll lesen er dazu: http://www.eknori.de/2008-06-23/autopopulategroup-scheduled-agent/
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline (h)uMan

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.054
  • Geschlecht: Männlich
  • Wird schon ...
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #3 am: 15.12.09 - 11:30:45 »
@eknori: gelesen und halb verstanden ich habe. Probieren ich werde ...
Beste Grüße, Uwe

Offline (h)uMan

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.054
  • Geschlecht: Männlich
  • Wird schon ...
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #4 am: 17.12.09 - 16:38:18 »
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 ;-)
Beste Grüße, Uwe

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.718
  • Geschlecht: Männlich
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #5 am: 17.12.09 - 16:51:30 »
Zitat
Vorschläge zur Optimierung sind gerne willkommen ;-)
Baue den Agenten in eine separate DB ein, paare das Ganze mit einem Konfigurationsdokument, welches die Selektionsformel und die Zielgruppe aufnimmt und schwupps hast du ein konfigurierbares Pfleg-Die-Gruppen-Instrument.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #6 am: 17.12.09 - 16:57:09 »
Hallo Uwe,

was entwickeln die Kollegen der Abteilung denn normalerweise?  ;D

Funktionstüchtig ist das Teil offensichtlich, aber es fallen gleich drei Dinge auf, die meine Stirn runzeln: Warum wird das Item "FullName" verwendet statt Owner? Da muss im ersten Element nicht zwingend der gewünschte Eintrag stehen (das Ding ist ja auch editierbar)? Warum wird die abbreviated Form übernommen statt der canonical name? Warum wird extra ein Date/Time-Objekt gebildet und wahlfrei belegt anstatt als Parameter für NotesDatabase.Search gleich Nothing zu verwenden?

Bernhard

Offline (h)uMan

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.054
  • Geschlecht: Männlich
  • Wird schon ...
Re: Agent für Erstellung von Mailverteiler genötigt
« Antwort #7 am: 17.12.09 - 17:44:14 »
Zitat
was entwickeln die Kollegen der Abteilung denn normalerweise? 
Nette Dinge mit MS VS und SQL

Warum wird das Item "FullName" verwendet statt Owner? Da muss im ersten Element nicht zwingend der gewünschte Eintrag stehen (das Ding ist ja auch editierbar)?
Bei wenigen PersDoks war kein Eintrag im Feld "Owner". Das "Warum?" prüfen wir gerade und dann nehmen wir "Owner".

Zitat
Warum wird die abbreviated Form übernommen statt der canonical name?
Unwissenheit. Ändern wir.

Zitat
Warum wird extra ein Date/Time-Objekt gebildet und wahlfrei belegt anstatt als Parameter für NotesDatabase.Search gleich Nothing zu verwenden?
weil der Kollege das nicht besser weiß ... wird aber noch ;-)
Beste Grüße, Uwe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz