mariahelm.com
personal website

mariahelm.com

lotus knows – how to change the world

May 13th, 2010 . by maria
Since I don’t travel much, I haven’t gotten to see the posters in airports, or signs on cabs. This is my first “Lotus Knows sighting” in the wild. And it is a GREAT placement!
lotusknows

lotusknows

SNTT: Easier Mail Statistics Reporting

December 20th, 2007 . by maria

If you’ve been a Domino Admin long, you’ve probably played around with the reports.nsf to get custom email reports such as “Top 25 Senders”. You probably noticed you have two choices: wait for the scheduled report, or tie up your client waiting for the report to run immediately. You may have even gotten so frustrated with waiting that you wrote this database off completely. Well, I have discovered something that SHOULD have been completely obvious. But since I, a relatively smart person, never thought of this before…then perhaps you, doubtless smarter than I am, may not have thought of it either. Here goes:

You can run the scheduled agents whenever you want using the server console. Just set up the scheduled custom report(s), enable, then issue one or more of the following commands:
tell amgr run “reports.nsf” ‘aaMonthlyReportAgent’
tell amgr run “reports.nsf” ‘aaWeeklyReportAgent’
tell amgr run “reports.nsf” ‘aaDailyReportAgent’

With the ability to kick these off immediately, you can quickly see if the report meets your needs without tying up your client in the process.

If your end-of-the year processes are anything like mine, this just might make your New Year happier!

SNTT: Paste Plain text

September 4th, 2007 . by maria

I just couldn’t post any SNTT tip better than this.

SNTT:: http://www.alanlepofsky.net/alepofsky/alanblog.nsf/dx/paste-plain-text

SNTT: Fault Reports, Fault Analysis, and Automatic Diagnostic Collection

July 20th, 2007 . by maria

I just finished testing this tool on our development server & a test client, and I am impressed. I won’t go into all the details of how to set it up – the help documentation can cover that. But I will say it is very cool that when a client crashes (any client crash – not just a custom script to error log thing), we can gather information on the crash.

Using the help documentation, I set up the fault reports database and enabled fault reports & analysis on the test server . I set dagnositc collection to be mandatory, and to prompt for information from user on restart. I configured fault reports in the diagnostics for the */org policy. Got a script from David which is known to crash the client, and copied it to where I could use it with my test client. I ran the script, and got the red box error, crashing the client. It worked! when I restarted the Notes client, I was prompted to enter what I’d been doing at the time of the crash. (There’s no cancel button and the red X doesn’t work, so the worst I could do was not enter anything and hit OK.) I (as the admin now) went to the server and was able to see that my test client had crashed with the following information:

User Comments: intentional crash test
Error message: PANIC: LookupHandle: handle not allocated
Process: nlnotes
Callstack: (removed for brevity)
Open Databases:
CN=testserver/O=org!!mail\testuser.nsf
CN=testserver/O=org!!testdb.nsf
C:\Documents and Settings\testuser\Local Settings\Application Data\Lotus\Notes\Data\log.nsf
C:\Documents and Settings\testuser\Local Settings\Application Data\Lotus\Notes\Data\desktop6.ndk
C:\Documents and Settings\testuser\Local Settings\Application Data\Lotus\Notes\Data\bookmark.nsf
C:\Documents and Settings\testuser\Local Settings\Application Data\Lotus\Notes\Data\Cache.NDK
C:\Documents and Settings\testuser\Local Settings\Application Data\Lotus\Notes\Data\names.nsf

I added an annotated screenshot collage of some of these features below. Which I’ll have to add when I get home because my employer has blocked access to signin to yahoo accounts, so I can’t post it in flickr. GRRR.

I definitely recommend this feature!

SNTT: Find Templates/Find databases using a template

July 5th, 2007 . by maria

Our shop has always been pretty small. (OK, so there was only one Notes dev before I came along.) So, we were taking a huge step forward a few years ago when we set up a dev server. The problem is, we didn’t take the time to make sure that every database had a template on the new dev server. We just sortof added them as needed. Then, a little while later, we came up with naming conventions for the templates. But, anything created before the naming conventions still has the old name. As a result, it can be pretty difficult to determine if the database you need to work on already has a template on the dev server or not. And if you’re wrong, then when you go to refresh the design, you’ll get an error saying two templates of the same name were found. To make all this easier for myself, I wrote a “button tool” that will find a template for me. This code can be put behind a button in a rich text field named Body on any document, or in an email. (Or you can modify it for your uses.)

