Autor Thema: Datenbank-Properties per Script auslesen und ändern  (Gelesen 9768 mal)

Offline datenbanken24

  • Senior Mitglied
  • ****
  • Beiträge: 390
  • Geschlecht: Männlich
  • Stammgast
    • 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

« Letzte Änderung: 28.09.04 - 00:25:16 von datenbanken24 »

Glombi

  • Gast
Re: Datenbank-Properties per Script auslesen und ändern
« Antwort #1 am: 03.10.06 - 12:24:29 »
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
« Letzte Änderung: 03.10.06 - 12:33:32 von Glombi »

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datenbank-Properties per Script auslesen und ändern
« Antwort #2 am: 05.10.06 - 22:38:21 »
Cool, Andreas! Danke auch an Uwe für das Posten der Quelle!

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz