Das Notes Forum
Lotus Notes / Domino Sonstiges => Projekt Bereich => Help-Desk Applikation !!Help!! => Thema gestartet von: FC am 31.08.05 - 16:17:52
-
Hab mal ne Frage aus Interesse, wo wird die Rolle DEBUG in der DB verwendet ???
Hatte vergessen mir die Rolle zuzuweisen, führt dazu, dass wenn ich die DB unter dem Debugger starte recht fix "NSD is running" habe !
Habe gesucht, aber noch nicht gefunden wo die Rolle überhaupt verwendet wird.
Danke.
-
Die hat ulrich mal eingebaut. Ich weis mir allerdings auch nicht zu und hab damit keine Probleme.
-
Kommt auch nicht immer, aber immer öfter .....
Rolle raus, Notes beenden.
Notes starten, Debugger starten, DB aufrufen, 1ter Aufruf Schritt ausführen, dann 2x Fortfahren --> NSD :P
OK, OK, der Fehler kommt in der Reihenfolge auch mit der Rolle :P :-:
-
Die Rolle wird nirgendwo verwendet; ich hatte die mal eingebaut mit dem Ziel, das Errorhandling und die damit verbundenen Logfunktionen von einem normalen Modus in einen DEBUG Mode zu schalten. Die solten dann etwas mehr Informationen liefern, was natürlich zu Lasten der Performance geht. Ist aber bisher noch nicht umgesetzt.
Das mit dem NSD schaue ich mir mal an. Hast du die entsprechenden logfiles mal für mich parat ?
-
Notes starten, Debugger starten, DB aufrufen, 1ter Aufruf Schritt ausführen, dann 2x Fortfahren --> NSD
Ist ja schon manchmal lustig, auf welche Ideen man so kommen kann ;D
-
Es knallt definitiv in der LogUIView() und zwar direkt am Anfang beim ersten IF
Dim me_writelog As Boolean
If Ucase(GetConfigDocByKey ("LogViewAccess")) = "YES" Then
LogScriptErrors = True
-
OK, kleine Umbaupause:
Im Initialize Event der lib.appl.functions werden ja schon einige globale Variablen gesetzt.
Habe das LogViewAccess jetzt dort eingebaut:
On Error Goto ERRHANDLE
If Ucase(GetConfigDocByKey ("OpenLogEnabled")) = "YES" Then
UseOpenLog = True
End If
If Ucase(GetConfigDocByKey ("LogScriptErrors")) = "YES" Or Ucase(GetConfigDocByKey ("LogViewAccess")) = "YES" Then
LogScriptErrors = True
End If
If Ucase(GetConfigDocByKey ("ResumeMethod")) = "NEXT" Then
ResumeMethodNext = True
End If
If Ucase(GetConfigDocByKey ("LogViewAccess")) = "YES" Then
LogViewAccess = True
End If
Das
If Ucase(GetConfigDocByKey ("OpenLogEnabled")) = "YES" Then
wird auch dort schon gesetzt; daher ist das in der Funktion redundant.
Die Function selber reduziert sich dann auf
Sub LogUIView(ViewSource As NotesUIView)
Dim session As New NotesSession
If LogViewAccess Then
xProc = ViewSource.ViewName
xError = xProc & ": " & session.UserName
If UseOpenLog Then
Call LogError
Elseif LogScriptErrors Then
Call ThrowException ( xProc, xError )
End If
End If
End Sub
Und jetzt kann die Datenbank auch ohne den beschriebenen NSD im Debugger betrieben werden ;D
EDIT: Mist, zu früh gefreut; NSD is running ...
NOCH EIN EDIT:
Die Verlagerung das Aufrufes vom PostOpen Event in das
Sub Queryopen(Source As Notesuiview, Continue As Variant)
Call loguiview(source)
End Sub
schafft Abhilfe.
-
Notes starten, Debugger starten, DB aufrufen, 1ter Aufruf Schritt ausführen, dann 2x Fortfahren --> NSD
Ist ja schon manchmal lustig, auf welche Ideen man so kommen kann ;D
Kommt nur daher, dass ich versucht hatte hier: http://www.atnotes.de/index.php?topic=25349.msg161826#msg161826
Den Aufruf zu finden, daher wollte ich mir die Anfangsaufrufe nicht im Detail ansehen, sondern nur grob wissen was aufgerufen wird.
Ich denke meine nsd-Files brauchst Du nicht mehr ;)
Werde mal Deine Lösung einbauen, vielleicht habe ich auch nur ein gutes Händchen für NSD 8)
-
HMM, ich sehe gerade, das
On Error Goto ERRHANDLE
If Ucase(GetConfigDocByKey ("OpenLogEnabled")) = "YES" Then
UseOpenLog = True
End If
If Ucase(GetConfigDocByKey ("LogScriptErrors")) = "YES" Or Ucase(GetConfigDocByKey ("LogViewAccess")) = "YES" Then
LogScriptErrors = True
End If
If Ucase(GetConfigDocByKey ("ResumeMethod")) = "NEXT" Then
ResumeMethodNext = True
End If
If Ucase(GetConfigDocByKey ("LogViewAccess")) = "YES" Then
LogViewAccess = True
End If
könnte man auch noch weiter zusammenstreichen und sich einen Zugriff auf die Konfigurationsdocs einsparen, wenn man das so umbaut:
On Error Goto ERRHANDLE
If Ucase(GetConfigDocByKey ("OpenLogEnabled")) = "YES" Then
UseOpenLog = True
End If
If Ucase(GetConfigDocByKey ("LogViewAccess")) = "YES" Then
LogViewAccess = True
End If
If Ucase(GetConfigDocByKey ("LogScriptErrors")) = "YES" Or LogViewAccess Then
LogScriptErrors = True
End If
If Ucase(GetConfigDocByKey ("ResumeMethod")) = "NEXT" Then
ResumeMethodNext = True
End If
-
So habe jetzt getestet und auch bei mir keinen NSD mehr bekommen ;D
Kleiner Zusatz:
Dim LogViewAccess As Boolean
unter Declarations muss natürlich rein.
Gruß
Djahan