OpenDatabase Problem

  • Hallo Forumsmitglieder,
    folgende Problematik:
    ich muss MailFiles durchlaufen und (fast) alle MailFiles sind offen, dass öffentliche Dokumente (Kalendereinträge) gelesen werden dürfen aber manche MailFiles sind über die ACL so gesteuert, dass es nur für den Eigentümer zugänglich ist (die der Chefs :-)).


    Gibt es denn eine Möglichkeit das wenn man das Mailfile öffnet bzw. versucht zu öffnen irgendwie ein Flag zurückkommt mit dem Hinweis
    JA, die Datenbank existiert ABER Du darfst Sie nicht öffnen....


    Die Befehle
    OpenByReplicaID
    OpenIfModified
    OpenMail
    OpenWithFailover


    oder


    Sub Initialize
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.GetDatabase("snapper", "names2")
    If Not db.IsOpen Then
    Messagebox "names2.nsf does not exist on snapper",, _
    "No names2.nsf"
    Else
    Messagebox db.Title,, "Title of names2.nsf"
    End If
    End Sub


    gehen immer davon aus, dass man das Recht hat die Db zu öffnen aber das habe ich in diesem Fall definitiv nicht!


    Kennt da jemand einen WorkAround, das ich über die Db's bei denen ich kein Zugriffsrecht habe eifach drüberlaufen kann.
    Einen Errorhandler habe ich bereits eingebaut und On Error resume next zieht ebenfalls nicht


    DANKE und gruss
    W.

  • herzlich willkommen im forum


    also ich würde den agent mit einer id laufen lassen, die in allen acls als manager eingestellt ist.


    zb. irgendeine admin-id die auch in der ecl hinterlegt ist


    ps.: bitte achte auf das themenpräfix

    -*-*-*-*-*-*-*-*-*-*-*-


    woher soll ich wissen was ich denke, bevor ich höre was ich sage???

  • Willkommen im Forum!


    Also, wenn ich bspw. mit der NotesDbDirectory-Klasse über alle Datenbanken drüber rausche und auf eine DB keinen Zugriff habe, wird mir ein Fehler 4060 geworfen. Mit einem geeigneten Error Handler wird zum Einen auch nicht stillschweigend abgebrochen und zum Anderen an einer geeigneten Stelle wieder in den Code gesprungen (Resume Next ist definitiv für _nichts_ tauglich).


    [size=xx-small][color=ff0000]Bitte Themenpräfix beachten![/color][/size]

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • DANKE RockWilder!
    Das wäre eine gute Sache ...
    Weisst Du zufällig wie der ErrorCode heisst wenn


    Sub Initialize
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.GetDatabase("snapper", "names2")
    If Not db.IsOpen Then
    Messagebox "names2.nsf does not exist on snapper",, _
    "No names2.nsf"
    Else
    Messagebox db.Title,, "Title of names2.nsf"
    End If
    End Sub


    er in der Zeile Set db = s.GetDatabase("snapper", "names2") auf die Nase fällt bzw. wo finde ich den ...
    hast Du einen CodeSnippet für einen Errorhandler


    warsn
    Das war auch meine Idee aber das wird jetzt die Notlösung weil die Errorhandler-geschichte wäre eleganter
    DANKE und gruss
    W.

  • JA, DANKE, es hat geholfen ...
    Jetzt bleibt das Ding aber einfach stehen und springt NICHT in den Errorhandler bei unbekannten Fehlern != 4060 hinein.


    Der Errorhandler funktioniert bei MailFiles bei denen ich KEIN Zugriff (error 4060) habe ABER nun bleibt es bei einem MailFile einfach stehen mit der Meldung
    User XYZ cannot open Database SERVER!!mail\mailfile.nsf


    FRAGE:
    WIE kann ich denn das abfangen?
    Hier ein Teil vom Code
    Sub Initialize
    On Error Goto ErrorHandler


    Set PABDoc = Collection.GetFirstDocument()

    While Not(PABDoc Is Nothing)

    Set MailFile = New NotesDatabase( MailServer.Canonical, MailFilePath )
    ' hier bleibt er einfach stehen und eine Messagbox poppt auf ...
    If MailFile.IsOpen Then
    ... ...
    End If
    NextDocument:
    Set PABDoc = Collection.GetNextDocument(PABDoc)
    Wend


    Exit Sub
    Errorhandler:
    If Err = 4060 Then
    Print "Error" & Str(Err)
    Goto NextDocument
    Else
    Print "Unknown Error"
    Exit Sub
    End If
    End Sub

  • Hallo taurec,
    leider klappt es nicht
    bei
    Set MailFile = New NotesDatabase( MailServer.Canonical, MailFilePath )
    oder
    Set MailFile = Session.GetDatabase( MailServer.Canonical, MailFilePath, False )
    oder
    Set MailFile = Session.GetDatabase( MailServer.Canonical, MailFilePath, True )


    erscheint immer
    User XYZ cannot open Database SERVER!!mail\mailfile.nsf


    Hast Du noch eine andere Idee?

  • Also bei mir gibt folgender Code:



    Not Opened aus wenn ich keinen Zugriff auf die DB habe

  • Hallo Moderator,
    DANKE für den CodeSnippet, RICHTIG der funktioniert auch bei mir bzw. ich komme auf das gleiche Ergebnis ABER - that's Notes - ich durchlaufe etwa 500 MailFile's, bei 3 MailFiles habe ich lt. ACL NoAccess und es wird brav der Errorhandler durchlaufen und dann - urplötzlich - gibt es einen Fehler, eine Messagebox poppt auf mit der Meldung


    User XYZ cannot open Database SERVER!!mail\mailfile.nsf


    und dann ist ENDE und es wird NICHT in den Errorhandler gesprungen.
    Das betreffende MailFile (mail\mailfile.nsf) ist lt. ACL völlig identisch mit den anderen 497 MailFiles ....
    Strange oder ....
    Gruss
    W.

    • Offizieller Beitrag

    lösche mal den entsprechenden Eintrag in der ACL, speicher die ACL und Trage den Eintrag wieder ein. Eventuell hat die ACL einen Treffer.


    Oder ist eventuell der Benutzertyp falsch gesetzt?


    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

  • DANKE für die Informationen wegen ACL etc. ich werde das mal weiter verfolgen und im grossen und ganzen ist dieses Thema nun erledigt, deshalb stelle ich den thread mal auf erledigt
    DANKE ud Gruss
    W.