Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jack am 15.03.05 - 16:03:27

Titel: Mailadress im Names.nsf
Beitrag von: jack am 15.03.05 - 16:03:27
Hallo Leute,
 :(
Kann mir jemand helfen, warum der agent nicht tut, was er tun soll.
Er soll in der DB aus dem Namensfeld “Mailadress“, in dem der User die gewüschte Weiterleitungsadresse einträgt, den Wert holen und im domino verzeichnis nach dem User suchen, der sich angemeldet hat und in seinem personen dokument in das Feld „Mailadress“
diese Adresse eintragen. Hat jemand vielleicht eine Idee??

Danke für die Hilfe

Gruß Jack



Sub Initialize
   
   ' code by Bob Pratico of K2ITS
   ' version 2.6 (02/11/02)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim j As Integer
   Dim str_array As Variant
   Dim ChosenUsername As String
   Dim Mailadress As String
   Dim num_docs As Integer
   Dim dateTime As New NotesDateTime("1/1/97")
   
   Dim aLog As New NotesLog("Agent log")
   Call aLog.OpenAgentLog
   
   On Error Goto ErrorHandler
   
   Set doc = session.DocumentContext   
   Set db = session.CurrentDatabase
   
   
   
   Call aLog.LogAction("Agent executing by " & doc.NotesUserNameDisplayed(0))
   
   Dim NamesDb As New NotesDatabase("", "NAMES.nsf")
   Dim FoundList As NotesDocumentCollection
   Dim NameDoc
   Dim eval As Variant
   
   
   str_array = doc.GetItemValue("NotesUserName")
   ChosenUsername = str_array(0)
   
   str_array = doc.GetItemValue("Mailadress")
   Mailadress = str_array(0)
   
          ' Search all the NABs on this server for a
          ' document that contains the ChosenUsername in
          ' the FullName field. Then you need to set the
          ' HTTPassword field in this document to the
          ' ChosenPassword value.  Finally save this document
          ' in the Name and Address Book.  At this time you can
          ' also delete the document in the SetPassword database
          ' that triggered this change.  Otherwise every time the
          ' agent ran, it would just set the password over and over again.
   
'               Set FoundList = NamesDb.Search("ShortName = """ + ChosenUsername + """", dateTime, 0)
   
   Dim books As Variant
   Dim view As NotesView
   Dim done As Variant
   
   books = session.AddressBooks
   done = False
   
   Forall b In books
' check every Domino Directory, unless we're already done
      
      If ( b.IsPublicAddressBook ) And ( Not done ) Then
         On Error Resume Next
         Call b.Open( "", "" )
         
' look up server's last name in Servers view of address book
         Set FoundList = b.Search("FullName = """ + ChosenUsername + """", dateTime, 0)
         
         If FoundList.count > 0 Then
            Set NameDoc = FoundList.GetNthDocument(1)
            Messagebox ChosenPassword
            NameDoc.MailAddress= ChosenPassword
            Call Namedoc.save(True,False)            
            Messagebox Namedoc.fullname(0)
               ' Use @Password formula code to scramble the new password value.
               ' Use LotusScript Evaluate function to execute the formula statement
               ' in LotusScript.
            
            
            
            
         '   Call NameDoc.Save(False, False)
         '   done = True
            Dim flag As Boolean
            flag = NameDoc.Save(True,False)
         '   Print "flag = " & flag
            If flag = False Then
               Print  "<br><br><b><h3> Für diese Aktion sind Sie nicht berechtigt.</H3>"
               done = True
            Else
               Print "<br><br> <b><h3>" + doc.NotesUserNameDisplayed(0) +", Die Weiterlungadresse ist eingetragen.</H3>"
               done = True
            End If
            
NextAddressBook:
            Exit Forall
            
         End If
      End If
   End Forall
   
' if done is still False, the user wasn't found in any Address Book
   If Not done Then
      Print  "Sorry - Ihr Name wurde im  Adressbuch auf diesem Server nicht gefunden."
   End If
   
   'doc.Remove(True)
   Call aLog.Close
   Exit Sub
   
   
ErrorHandler:
   Dim ErrString As String
   ErrString="INITIALIZE : Script Error on Line : " + Cstr(Erl()) + Chr(10)+Chr(10)+"Error Message : " + Error$
   'Print doc.ErrorFieldErrString
   Call aLog.LogAction(ErrString)
   Call aLog.Close
   Exit Sub
   
   
   
End Sub

Titel: Re: Mailadress im Names.nsf
Beitrag von: Driri am 15.03.05 - 16:54:41
Ich habs jetzt aus Zeitmangel nicht durchgelesen, aber schon mal im Debugger nachgesehen, was das Script da so treibt ?
Titel: Re: Mailadress im Names.nsf
Beitrag von: umi am 15.03.05 - 17:36:36
Was sagt das AgentLog?
Titel: Re: Mailadress im Names.nsf
Beitrag von: jack am 15.03.05 - 21:53:55
Hallo,

den Grund habe ich rausgefunden. In den Feldeigenschaften „Sicherheitsoptionen“ war
Mindestens Editorzugrifff...... eingestellt.
Deswegen konnte der Agent das Feld nicht bearbeiten.
Aber trotzdem Merci und Gruß

Jack
Titel: Re: Mailadress im Names.nsf
Beitrag von: jack am 15.03.05 - 21:57:16
Sorry aber
wie kann ich mein posting abschliessen??
 :P
Titel: Re: Mailadress im Names.nsf
Beitrag von: Semeaphoros am 15.03.05 - 21:59:49
Buttong dafür fehlt noch, in den Regeln unter Punkt 3.5 steht eine Notlösung dafür ......
Titel: Re: Mailadress im Names.nsf
Beitrag von: jack am 15.03.05 - 22:06:15
Danke für den Hinweis  :)
Titel: Re: Mailadress im Names.nsf
Beitrag von: TMC am 15.03.05 - 22:14:55
Damit es jeder sicht in der Thread-Übersicht, kannst Du Dein 1. Posting editieren und dort noch den Daumen hoch setzen.

Und vielleicht die überflüssigen Posts hier am Ende löschen, Danke.
Titel: Re: Mailadress im Names.nsf
Beitrag von: jack am 15.03.05 - 22:17:58
Sorry jetzt habe ich es kapiert
Danke
Titel: Re: Mailadress im Names.nsf
Beitrag von: koehlerbv am 15.03.05 - 23:00:18
... den Grund habe ich rausgefunden. In den Feldeigenschaften „Sicherheitsoptionen“ war Mindestens Editorzugrifff...... eingestellt.
Deswegen konnte der Agent das Feld nicht bearbeiten.

Über Risiken und Nebenwirkungen bist Du Dir aber schon im Klaren, Jack ? Ich meine: Warum dort Editorrechte erforderlich waren, was beliebige Änderungen an dem Item bedeuten, was die Design-Änderung für "further upgrades" bedeutet etc. pp. ?
Bisher sehe ich nur, dass Du gefundenen Code eingesetzt hast und an einem simplen Rechteproblem gescheitert bist. Ich würde Dir gerade deswegen dringend darüber nachdenken, inweit Du meinst, "Risiken und Nebenwirkungen" einschätzen zu können.

Bernhard

PS: Sorry für das negative Nachkarten, aber ich glaube nach wie vor, das der Grossteil der Menschen nicht verfährt nach dem Motto "Augen zu und durch (bis es knallt)" ...
Titel: Re: Mailadress im Names.nsf
Beitrag von: jack am 16.03.05 - 08:49:47
Ya du hast Recht. Ich weiß nicht genau, was das für Auswirkungen in Zukunft haben wird.
Gibt es aber einen anderen sicheren Weg, wie wir die Benutzer ermöglichen können, eine Weiterleitungsadresse einzutragen oder ist das nicht möglich ohne Risiken und Nebenwirkungen.
Nee no Sorry  ;)
 ich bin dankbar, wenn mir jemand was beibringt oder Ideen gibt