Print Out # Templates On A Server By Subdirectory

For design refresh purposes its convenient to use the .nsf format to save Notes
Templates. However, in a heavy development environment there may be too many
templates or duplicate names in a server directory, thereby complicating design
refresh. This script will allow you to quickly identify the culprits by
Just put this in a button.

Sub Click(Source As Button)
This script returns the title of each template on a server. All results are
stored in a Word 97 file (My Documents\TemplateList.doc). 'Error' results are
also stored in a Word 97 file called
(My Documents\TemplateListError.doc). Both Word 97 files are sent to the
user's default printer, and are made visible to the user at the end of the

Author: David E Bradshaw
Last Edit: 5/13/99

Messagebox "This script will return all templates housed on a particular
Server, by desired subdirectory. The results will be sent to a Word 97 file"&_
" called 'C:\My Documents\TemplateList.doc', while any 'ERROR' results
will be sent to a Word 97 file called 'C:\My Documents\TemplateListError.doc'.
" &_
"Please go to these files to view results.", 64, "Template Search Results"

On Error Goto ExecuteFail

Dim s As New NotesSession
Dim db As NotesDatabase
Dim directory As NotesDbDirectory
Dim servername$
Dim templatename$
Dim desPath$
Dim corrPath$
Dim adjPath$
Dim pathCnt%

Set directory = s.GetDbDirectory(Ucase(Inputbox("Please Enter Server
Name. Leave blank for Local.")))
desPath$ =Ucase(Inputbox("Please Enter Desired Directory (eg
pathCnt% = Len(desPath$)

'check for an available file number to use. If none exists then assign
the next available one for use in
' creating/opening the desired filename. If a number is already in use
then, close it.

If Not fileNum%>0 Then
fileNum% = Freefile()
Close filenum%
End If
Open "c:\My Documents\TemplateList.doc" For Output As fileNum%

Set db = directory.GetFirstDatabase( DATABASE ) 'only look for the '.nsf'
x=0 'initialize counter
y=0 'initialize count for dbs in desired path
Print #fileNum%,("TEMPLATES HOUSED ON SERVER " & servername$ & " -
DIRECTORY: "&desPath$&Chr(13))
Print #fileNum%,("Templates by Number per below: "&Chr(13))
Print #fileNum%,(Chr(13))
Do While Not (db Is Nothing )

templatename$= db.TemplateName ' will only respond if the .nsf is in
fact a template
corrPath$ =Ucase(db.FilePath) ' get the full file path of the database
adjPath$ = Ucase(Left(corrPath$,pathCnt%)) ' adjust the path to the
# of characters entered in desired subdirectory for comparison
' If Left$(templatename$,3) ="NTF" And (desPath$=adjPath$) Then 'look
only for those templates beginning with "NTF" and located in desired
If (desPath$=adjPath$) Then 'look only for those templates located
in desired subdirectory
'Loop through the SERVER and record the name of the templates in the Word
97 file

If db.IsOpen Then
Print #fileNum%,("# " & y & " - "&templatename$ &" - "
&db.FilePath &Chr (13))
Call db.Open("","")
Print #fileNum%,("# " & y & " - "&templatename$ &" - "
&db.FilePath &Chr (13))

End If
End If

x=x+1 'keep a running count of the templates found.
Set db = directory.GetNextDatabase

Print #filenum%,(Chr(13))
Print #fileNum%,("There were " & y & " templates found in " &servername$ &
"\" & desPath )
Print #fileNum%,("There were a total of " & x & " templates found on
server " & servername$ )
Close fileNum% 'close the file number
Close fileNum2% 'close the file number after all error results have been
written to the Word 97 error results
This was last published in November 2000

Dig Deeper on Domino Resources - Part 5

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.




  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...