Skip to main content
    Country/region select      Terms of use
     Home      Products      Services & solutions      Support & downloads      My account     

developerWorks  >  Lotus  >  Forums & community  >  Best Practice Makes Perfect

Best Practice Makes Perfect

A collaboration with Domino developers about how to do it and how to get it right in Domino

So, I don't know. A few weeks back I posted this Design Element Search tool to the sandbox. I think it's pretty useful, but there's been just one comment posted about it, so I wonder whether people are finding it useful.
I've been enhancing it some, as shown by the screenshot below, and in the porcess of teaching it to interpret static text on forms, I did a state machine built on the SAX parser. The state is based on which routines are currently registered to handle the different events, so as to minimize the amount of LotusScript code that executes at each step. I hope this will make it faster than if I had fewer but more complex routines that I leave as the event handlers all the time.
Are people using this tool, or have you tried it, and if so, what does it need to make it more useful? Should I bother to post "version 2.0" to the Sandbox?
I personally have been having a blast searching the designs of our internal apps for GetNthDocument and NoCache and other such performance reducing code.
Design Element Search dialog, improved.

Andre Guirard | 17 July 2007 11:20:30 PM ET | Plymouth, MN, USA | Comments (19)


1) Maybe not what you’re looking for
Rob McDonagh | 7/18/2007 1:44:33 AM

I'm more interested in how you wrote it than I am in the tool itself. Which is probably due to the fact that I have the TeamStudio tools. So I'd like to see version 2.0, but I wouldn't use it to create cool design element searches, I'd use it to learn different ways to write effective code.

For example, I always use the DOM parsers instead of the SAX parsers (it's not an evaluation of which is better, it's simply that I'm more comfortable thinking in that mode, and I'd like to change that), so I always like to see ways other people use SAX.

2) Please post v2
Phil West | 7/18/2007 3:35:45 AM


I didn't realise there was a v1 until I spotted this post. I'll be installing v1 as soon as I get to work, I don't have teamstudio so I need a tool like this.

3) re: Maybe not what you’re looking for
Andre Guirard | 7/18/2007 7:42:05 AM

I'm more interested in how you wrote it ... probably due to the fact that I have the TeamStudio tools.

I submitted an article about it but I haven't heard back from the editor yet. I would have to update it with the new SAX parser technique.

I'm just trying things out in SAX without having studiud what other people are doing, and maybe rediscovering techniques that are already popular (or already known to be dumb). I tried to do it this time keeping minimal state information in variables. It's all based on which routines have been registered to handle events.

But I don't understand why you think Teamstudio includes the functionality of this tool. Yes, you can use Configurator to search one database for strings, but this lets you search all your databases (or a subset you specify). I was always looking for subroutines I knew I'd already written, but didn't remember where. Perhaps it's less a problem for other people because they have better memories or because they don't write so many little sample apps, so there are fewer database to search in.

4) Of course you post v2.0!
Benoit Dubuc | 7/18/2007 7:50:00 AM

Please post v2.0 for all of us who don't hae TeamStudio. I've been using DDSearch (from the Sandbox) but I often have problems with it (won't work, design changes require a manual delete of the generated DXL, ...).

V1.0 is great, so I'm looking forward to V2.0

Thanks a lot

5) Oh, nad by the way...
Benoit Dubuc | 7/18/2007 7:56:58 AM

I guess people are not going to the Sandbox that much anymore. I know I go there once every 3 months or so. So maybe your application doesn't have much coverage because people don't really know it's there.

I know that being an IBMer it makes sense that you publish it in the Sandbox, but maybe you could also post it in the Code Bin at OpenNTF.

6) not useful to me (yet)
Charles Robinson | 7/18/2007 8:54:30 AM

It looks like a nifty tool, but I don't have a use for it at the moment. For now I'm with Rob; I find it more interesting to pull the code apart and see how it works than actually use the tool. I have a high-level knowledge of DXL, but I've not found a use for it in my day to day development yet.

7) Post it
l | 7/18/2007 9:36:48 AM

Please post it, either to the sandbox or to OpenNTF !

8) Got something like this
Nathan T. Freeman | 7/18/2007 9:59:52 AM

Andre, I have a DXL tool that rips apart designs into Notes documents via DXL, and it uses the SAX Parser to build it.

email me if you'd like a copy. It's really nothing fancy.

9) It is useful, but only when you need it.
Mick Moignard | 7/18/2007 1:31:39 PM

