<sira
...@hotmail.com> wrote in message
news:70433929-b470-4b28-a027-fad0ce581cf7@a23g2000hsc.googlegroups.com...
> Hi, I have none to very little experience in Domino. So bear with my
> ignorance as I try to explain my request.
> We have a Lotus Notes application and we would like to automate
> creating a new document or record in that application from another web
> based application.
> I am not asking for the entire code. All I would like is some
> direction or high level steps to accomplish the above.
> Here are the details:
> User action on web application triggers a PERL script to create a new
> record (document) in Lotus Notes (or Domino).
> Question:
> How can I accomplish the above? Clearly there is no Notes Client
> available to the Web Application. So do I write an agent that creates
> a new document? How can I call this agent from my web application? Or
> am I taking the wrong approach?
> Any suggestions would be greatly appreciated!
As "kaps" also suggest, the agent approach is the best. I am using it myself
in several applications.
This is what I would do:
Create an agent that read the URL parameters you send to it.
Let's call the agent CreateNewDocument, and have two fields we want to fill
out when the document is created. The Perl script can then call the URL like
this:
http://www.example.com/notesdd.nsf/CreateNewDocument?OpenAgent&name=J...
The agent read the arguments and populate the corresponding fields, then
save the document. I would highly recommend using a list to store the
parameters, then you have a generic function you can re-use in any
application.
In my article in the November/December 2006 issue of The View (starting on
page 25) you have code for this.
Here is a class I just wrote to parse an incoming HTTP GET or POST. Put it
in a script library called for example "URL.class":
Class URLclass
Public url As String
Private params List As String
Public Sub New()
Dim session As New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext ' Document with all CGI variables
' Check if HTTP GET or POST was used...
If Instr(doc.Query_String(0),"&") > 0 Then ' GET was used
url = doc.Query_String(0)
Elseif Instr(doc.Request_Content(0),"&") > 0 Then ' POST was used
url = "&" & doc.Request_Content(0)
Else ' No parameters
Exit Sub
End If
End Sub
Public Function GetParams() As Variant
Dim offset As Integer
Dim startpos As Integer
Dim midpos As Integer
Dim endpos As Integer
Dim nextpos As Integer
Dim dataname As String
Dim datavalue As String
startpos = Instr(url,"&") ' Start of first parameter
Do While Not startpos = 0
nextpos = Instr(startpos+1, url, "&") ' Start of next parameter
If nextpos = 0 Then ' We reached the end
endpos = Len(url)+1
Else
endpos = nextpos
End If
midpos = Instr(startpos+1, url, "=") ' Position of = character
dataname = Mid$(url,startpos+1,midpos-startpos-1) ' Get name
datavalue = Mid$(url,midpos+1,endpos-midpos-1) ' Get value
params(dataname) = datavalue ' Add value to list
startpos = nextpos ' Set new start position
Loop
GetParams = params
End Function
End Class
And here is a sample agent that uses the class and print the arguments to
the browser:
Option Public
Option Declare
Use "URL.class"
Sub Initialize
Dim url As New URLclass
Dim params As Variant
params = url.GetParams()
Forall x In params
Print Listtag(x) & " = " & params(Listtag(x)) & "<br>"
End Forall
End Sub
Just expand on that code to create the document. Good luck!
I am also posting this code to my blog at
http://www.bleedyellow.com/blogs/texasswede/entry/parse_url_in_domino...
/Karl
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
Visit my blog at http://www.bleedyellow.com/blogs/texasswede/