Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Basti* am 02.07.13 - 14:22:11

Titel: Wie Folder per Script mit Template anlegen
Beitrag von: Basti* am 02.07.13 - 14:22:11
Hallo zusammen!

Wie kann man einen Folder per Script anlegen? Und zwar so, dass er eine View als Template nimmt?

Geht das auch über db.CreateView(folder_name ,"" , tmplview,False )? Nur wie sagt man der View jetzt, dass sie ein Folder ist?

Hat da jemand einen Tipp?

Grüße
Basti
Titel: Re: Wie Folder per Script mit Template anlegen
Beitrag von: Tode am 02.07.13 - 15:03:15
Mit CreateView geht dasd leider nicht...
Wenn man einen Ordner anlegen will, der wie ein anderer aussieht gibt es nur EINE einfache Möglichkeit: Man legt den "Vorgabeordner" an wie man ihn braucht, und setzt dort das Häkchen "Vorgabegestaltung für neue Ordner" (oder so ähnlich) in den Ansichtseigenschaften.
Der gilt dann aber für ALLE neuen Ordner / Ansichten, auswählen kann man das nicht...

Es gibt noch drei weiter Möglichkeiten, die mir spontan einfallen, sowas zu tun, aber alle setzen "advanced" Programmierkenntnisse voraus. Hier mal in Stichworten:

1. Ordner anlegen und dann @UpdateViewDesign verwenden (Beispiel wie man das auch in Script verwendet im "Upgrade Folder Design"- Agenten des Mailfiles)
2. NotesDocument des Original- Ordners per unid holen und per CopyToDatabase kopieren, und dann die wichtigen Items wie "$Title", "$Name", etc. setzen... (nötige Items halt durch inspizieren des Ordner- Design- Elements ermitteln
3. Vorgabeordner ist "leer", damit auch der angelegte Ordner, und dann geht man über NotesView.Columns und kopiert die aus einem anderen vorgegebenen Ordner
Titel: Re: Wie Folder per Script mit Template anlegen
Beitrag von: Basti* am 02.07.13 - 15:31:41
Danke Torsten!

Mist, ich hab es geahnt, dass es nicht so einfach geht. Auf advanced hab ich gerade keinen Bock (=> zahlt keiner ;) ) Dann werd ich es halt simpel machen und die VorgabeView entsprechend basteln. Ist zwar nicht elegant, aber was solls :)

Basti
Titel: Re: Wie Folder per Script mit Template anlegen
Beitrag von: jo@chim am 18.11.13 - 13:12:43
"Geht nicht gibts nicht", wie's bei Tode so schön zu lesen ist  ;) Und es geht sogar sehr einfach:
Code
Sub CreateMyFolder(defaultview as String, foldertemplate as String, foldername as String)
'defaultview - Vorgabeansicht der Datenbank
'foldertemplate - Notes View als Ordnervorlage
'foldername - Name des zu erstellenden Ordners

Dim session As New NotesSession
Dim db As NotesDatabase
Dim folder As NotesView

Set db = session.CurrentDatabase
Set folder=db.Getview(foldertemplate)
folder.Isdefaultview=True
Call db.EnableFolder(foldername)
Set folder= db.GetView(defaultview)
folder.Isdefaultview=True
Exit Sub

Wir hatten im 8er Entwicklungsbereich darüber diskutiert - mit dieser Lösung geht es sehr einfach, benutzerspezifische Ordner anzulegen und endlich endlich endlich auf die  SPOFU :-: zu verzichten.
Titel: Re: Wie Folder per Script mit Template anlegen
Beitrag von: Tode am 18.11.13 - 13:25:40
"IsDefaultView" ist aber -korrigiere mich, wenn ich falsch liege- eine Property, für die ich Designer- Rechte brauche, um die zu setzen... Wenn das also mit den richtigen Rechten läuft, geht es... Im usercontext vermutlich eher nicht... Aber WENN ich falsch liege, dann ist das natürlich eine einfach geniale weil genial einfache Möglichkeit...
Titel: Re: Wie Folder per Script mit Template anlegen
Beitrag von: jo@chim am 18.11.13 - 14:52:25
Das wäre eine... nun... doch erhebliche Sicherheitslücke, wenn Anwender den DefaultView definieren könnten, Tode (habs aber trotzdem nochmal getestet ;D )

Sollte aber kein Problem sein, wenn man den Code in einen Agenten mit entsprechenden Rechten packt.