I found an issue/limitation with ‘?searchview’ option in web database search. We have a search form with multiple fields, where in the end user can select their own search criteria. When ever the selected query crosses the limit of 512 characters, it shows the following error message in the browser.
"Error 500HTTP Web Server: Application Exception - Search query is too long"
Some web site explains that, the issue is with domino server and doesn’t support more than 512 characters in a URL. In between, I confirmed that Domino server supports long URLs (more than 512 characters). Finally I came to know that the 512 character limitation is applicable only for search URLs, that too in a single argument. While using ‘?searchview’ the search criteria is passing though an argument called ‘&Query’. As domino server won’t process more than 512 characters in a single argument using ‘?searchview’.
In order to overcome this limitation, we can create our own agent to perform the search. This agent can be triggered from the web page with all selected search criteria though POST method. This implementation may hit the search performance. Hence I designed a Lotus Notes web based tool to perform an Advanced Search in notes databases. This is a reconstruction of Domino’s default search functionality using AJAX, Lotus Script, Formula Language, Java Script, DHTML and JSON. This tool will support up to 64,000 characters in a single search query. This is a miraculous number compare to 512 character limitation in the Domino default search functionality. I can help you on this if you need more details.
Tuesday, April 13, 2010
Friday, February 26, 2010
Opening an existing document in Read mode is taking more time - when Form contains @DbLookup or @ DbColumn
We have undergone some performance issues recently, opening an existing notes document in Read mode is taking more time.
We found that issue is with an Editable field in the document, which contains an @DbColumn lookup to generate the choices for Dialog List Keyword fields.
In order to resolve this issue we modify the lookup to execute only when the document is in Edit mode. To have the @DbLookup or @DbColumn execute only when the document is opened in Edit mode, we used @IsDocBeingEdited in combination with @DbLookup or @DbColumn formula.
For example: @If(@IsDocBeingEdited;@DbColumn("";"":"INVENTRY.NSF";"Inventory On Hand";2);"")
We found that issue is with an Editable field in the document, which contains an @DbColumn lookup to generate the choices for Dialog List Keyword fields.
In order to resolve this issue we modify the lookup to execute only when the document is in Edit mode. To have the @DbLookup or @DbColumn execute only when the document is opened in Edit mode, we used @IsDocBeingEdited in combination with @DbLookup or @DbColumn formula.
For example: @If(@IsDocBeingEdited;@DbColumn("";"":"INVENTRY.NSF";"Inventory On Hand";2);"")
Saturday, February 20, 2010
@Functions - Used for calculations and simple logic
This can be used in web applications along with web form in Domino servers.
@Commands - This will perform actions in the user interface. Normally they are like menu commands. We can perform Lotus Notes client actions in our notes applications.
Thease are the functions designed only for notes client. Inorder to achieve the same in web, the basic design elements needs to be modified to use Java Applets. These modifications should be done my developer at form level. The view design element have default option to use Java Applet in web.
This can be used in web applications along with web form in Domino servers.
@Commands - This will perform actions in the user interface. Normally they are like menu commands. We can perform Lotus Notes client actions in our notes applications.
Thease are the functions designed only for notes client. Inorder to achieve the same in web, the basic design elements needs to be modified to use Java Applets. These modifications should be done my developer at form level. The view design element have default option to use Java Applet in web.
How to run/stop an agent using Domino server console.
This can be achieved using Amgr task. Use the following commands for the same.
To run an agent: Tell Amgr Run “DbName.nsf” ‘AgentName’
To stop an agent: Tell Amgr Cancel “DbName.nsf” ‘AgentName’
To run an agent: Tell Amgr Run “DbName.nsf” ‘AgentName’
To stop an agent: Tell Amgr Cancel “DbName.nsf” ‘AgentName’
Monday, February 1, 2010
How to customize the default 'Document Delete' message in notes web applications?
We can create a form named '$$ReturnDocumentDeleted' in our application database and domino automatically will use that form when a document has been deleted from the application.
Subscribe to:
Posts (Atom)