Kalendereinträge

  • Hallo!
    Das mit dem Zuweisen der Maildatenbank funktioniert jetzt.
    Aber nun hapert es tatsächlich an den Rechten. Wenn wir dem Vorgesetzten für den Kalender die Rechte geben "öffentliche Dokumente" zu schreiben und zu lesen, dann kann der zwar manuell was in den Kalender des Mitarbeiters eintragen, aber sobald der Agent gestartet wird, gibt es eine Fehlermeldung: "Sie sind zur Durchführung dieser Operation nicht berechtigt". :(
    Was kann man noch tun, damit der Agent Termine eintragen darf?

    • Offizieller Beitrag

    versuche den Kalendereintrag über das FrontEnd zu erstellen, denn "Verfügbar für Benutzer mit öffentlichem Zugriff" ist eine Maskeneigenschaft. Im BackEnd funktioniert diese Maskeneigenschaft nicht.


    Gruß
    Dirk

  • Hallo Dirk!
    Vielen Dank für die Antwort. Ich habe inzw. allerdings eine andere Lösung gefunden. Es muß nur jeder Benutzer in der Zugriffskontrollliste für seinen Kalender seinem Vorgesetzten den Zugriff des "Einlieferers" gewähren. Nur Dokumente erstellen anhaken.
    Das is zwar nicht so komfortabel, aber man muß es ja nur einmal machen und wir sind ja nur ´ne kleine Firma.

    • Offizieller Beitrag

    warum einfach, wenn es auch kompliziert geht?


    Deine Lösung ist natürlich besser und einfacher, da habe ich den Wald vor lauter Bäumen nicht gesehen :-).


    Gruß
    Dirk

  • Hallo zusammen !


    Ich hatte genau das gleiche Problem mit dem Kalendereintrag aus einer Urlaubs-DB heraus. Vielen Dank, Ihr habt mir mit Eurer Lösung auch sehr geholfen !!
    Jetzt habe ich nur das umgekehrte Problem.
    Ich würde die Einträge auch gerne rauslöschen wenn ein Antrag storniert wird, aber irgendwie bekomme ich das nicht hin. Habe mir schon die Subject meiner ganzen Mail-DB gelöscht :-(.
    Habt Ihr eine Ahnung wie ich den Eintrag zu packen bekomme wenn ich ihn nach Eurem Script erstellt habe?


    Danke schonmal im Vorraus :-))
    Gruß Susanne

    • Offizieller Beitrag

    (1) am sichersten ist es die DocumentUniqueID des Urlaubsdokumentes in der Urlaubs-Db beim Erstellen des privaten Urlaubdokumentes in ein Feld zu schreiben
    ODER
    (2) in dem Urlaubsdokument in der Urlaubs-Db wird die DocumentUniqueID des privaten Urlaugdokumentes hinterlegt
    ODER
    (3) beides.


    Dann kann ein Agent die Dokumente nach der UniversalID (db.GetDocumentByUNID(...)) suchen und löschen. Welche der 3 Varianten Du wählst, hängt davon ab wo Dein Storno-Agent läuft. Bei Variante (1) könnte ein Agent nachts aufräumen. Die Variante (2) würde ich benutzen, wenn gleich beim Löschen eines Dokumentes die Löschungen in den privaten Kalendern durchgeführt werden sollen (Achtung Löscher braucht Zugriffsrechte auf die privaten Kalender). Variante (3) funktioniert beim sofortigen Löschen und beim periodischen Löschen durch einen Agenten.


    So wie es klingt ist bei Dir allerdings das Kind schon in den Brunnen gefallen. Wenn Du nicht in irgend ein Feld ein Merkmal gesetzt hast, dass der Termin von dem Agenten erstellt wurde hast Du schlechte Karten. Da Du nicht mehr nachvollziehen kannst ob es sich um einen Termin aus der Urlaubs-DB handelt oder nicht. Auf Datumswerte kannst Du Dich nicht verlassen, da die Dokumente sowohl in der Urlaubs-DB als auch im privaten Kalender verändert sein können. Das Feld Subject halte ich auch nicht für zuverlässig.


    Nur als Anmerkung: Wenn bei uns Dokumente von einem Agenten erstellt wurden gibt es ein Feld [Typ String], in dem steht der AgentenName, von dem das Dokument erstellt wurde, der DB-Pfad und der Server der DB, in der der Agent läuft.


    Gruß
    Dirk

  • Danke Dir für den Tip mit der UniqueID: Ich hatte einen ganz anderen Denkansatz. Ist eigentlich so viel einfacher, wenn es denn klappen würde. Mit folgendem Code bekomme ich die Meldung: Command not available :(
    Siehst Du den Fehler ??
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim docCal As NotesDocument
    Dim id As String

    Set db = session.CurrentDatabase
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.document
    id = doc.UniversalID
    Call uidoc.deletedocument()
    Set docCal = db.getDocumentByUNID(id)
    Call docCal.Remove(True)
    Call workspace.viewrefresh()
    End Sub

    • Offizieller Beitrag

    an welcher Stelle genau bleibt der Debuger hängen?
    Ersetze mal Call uidoc.DeleteDocument() durch

    Code
    uidoc.Close
    doc.Remove True

    eventuell liegt dort das Problem.


    Gruß
    Dirk

  • Eigentlich will ich den Antrag als solches gar nicht löschen. Hatte es nur vergessen rauszunehmen.
    Aber an der Stelle hat er gemault, das stimmt.
    Nur gibt er mir immer noch eine Fehlermeldung. Ich komme auch gar nicht erst in den Debug-Mode um sagen zu können was verkehrt ist.
    Fehlermeldung: invalid universal Id


    Gruß Susanne

    • Offizieller Beitrag

    Der Fehler wird bei der Zeile "Set docCal = db.getDocumentByUNID(id)" liegen.
    Was steht den in der Var id?
    Ist das uidoc ein neues Dokument?


    Gruß
    Dirk

  • Hi Dirk,


    Du hast Recht, an der Stelle liegt der Fehler. Genaugenommen an db.getDocumentByUNID(id).
    In der var id steht die korrekte UNID des gespeicherten uidocs. (also kein Neues)


    Gruß Susanne

  • Hallo Dirk,


    ich habs *freu* !!!


    Set db = session.CurrentDatabase
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document
    Set item = doc.GetFirstitem("UNID_in_Cal")
    If Not(item Is Nothing) Then
    unid = item.values(0)
    ' Mail-Datenbank suchen, öffnen und neues Dok. erstellen
    reg.RegistrationServer = "....."
    Call reg.GetUserInfo(session.UserName, mailserver, mailfile)
    Set dbmail = session.Getdatabase(mailserver, mailfile,False)
    Set doc = dbmail.GetDocumentByUNID( unid )
    Call doc.Remove(True)
    End If



    Vielen lieben Dank für Deine Hilfe. Hoffe ich darf noch ein andermal drauf zurückkommen :)


    Gruß Susanne

    • Offizieller Beitrag

    freut mich, dass ich Dir helfen konnte. Dafür ist doch das Forum da.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein