Autor Thema: Gestaltungsänderung für Folder/Views ausschalten  (Gelesen 1228 mal)

Glombi

  • Gast
Hi,
hat gerade jemand ein Script / API parat, mit dem ich für alle vom User angelegten Folder/Views in der Maildatenbank die Eigenschaft "Keine Gestaltungsänderung zulassen" setzen kann?
Problem: Ich will die Gestaltung der Maildatenbank um eine neue öffentliche Ansicht erweitern und habe diese in die mailschablone eingebaut. Wenn ich jetzt den Design Task starte, möchte ich nicht, dass die Folder, die nicht im Template sind, gelöscht werden.
Hinweis: Der Design Task läuft hier beim Kunden nicht, daher kann ich nicht davon ausgehen, dass die Option für alle Folder gesetzt ist.

Andreas

Glombi

  • Gast
Re:Gestaltungsänderung für Folder/Views ausschalten
« Antwort #1 am: 24.09.03 - 14:47:09 »
Hab gerade was in der Kbase gefunden...

Gibt es eine Möglichkeit, die Gestaltung einer Datenbank per Script mit dem Design Template zu aktualisieren? Das würde ich gerne noch ergänzen.

Sub Initialize
   Dim s As New notessession
   Dim w As New notesuiworkspace
   Dim doc As notesdocument
   Dim db As notesdatabase
   Dim Template As String
   
   Set db=s.currentdatabase
   Template = db.DesignTemplateName
   ViewCount=0
   FolderCount=0
   ProtectCount=0
   
   Forall view In db.views
      ViewCount=ViewCount+1
      viewUNID = view.universalid        
      Set doc = db.getdocumentbyUNID(view.universalID)
      TitleString = doc.getitemvalue("$Title")
      If Instr(1,TitleString(0),"$",0)<>1 And Instr(1,TitleString(0),"(",0)<>1 Then
         Flags = doc.getitemvalue("$Flags")
         FolderFlag = Instr(1,Flags(0),"F",0)
         If (Not Isnull(FolderFlag) And FolderFlag<>0 And Instr(1,Flags(0),"p",0)=0) Then
            FolderCount=FolderCount+1
            If Instr(1,Flags(0),"P",0)=0 Then
               ProtectCount=ProtectCount+1
               AddCapitalP = Flags(0) & "P"
               Call doc.replaceitemvalue("$Flags", AddCapitalP)
               Call doc.save(1,1)
               Call doc.save(1,1)
            End If
         End If
      End If
   End Forall
   
   Messagebox Cstr(ViewCount) & " Design Notes found of class View" & Chr(10) & _
   Cstr(FolderCount) & " Folders found that were not Private" & Chr(10) & _
   Cstr(ProtectCount) & " were marked not to Refresh/Replace" _
   ,,"Database modification completed"
   
End Sub

Driri

  • Gast
Re:Gestaltungsänderung für Folder/Views ausschalten
« Antwort #2 am: 24.09.03 - 17:15:44 »
Hi,

das hab ich dazu gefunden, ist allerdings eine Windows-API :

This LotusScript function allows you to replace a database design programmatically. Just provide server and file name for the template and target databases, and you're set.
 
Option Public
Option Declare

' Notes functions
Declare Function NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" ( Byval filename
As String, hdb As Long ) As Integer
Declare Function NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" ( Byval hdb As
Long ) As Integer
Declare Function DesignReplace Lib "nnotes.dll" Alias "DesignReplace" ( Byval
ht As Long, Byval hdb As Long, Byval dw1 As Long, Byval dw2 As Long, Byval dw3
As Long, Byval dw4 As Long ) As Integer

Sub ReplaceDesign( tpl As NotesDatabase, db As NotesDatabase )
Dim source As String
Dim target As String
Dim status As Integer
Dim ht As Long
Dim hdb As Long

' open source (template) database
If tpl.Server="" Then
source=tpl.FilePath
Else
source=tpl.Server & "!!" & tpl.FilePath
End If
status=NSFDbOpen( source, ht )
If status<>0 Then Error 1, "Failed to open " & source & " (error code=" &
status & ")"

' open target database
If db.Server="" Then
target=db.FilePath
Else
target=db.Server & "!!" & db.FilePath
End If
status=NSFDbOpen( target, hdb )
If status<>0 Then
NSFDbClose ht
Error 1, "Failed to open " & target & " (error code=" & status & ")"
End If

' perform the design replacement
status=DesignReplace( ht, hdb, 0, 1, 0, 0 )

NSFDbClose ht
NSFDbClose hdb

If status<>0 Then Error 1, "Error during replace design (error code=" & status
& ")"

End Sub

Glombi

  • Gast
Re:Gestaltungsänderung für Folder/Views ausschalten
« Antwort #3 am: 24.09.03 - 21:26:00 »
Hi Diri,
danke Dir  :D

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz