Problem Administration oder Entwicklung?

  • Hallo zusammen,


    bei uns im Haus ist die Entwicklung und die Administration getrennt, weshalb ich mit meinem Problem nicht weiterkomme. Aber vielleicht wisst ihr einen Rat.


    In unserer eigenentwickelten Telefondatenbank mit vielen Informationen rund um unsere Mitarbeiter habe ich über eine Verknüpfung die persönliche E-Mail-Adressen aus dem öffentlichen Adressbuch angezeigt.


    Das funktioniert einwandfrei. Über einen Hotspot mit entsprechender Formel wird ein neues Memo in der persönlichen E-Mail-DB gestartet und die E-Mail-Adresse aus der Telefondatenbank als Empfänger eingetragen.


    Und nun der Haken: Sobald der Benutzer geringere Rechte als Editor (also schon ab Autor) hat, kommt folgende Fehlermeldung:


    "Notes errror: Sie sind zur Durchführung dieser Operation nicht berechtigt"


    Leider kann mir unser Admin nicht weiterhelfen. Wieso kann ein Benutzer nicht seine eigene persönliche E-Mail-DB aufrufen, wenn er lediglich eine E-Mail-Adresse übertragen will?


    Für einen treffenden Hinweis wäre ich dankbar!

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...

  • Das Zugriffsrecht bezieht sich auf die Telefon-DB!


    Meines Wissens hat ja wohl jeder Benutzer bei der persönlichen Mail-DB Editoren, wenn nicht sogar Manager-Rechte, oder?

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...

  • Hallo taurec,


    schön Dich mal wieder als Helfer zu haben!!!


    Formel Hotspot:


    @Command([ToolsRunMacro];"(AgentMailMemo)")


    Agent (Options):


    Option Public
    Use "MailLibrary_de-DE"


    Agent (Initialize):


    Sub Initialize
    'declare local variables
    Dim x As Integer

    'instantiate objects
    InstantiateVariables

    If Not collection Is Nothing Then
    If (collection.Count = 0) Then
    Messagebox "Es wurden keine Dokumente ausgewählt.",0,"Fehler"
    Exit Sub
    End If
    Else
    Exit Sub
    End If

    Redim SendToNames(collection.Count-1)

    'for each document in the collection, get the mail address
    'we use the GetNth method since the resulting collection is an IDTable
    For x = 1 To collection.Count
    Set note = collection.GetNthDocument(x)
    SendToNames(counter) = GetMailAddress
    counter = counter + 1
    Next

    Set mailnote = New NotesDocument(maildb)
    mailnote.SendTo = SendToNames
    mailnote.Form = "Memo"
    mailnote.Logo = profile.DefaultLogo(0)
    mailnote.Principal = profile.Owner(0)

    Call ws.EditDocument(True,mailnote)
    End Sub



    Script (Options):


    Option Public
    %INCLUDE "lsconst.lss"


    Script (Declarations):


    Const ERROR_TITLE = "Fehler"
    Const ERROR_MSG_2 = "Bitte prüfen Sie, ob sie ordnungsgemäß in der aktuellen Arbeitsumgebung eingetragen ist."
    Const ERROR_MSG_1 = "Ihre Mail-Datei konnte nicht geöffnet werden."


    Dim ws As NotesUIWorkspace


    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim maildb As NotesDatabase
    Dim note As NotesDocument
    Dim mailnote As NotesDocument
    Dim collection As NotesDocumentCollection
    Dim profile As NotesDocument


    Dim SendToNames() As String
    Dim counter As Integer
    Dim flag As Variant


    Script (InstantiateVariables):


    Sub InstantiateVariables
    Set ws = New NotesUIWorkspace
    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set maildb = New NotesDatabase("","")
    maildb.OpenMail

    ' check to make sure that we got the mail file opened
    flag = maildb.Isopen
    If flag = True Then
    Set profile = maildb.GetProfileDocument("CalendarProfile")
    counter = 0
    Set collection = db.UnprocessedDocuments
    Else
    Msgbox ERROR_MSG_1 & Chr(13) & ERROR_MSG_2, MB_ICONSTOP,ERROR_TITLE
    End If
    End Sub


    Script (GetMailAdress):


    Function GetMailAddress() As String
    Set pNote = db.getprofiledocument("tempvars")
    CurrentMailingAddress = pNote.Pmailaddress

    If note.Type(0) = "Person" Then
    If CurrentMailingAddress(0) = "MA" Then
    GetMailAddress = note.MailAddress(0)
    Elseif CurrentMailingAddress(0) <> "" Then
    GetMailAddress = CurrentMailingAddress(0)
    Else
    GetMailAddress= note.FullName(0)
    End If
    Elseif note.Type(0) = "Group" Then
    GetMailAddress = note.ListName(0)
    Else
    GetMailAddress=""
    End If

    pNote.Pmailaddress = ""
    Call pNote.save(False,False)
    End Function

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...

  • Dein Problem liegt in der Funktion GetMailAddress.
    Du holst dir dort ein existierendes Profildokument und versuchst das am Schluss zu speichern.
    Beim Zugriff Editor geht das auch gut, beim Zugriff Autor allerdings nicht, ausser der User hätte es selbst angelegt

  • Und was bitte muss ich stattdessen machen und wie?


    Ich habe das Script aus der persönlichen Adressdatenbank abgeschrieben und es funktionierte ja unter den bekannten Umständen. Nur ich möchte, dass es für jedermann läuft. Ist das möglich???

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...

  • So ist das wenn man mal schnell was abschreibt. Im persönlichen Adressbuch ist jeder Manager (Defaulteinstellung). Da störts nicht.


    Warum sollte das Profildokument wieder gespeichert werden? Ich hab in deinem Code nichts gefunden was dies begründet.

    Bye
    Torsten


    IBM Advanced Certified System Administrator - Lotus Notes and Domino 8.5

  • Vielen Dank miteinander!


    Nachdem ich die Speicherung deaktivert habe funktioniert es einwandfrei.


    Wünsche allen hier eine schöne Adventszeit!

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...