I do use the TS tools, but sometimes you need something like this to do what Andre says - find something you know you did once but can't remember where.

Andre - This is one of those things that you rarely need, but when you do, it saves a lot of time. But - you have to have it ready and waiting at the time. Most people who have read the posts will think "I don't need this now" and move on. A few will consider that they might need it someday, and a smaller few come across it because they are actively searching for it. I have a copy of v1, and have used it about once. But I would not want to find myself without it.


10) I’d love to see the code
Lars Berntrop-Bos | 7/18/2007 4:07:27 PM

Please post it, I second Rob McDonagh, and it would be a nice tool too.

11) Could be very usefull
Bernd Hort | 7/19/2007 5:24:05 AM

Under ND6.5 I used DDSearch, but I can't get to work under ND7. So this tool could be very usefull for me.

12) TS Best Practice, not Configuration
Doug Finner | 7/24/2007 2:45:08 PM

@3 - While the BP Filter app by TS isn't exactly the same as your tool, it's an app that contains a bunch of rules written to find 'things that aren't best practice' so very much like looking for 'NoCache'. And it works across multiple dbs creating a nice db of information you can then use.

The BP Filter app is also used for version upgrades (find stuff in your version <current> apps that will break in version <higher than current> which made it dirt simple to do a risk assessment when moving from 4.6 to 6.5 so we didn't have to re-validate every freakin' app. It also helped us find apps that turned out to have problems not in the original migration filter set (seems I had code that worked with a bug and the bug was fixed in 6.5 so the code failed...).

Off to the Sandbox...

13) DDSearch and Notes 7
Fabian Robok | 7/25/2007 1:32:09 AM

@11 - Bernd, did you find Thomas Gumz' hint to copy over a missing outline in bookmark.nsf from a working machine?

In my case, unfortunately DDSearch 2.1 wont't even install. It beleives to have found a multi-user installation which cannot contain Domino Designer, so setup quits ...

14) Please post version 2
Patty | 8/1/2007 1:15:04 PM

I just saw this on my RSS feed today and am looking forward to setting it up when I get back to the office in a few weeks. We have the same problem at our shop where we have several databases with good code examples in them but it's sometimes difficult to remember in which one we wrote a particular routine.

15) Teamstudio Configurator
Benedict R Poole | 8/5/2007 5:13:55 AM

Just for the record, you CAN search multiple databases with the Configurator tool, but you'd be doing that by using the supplied code library (i.e. you'd have to wrap a simple agent or whatever around the core search code). So no, the tool doesn't do "out of the box" but it does do it.

Anyway, thanks for the link - I had missed this too, so will check it out!

16) Red Screen of Death
Ranjit | 8/14/2007 2:13:59 PM

Loved the code, and the tool. Worked for a lot of stuff, for example, search for occurrences of GetNthDocument. But when I try to use it for references to another database (because that db is being moved to another platform, and all calls to it have to be replaced by web services), the red 'screen of death' occurs unfailingly. Of course, the db seems to be used a lot of times (got 20 hits out of 35 dbs searched, before the red screen killed it).

Any ideas that I can try? I tried setting the NoteCollection to Nothing during the design-search, but that did not do the trick.

17) re: Red Screen of Death
Andre Guirard | 8/14/2007 4:18:41 PM

Ranjit, please email me the NSD file. Thanks.

18) Getting Error 4603
Prakash Shukla | 7/24/2014 4:06:23 AM

Hello Andre,

Your tool is very much helpful to me. I have developed a analysis tool for internal use in my project using your tool. I am searching number of text words in number of notes databases using your tool and capturing results. I am getting following error in many cases:

Error 4603: SAX parser operation failed/DxlScanDesElemFilter:125

I believe that this error is coming because this tool is unable to handle special characters like ",&,<,> etc.

Have you released next version and handled this problem?

Kindly respond. Thanks.

19) Great Tool
Pravin Shelake | 1/17/2017 10:05:58 AM

I have used this tool to find the name of the person in all design elements who has worked in Notes for more than 25 years. The tool is searching all the databases from 85 servers. Its great tool. Its taking considerable time to process the databases.

I am facing below two issue in this tool

1. String out of space error.

2. At the time of processing some databases, getting pop up for 'Create Cross certificate'. I need to manually click 'Yes' to create the cross certificate in address book.

Is there any way to suppress this pop up automatically.

 Add a Comment
Comment:  (No HTML - Links will be converted if prefixed http://)
Remember Me?     Cancel

Search this blog 


    About IBM Privacy Contact