Sub Click(Source As Button)
Dim db As notesdatabase
Dim templatenames (1000) As String
Dim counter As Integer
Dim myserver As String
Dim mytemname As String
Dim uidoc As NotesUIDocument
Dim NewList As String
Set ws = New NotesUIWorkspace
Set uidoc=ws.CurrentDocument
myserver = Inputbox$(”What server?”)
Dim dbdir As New notesdbdirectory(myserver)
mytemname = Inputbox$(”What template name?”)
Set db = dbdir.getfirstdatabase(TEMPLATE)
counter = 0
NewList = “New”
While Not(db Is Nothing)
counter = counter + 1
If db.TemplateName=mytemname Then
templatenames(counter) = db.TemplateName & ” – ” & db.FilePath
NewList = “;” & templatenames(counter)
uidoc.FieldAppendText(”Body”),NewList
End If
Set db = dbdir.getnextdatabase
Wend
Call uidoc.refresh
Messagebox(”done”)
End Sub

SNTT: Clear cached server IP addresses

April 20th, 2007 . by maria

Lotus neither recommends nor supports using numeric IP addressing in the Net Address field of the Server document for Domino 4.5x and later. Instead, use the common name of the IP Host or the fully qualified domain name (FQDN) in the Net Address field, which is recommended and supported for all versions of Domino/Notes servers. (Technote: 167941) Depending on your network infrastructure, you should have DNS servers available at each building and/or site, especially with slow or busy WAN links. If DNS servers are not possible, you can use local Host files on the Notes client or remote Domino server systems. Alternatively, you can use local Server Connection documents with the dotted decimal notation (DDN) of the numeric IP address entered in the server address field. Both the Notes client and Domino server can use this Connection document to locate a Domino server without using an IP name resolver.

If IP addresses were used in the Server Docs previously, Notes clients may have cached these IP addresses. When a change is made to the IP address of the server, the Notes client will then be unable to see the server. The $SavedAddresses field in the Location document of the client’s Name and Address Book (NAB) is caching the old value for the server’s address and will not update it. Additionally, nothing you do to HOSTS files or DNS entries from the client will fix the problem.

The solution is to empty the $SavedAddresses field(s). The code below does just that. The first button is designed to be sent to users, and clears the local address book. The second is for Admin use on the public address book.

Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim port As Variant
Set db=session.GetDatabase(””,”NAMES.NSF”)
Set view=db.GetView(”Locations”)
Set doc=view.GetFirstDocument
While Not (doc Is Nothing)
Call doc.RemoveItem(”$SavedAddresses”)
Call doc.RemoveItem(”$SavedPorts”)
Call doc.RemoveItem(”$SavedServers”)
Call doc.save(True,True)
Set doc=view.GetNextDocument(doc)
Wend
Messagebox(”Removing Cached Addressed Completed”)
End Sub

Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim port As Variant
Dim whichserver As String
whichserver=Inputbox$(”Which server?”)
Set db=session.GetDatabase(whichserver,”NAMES.NSF”)
Set view=db.GetView(”Locations”)
Set doc=view.GetFirstDocument
While Not (doc Is Nothing)
Call doc.RemoveItem(”$SavedAddresses”)
Call doc.RemoveItem(”$SavedPorts”)
Call doc.RemoveItem(”$SavedServers”)
Call doc.save(True,True)
Set doc=view.GetNextDocument(doc)
Wend
Messagebox(”Removing Cached Addressed Completed”)
End Sub

SNTT: Button Tools: Add a bunch of icons at once

April 13th, 2007 . by maria

If a user is given access to a new application, you send him a link or tell him to do a File>Database>Open, right? Well, what if that Notes application actually involves several databases? Why make the user go through several clicks? Instead, create a button that will do it all for them. Here’s an example:

REM “Go to workspace”;
@PostedCommand([WindowWorkspace]);
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\saleinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\contactinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\discinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\laneinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\leadinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\ASF.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\mailinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\revinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\shipinfo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\shiprep.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\WebDemo.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “salespres.nsf” );
@PostedCommand([AddDatabase]; “Sales/org” : “sales\\geninfo.nsf” );

Add on a prompt to tell them it’s complete, and you’re all set!