Manage Learn to apply best practices and optimize your operations.

Debugging agents on the Web

This piece of code traps the error messages generated by Domino and uses Javascript to popup the errors on the Web.

This piece of code traps the error messages generated by Domino and uses Javascript to popup the errors on the Web.

Before I begin this tip I would like to mention that trick was developed by Ashwin Satyamoorthi and myself. Ashwin developed the AlertForm.

The first step is to create a form and call it "AlertForm" (you can change the name of the form ... of course).

Write the following code in the OnLoad event of the form:

 javascript:alert(document.forms(0).reqd_query.value) if (document.forms(0).addl_query_redirect.value == "") { window.history.back() } else { //alert (document.forms(0).addl_query_redirect.value)"/" + document.forms(0).addl_query_redirect.value , "_self") }

I'll explain what this code does in sometime.

The next step is to put some fields on your form. The following fields are required on the form:

 Field name:- Query_String_Decoded Type:- editable Default value:- Field name :- reqd_query Type:- computed value :- @Left(@RightBack(Query_String_Decoded ; "openform&") ; "redpath") Field name :- addl_query_redirect Type :- Computed value :- @Trim(@RightBack(Query_String_Decoded ; "redpath"))

The next step is to include an error handler in your script that you want to debug on the Web.

 On error goto errHandler your code goes here errHandler: Print "[/" + currDoc.hdatabase_webTX(0) + "/AlertForm?openform&"+Error$ +".redpath]" Exit Sub

currDoc.hdatabase_webTX(0) is a field on the form from which this script was called, the field stores the value of the Web path of the database and has the following formula :- @ReplaceSubstring(@Trim(@Subset(@DbName;-1)); ""; "/")

If a calling form is not available then you can use the filepath property of the notesdatabase to generate the path in the print statement of the error handler.

explanation of the print statement:- the print statement basically opens the AlertForm and populates the value of querystring with the text of the error message. The text is got from the Error$ in the print statement. The next option in the statement is "redpath" if you include a URL after this text the alert form will take you to this URL if there is no text after redpath then after the alert message is displayed then the script will take you back to from where the script was triggered if the script was triggered from a form then the user will be taken back to the form.

You can modify the print statement to also include the line number to make debugging easier.

Explanation of the fields on the AlertForm :- Query_String_Decoded needs no explanation I guess.

reqd_query picks up the error message to be displayed from the Query_String_Decoded field

addl_query_redirect picks up the redirect path if any.

Example code

 Sub Initialize On Error Goto errHandler Dim session As New NotesSession Dim currDB as NotesDatabase Dim currDoc as NotesDocument Dim x as integer ' initialise variables Set currDB=session.CurrentDatabase Set currDoc=session.DocumentContext x=129/0 Print cstr(x) Exit Sub errHandler: Print "[/" + currDoc.hdatabase_webTX(0) + "/alert?openform&"+Error$ +".redpath]" Exit Sub End Sub

Dig Deeper on Domino Resources - Part 3

Start the conversation

Send me notifications when other members comment.

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 ...