When trying to resolve formula coding issues, developers typically use @Prompts to display information at different points in the formula. You then need to remove all those @Prompts when all the debugging work is done, or when you want to see how the formula is working without the debug prompts.
You make using the @Prompts easier by creating your own formula debugger. You can use an environment variable to tell formulas to display or ignore the prompts. Also, on a system where the environment variable is not set at all, your debug prompts do not appear.
Note: This formula debugger will work in all versions of Notes. If you have Notes R5, you can also try an undocumented, beta version formula debugger within the Notes client. To try it, press and hold down Ctrl-Shift, then choose File - Tools - Debug LotusScript.
Set the environment variable using a SmartIcon
You can create a SmartIcon to set the environment variable, which allows you to toggle your formula debugger.
Create a SmartIcon (File - Preferences -SmartIcon Settings) that uses the following formula:
list1 := "Yes" : "No" : "";
list2 := "No" : "Yes" : "Yes";
list := "OFF" : "ON" : "ON";
status := @Environment("AllDebug");
neg := status = "No" : "";
choice := @Prompt([YESNO]; "Change Prompt";
"You are about to turn your formula debugger to:
" + @Replace(status; list1; list) +
@Char(13) + @Char(13) + "Do you wish to continue?");
@If(choice;
@SetEnvironment("AllDebug"; @Replace(status; list1; list2));
"") |
Once the SmartIcon is created, clicking it produces the following message:
Figure 1. Formula debugger on

If you turn the debugger on, you can click the SmartIcon again to shut it off:
Figure 2. Formula debugger off

Using the environment variable in your formulas
In your formula codes, begin with:
debug := @Environment("AllDebug") = "Yes";
Then, whenever the you need to check values, create a section similar to the following:
@If(debug;
@Do(
@Prompt([OK]; "variable1"; variable1);
@Prompt([OK]; "variable2"; variable2);
@Prompt([OK]; "variable3"; variable3);
...);
""); |
When the formula debugger is "On", the prompts will display. When it is "Off", they won't.
Robert Albritton is from Solutions By Design, Inc., a Lotus Business Partner and 1999 Lotus Beacon Award winner.
Craig is the Project Manager for the Lotus Developer Domain. He started at Lotus in January 1998, first working in the Notes/Domino documentation group. In August 1999, he joined Iris Associates to be a writer and then Content Manager for Notes.net. In previous jobs, he was a technical writer at EDS and Harper & Shuman (which has been gobbled up by some company called Deltek). He holds a Business Communication degree from Bentley College in Waltham, Mass. and is still looking for a nice frame for it. When he's not working, Craig is usually spending time with his wife, or watching his tape of last night's Late Show with David Letterman.




