Not Forum Friday, but Usenet Tuesday.
A user in comp.groupware.lotus-notes.programmer had a question about generating Notes document remotely/in an automated way from another web application, using Perl:
> 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.
>
> Here are the details:
> User action on web application triggers a PERL script to create a new
> record (document) in Lotus Notes (or Domino).
Here is my suggestion:
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:
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