One of my clients recently wanted to create a new document based on values entered in a Web form when a button was pressed, BUT didn't want the user to have to submit the form to trigger the agent. This had to happen completely in the background without a round trip to the server and even better; the agent was located in a different database on a completely different server hosted in another domain.
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
Here's how I did it...
On the user Web form, I created a small image that was an invisible GIF using an HTML image tag. This serves as a placeholder for the image I want to return from an agent later on.
<img src="server/database/invisible.gif" name="image1">
document.forms.image1.src="/server/database/createdoc?openagent&id=" + form.data.value;
In the target Domino database, I wrote a LotusScript agent to create the required document and return an image to the browser. I used the query_string_decoded CGI variable to pass data from the Web form to the new document.
'Create a document and return an image to the browser Dim session As New NotesSession Dim Webdoc As NotesDocument Set Webdoc = session.DocumentContext Dim db As NotesDatabase Set db = session.CurrentDatabase Dim doc As New NotesDocument(db) doc.query = Webdoc.query_string_decoded(0) if doc.Save(True,True) then 'Show a tick in the browser if all is well Print "[http://servername/database.nsf/cross.jpg?OpenImageResource]" else 'Show an x to indicate the document wasn't created Print "[http://servername/database.nsf/tick.jpg?OpenImageResource]" end if