Domino 9 und frühere Versionen > ND8: Entwicklung
megasimples Problem/Zugriff auf mail-DB
vbis:
Hallo zusammen,
vorab muss ich mich für die folgende megasimple Frage entschuldigen, aber ich habe in der Vergangenheit fast nur mit Formelsprache gearbeitet und den Zugang zu Lotus Script noch nicht so richtig gefunden....
Ich habe aus einer Vorlage vor Ewigkeiten mal eine grafische Anzeige der Mail-Datenbankbelegung auf Basis der Quota eingebunden. Da unser Rechenzentrum jetzt alle Maildatenbanken zentralisieren will und dann nur noch die Standard-Schablone mit dem Basic-Client zum Einsatz kommen können, wollte ich nun die grafische Anzeige in eine andere Know-How Datenbank einbinden, sodass die User wenigstens über diesen Umweg die Belegung einfach und grafisch erkennen können...
Der ursprüngliche Code, der auch (noch) in den User-Maildatenbanken in der Maske "SwitchewrForm_Mail" in Kombination mit berechneten "Display"-Feldern funktioniert, lautet:
Sub Postopen(Source As Notesuidocument)
Dim session As New NotesSession
Dim db As NotesDatabase
Set db=session.CurrentDatabase
Dim doc As NotesDocument
Set doc=Source.Document
Size = Cdbl(db.Size) / 1024/1024
If db.SizeQuota=0 Then
doc.SizeImgBad=""
doc.SizeImgWarn=""
doc.SizeImgGood=""
doc.RestSizeImg=""
doc.SizeDescription=Cstr(Round(db.Size,0)/1024/1024)+"MB"
Exit Sub
End If
MaxSize = Cdbl(db.SizeQuota)/1024
WarnSize =Cdbl(db.SizeWarning)/1024
Score=Round(Round(Size,0)/Round(WarnSize,0)*100,1)
Scoreall=Round(Round(Size,0)/Round(MaxSize,0)*100,1)
'Below 75% the bar is green, above it, it becomes red
If Score<75 Then
doc.SizeImgGood=String(Round((Score)/10,0),"g")
doc.SizeImgBad=""
doc.RestSizeImg=String(10-Round((Score)/10,0),"g")
Else
If Score<95 Then
doc.SizeImgWarn=String(Round((Score)/10,0),"g")
doc.RestSizeImg=String(10-Round((Score)/10,0),"g")
Else
If Score<=100 Then
doc.SizeImgBad=String(Round((Score)/10,0),"g")
doc.RestSizeImg=String(10-Round((Score)/10,0),"g")
Else
If Score>100 Then
doc.SizeImgBad=String(Round((Scoreall)/10,0),"g")
doc.RestSizeImg=String(10-Round((Scoreall)/10,0),"g")
Else
doc.SizeImgBad=String(10,"g")
doc.SizeImgGood=""
doc.RestSizeImg=""
End If
End If
End If
End If
doc.SizeDescription= (Score)+"%"
End Sub
Jetzt ich meine simple Meinung, dass ich eigentlich nur unter set db die Mail-Datenbank aufrufen müsste... oder? Leider finde ich keinen Eintrag in den diversen Foren, da meine Fähigkeiten und Kenntnisse im Bereich Script doch leider sehr begrenzt sind.
Ich wäre sehr dankbar, wenn jemand Licht ins Dunkel bringen könnte und mir bei der Lösung helfen könnte... ist bestimmt ganz einfach :-)
Mitch:
Heyho,
schau die mal die Methode "OpenMail" der NotesDatabase Klasse an.
Gruß,
Mitch
Klafu:
Hallo vbis,
Wenn ich über einen Agent in der MailDB die Quota möchte, reicht mir ein:
Dim session As NotesSession
Dim Maildb As NotesDatabase
Set session = New NotesSession
Set Maildb = session.Currentdatabase
...
doc.DatabaseSizeMax = (maildb.Sizequota/1024) & " MB"
Chris
vbis:
Hallo Chris,
wenn ich den Script in der anderen Datenbank eingebe/anpasse und den Agenten ausführe, bekomme ich den Fehler: "Database has not been openes yet"
Kann ich auf dem beschriebenen Weg auch datenbankübergreifend mir die Werte holen und anzeigen lassen? Wie gesagt... Script ist nicht so meins....
Danke im voraus und viele Grüße
vbis
Peter Klett:
Mitch hat Dir doch schon geschrieben, wie Du es machen sollst.
Also ganz zu Fuß eins zu eins aus der Hilfe kopiert. Wo ist das Problem?
Dim session As New NotesSession
Dim db As NotesDatabase
Set db=session.CurrentDatabase
Dim db As New NotesDatabase( "", "" )
Call db.OpenMail
Dim doc As NotesDocument
...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln