Lotus Notes / Domino Sonstiges > Tipps und Tricks
Datenbank-Properties per Script auslesen und ändern
(1/1)
datenbanken24:
Bin vor kurzem durch Zufall darauf gestossen - und nutze das seitdem immer wieder:
Für einige Datenbankeigenschaften gibt es leider keine Script-Klassen zum Auslesen und Schreiben.
So z.B. für die Datenbank-Option:
"Web Access: Require SSL connection"
Noch dazu kann man diese Option im Eigenschaftsdialog nur setzen, wenn die Datenbank eine offene Gestaltung hat.
Hier ein Weg, alle Datenbank-Eigenschaften über Script zu lesen und zu setzen:
Fast alle dieser Properties werden im ICON DESIGN ELEMENT (!) im Feld $FLAGS gespeichert:
Dieses Feld kann gelesen und gesetzt werden, wie ein normales Dokument-Feld.
Das Design Icon Dokument hat immer die ID "FFFF0010"
Set doc = db.GetDocumentByID("FFFF0010")
'This is the Icon Design Element
doc.ReplaceItemValue("$Flags", doc.GetItemValue("$Flags")(0) & "x" )
'Where x is the flag value you want to set
doc.Save (...)
Für ordentlichen Code sollte man natürlich erst prüfen, ob der Flag schon gesetzt ist, usw.
Hier die Liste der Property flags
Achtung: kontextsensitiv
Flag = Meaning / Action
4 = Allow Soft Deletes
Z = Enable LZ1 Compression
f = Do Not Allow Stored Forms
z = Do Not Maintain Unread Marks
h = Mark Parent Document on Reply or Forward
J = Use JavaScript when generating Web Pages
F = Launch Designated Frameset
n = Never Show Policy (ie. Never show About Database when first opened)
7 = Large UNK Table (ie. allow more fields in database)
6 = Allow Design Locking
K = Restore as lasted viewed by user
c = Show About Database if Modified
Q = Replicate Unread Marks to Clustered Servers Only
U = Replicate Unread Marks to All Servers (appears with Q set)
2 = Optimise Document Table Bitmap
3 = Maintain LastAccessed Property
1 = Don't Support Specialised Response Hierarchy
M = Multilingual Database
X = Web Access Requires SSL Connection
8 = Web Access Don't Allow URL Open
i = Display Images After Loading
5 = Allow Document Locking
g = Database Type = Library
j = Database Type = Personal Journal
b = Database Type = Domino Directory
B = Database Type = Directory Catalog
m = Database Type = Multi DB Search
u = Database Type = Portfolio
A = Database Type = Mailbox
r = Database Type = Mailfile
p = Always Show About Database Document (ie. When Opened in the Client Property)
l = Launch Designated Navigator
s = Launch Designated Navigator in Own Window (used in conjuction with l above)
a = Launch First Attachment in About Database Document
d = Launch First DocLink in About Database Document
P = Web Launch = Show About Database Document
S = Web Launch = Open Designated Frameset
E = Web Launch = Open Designated Page
L = Web Launch = Open Designated Navigator in its Own Window
D = Web Launch = Open First DocLink in About Database Document
T = Web Launch = Open Designated DocLink
V = Web Launch = Open First Document in Designated View
http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/b775c9a62ad5114e85256dc700579387?OpenDocument&Highlight=0,ssl,property
Glombi:
Ich habe noch eine Ergänzung:
"R": Gestaltungsaktualisierung für das Symbol erlauben
Hier der Code für einen Agenten
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = db.GetDocumentByID("FFFF0010")
doc.~$Flags = doc.~$Flags(0) & "R"
Call doc.Save (False, False)
Das habe ich übrigens wie folgt herausbekommen:
Einmal die Eigenschaft "Gestaltungsaktualisierung nicht zulassen" gesetzt und dann als DXL exportiert und dann die Eigenschaft deaktiviert und wieder als DXL exportiert. Dazu habe ich folgendes kleines Script aus der Hilfe verwendet:
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
REM Open xml file named after current database
Dim stream As NotesStream
Set stream = session.CreateStream
path$ = "e:\dxl\"
filename$ = Left(db.FileName, Len(db.FileName) - 3) & "dxl"
filename$ = path$ & filename$
If Not stream.Open(filename$) Then
Messagebox "Cannot open " & filename$,, "Error"
Exit Sub
End If
Call stream.Truncate
REM Create note collection
Dim nc As NotesNoteCollection
Set nc = db.CreateNoteCollection(False)
nc.SelectIcon = True
Call nc.BuildCollection
REM Export note collection as DXL
Dim exporter As NotesDXLExporter
Set exporter = session.CreateDXLExporter(nc, stream)
Call exporter.Process
Dann noch schnell ein FC (File Compare) auf DOS Ebene und schon stehts da:
fc test1.txt test2.txt > fcerg.txt
***** test1.txt
<item name='$Flags'><text>J</text></item>
**** TEST2.TXT
<item name='$Flags'><text>JR</text></item></note></database>
*****
Andreas
koehlerbv:
Cool, Andreas! Danke auch an Uwe für das Posten der Quelle!
Bernhard
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln