|
This is a multipart message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
Brian, here is how I do it. I don't send the values to a field, but maybe
this will help get you in the right direction. These are just partial
codes, so if it looks incomplete, well, it is. Let me know if any
sections need further detail.
First, the form from the web, a $$Return Field has the following:
@Return("[http://www.website.com/mydb.nsf/Rate?OpenAgent&"+@Trim(FromZip)
+"&"+ @Trim(FromAcct)
+"&"+@Trim(ToZip)+"&"+@Trim(InOut)+"&"+@Trim(PreColl)+"&"+ @Trim(class1)
+"&"+ @If(@Contains(weight1;".");@Left(@Trim(weight1);".");@Trim(weight1))
+"&" +@Trim(class2)+"&" +
@If(@Contains(weight2;".");@Left(@Trim(weight2);".");@Trim(weight2))
+"&"+@Trim(class3)+"&"+@If(@Contains(weight3;".");@Left(@Trim(weight3);".");@Trim(weight3))+"&"
+ @Trim(class4) +"&"+
@If(@Contains(weight4;".");@Left(@Trim(weight4);".");@Trim(weight4))
+"&"+@Trim(class5)+"&"+
@If(@Contains(weight5;".");@Left(@Trim(weight5);".");@Trim(weight5))+"&"+
@Trim(ThirdParty)+"]")
All that big ol' thing does is take the values out of each field and
seperate them with an &. These are passed to the agnt that is run with
the OpenGent command.
Within th agent, the first thing to do is seperate the values that are in
the big string. That is accomplished like so:
'******************************************************************
'* The variables correspond to the parameters passed *
'* to the RPG program on the AS/400 an must be *
'* the exact same size as the parameters in the RPG. *
'*******************************************************************
Dim rate5 As String * 7
Dim minim As String * 7
Dim thirdp As String * 1
Dim class1d As String
Dim class2d As String
Dim class3d As String
Dim class4d As String
Dim class5d As String
Dim amount1 As String
Dim amount2 As String
Dim amount3 As String
Dim amount4 As String
Dim amount5 As String
Dim defweight As String
Dim defrate As String
Dim defamt As String
Dim factnam As String
Dim tactnam As String
Dim zipchange As String
Dim warning As String
Dim warning2 As String
Dim freightchar As String
Dim discperc As String
Dim discdoll As String
Dim fuelperc As String
Dim fueldoll As String
Dim nettotal As String
Dim tariff As String
Dim effdate As String
seqnum = Year(Now) & Hour(Now) & Minute(Now) & Second(Now)
Set session = New NotesSession
Set conn = New ODBCConnection
Set query = New ODBCQuery
Set data = New ODBCResultSet
Set result = New ODBCResultSet
Set query.connection = conn
Set data.query = query
Set doc = session.DocumentContext
Set db = session.CurrentDatabase
conn.SilentMode = True
URLString = doc.Query_String(0)
URLLength = Len(URLString)
'**********************************************************************
' Get the first parameter.
'**********************************************************************
ParamPosition = Instr(URLString,"&") + 1
ParamStop = Instr(ParamPosition, URLString, "&")
ParamLen = (ParamStop - ParamPosition)
fromzip = Mid(URLString, ParamPosition, ParamLen)
fromziphold = Mid(URLString, ParamPosition, ParamLen)
'**********************************************************************
' Get the second parameter.
'**********************************************************************
ParamPosition = (ParamStop + 1)
ParamStop = Instr(ParamPosition, URLString, "&")
If ParamStop = 0 Then
ParmContinue = 0
ParamLen = (URLLength - ParamPosition) + 1
Else
ParmContinue = 1
ParamLen = (ParamStop - ParamPosition)
End If
fromacct = Mid(URLString, ParamPosition, ParamLen)
'**********************************************************************
' Get the Third parameter.
'**********************************************************************
ParamPosition = (ParamStop + 1)
ParamStop = Instr(ParamPosition, URLString, "&")
If ParamStop = 0 Then
ParmContinue = 0
ParamLen = (URLLength - ParamPosition) + 1
Else
ParmContinue = 1
ParamLen = (ParamStop - ParamPosition)
End If
tozip = Mid(URLString, ParamPosition, ParamLen)
toziphold = Mid(URLString, ParamPosition, ParamLen)
'**********************************************************************
' Get the Fourth parameter.
'**********************************************************************
ParamPosition = (ParamStop + 1)
ParamStop = Instr(ParamPosition, URLString, "&")
If ParamStop = 0 Then
ParmContinue = 0
ParamLen = (URLLength - ParamPosition) + 1
Else
ParmContinue = 1
ParamLen = (ParamStop - ParamPosition)
End If
inout = Mid(URLString, ParamPosition, ParamLen)
If inout = "I" Then
inoutdisp = "Inbound"
Else
inoutdisp = "Outbound"
End If
'**********************************************************************
' Get the Fifth parameter.
'**********************************************************************
ParamPosition = (ParamStop + 1)
ParamStop = Instr(ParamPosition, URLString, "&")
If ParamStop = 0 Then
ParmContinue = 0
ParamLen = (URLLength - ParamPosition) + 1
Else
ParmContinue = 1
ParamLen = (ParamStop - ParamPosition)
End If
precoll = Mid(URLString, ParamPosition, ParamLen)
If precoll = "P" Then
precolldisp = "Prepaid"
Else
precolldisp = "Collect"
End If
'**********************************************************************
' Get the Sixth parameter.
'**********************************************************************
ParamPosition = (ParamStop + 1)
ParamStop = Instr(ParamPosition, URLString, "&")
If ParamStop = 0 Then
ParmContinue = 0
ParamLen = (URLLength - ParamPosition) + 1
Else
ParmContinue = 1
ParamLen = (ParamStop - ParamPosition)
End If
class1 = Mid(URLString, ParamPosition, ParamLen)
If ParmContinue=1 Then
You get the picture. Just keep going till you have each value set to a
variable. Then I pass the stuff off to the AS/400 to run a program and
get a return.
If Not conn.ConnectTo("S1027626", "notes", "notes") Then
error% = conn.getError
Print "<br>" & conn.getErrorMessage(error%) & "</br>"
Print "<br>"
Print conn.getExtendedErrorMessage(error%)
Print Str$(error%)
Exit Sub
End If
'****************************************
' AS/400 Call
'****************************************
Query.SQL = "CALL LTL400V312.txr007('" & seqnum & "', '" &
fromacct & "', '" & inout & "','" & precoll & "', '" & thirdp & "', '" &
fromzip & "', '" & tozip & "', '" & class1 & "', '" & class2 & "', '" &
class3 & "', '" & class4 & "', '" & class5 & "', '" & weight1 & "', '" &
weight2 & "', '" & weight3 & "', '" & weight4 & "', '" & weight5 & "')"
If Not data.Execute Then
Print data.GetExtendedErrorMessage
End If
query.SQL = "SELECT * FROM LTL400V313.TXP007 WHERE (TXPSEQ = '"&
seqnum &"')"
If Not data.Execute Then
Print data.GetExtendedErrorMessage
End If
data.nextrow
rate1 = data.GetValue("TXPRT1")
rate2 = data.GetValue("TXPRT2")
rate3 = data.GetValue("TXPRT3")
rate4 = data.GetValue("TXPRT4")
rate5 = data.GetValue("TXPRT5")
minim = data.GetValue("TXPMIN")
amount1 = data.GetValue("TXPAM1")
amount2 = data.GetValue("TXPAM2")
amount3 = data.GetValue("TXPAM3")
amount4 = data.GetValue("TXPAM4")
amount5 = data.GetValue("TXPAM5")
defweight = data.GetValue("TXPDFW")
defrate = data.GetValue("TXPDFR")
defamt = data.GetValue("TXPDFA")
freightchar = data.GetValue("TXPGRS")
discperc = data.GetValue("TXPDSP")
discdoll = data.GetValue("TXPDSA")
fuelperc = data.GetValue("TXPFSP")
fueldoll = data.GetValue("TXPFSA")
nettotal = data.GetValue("TXPNET")
tariff = data.GetValue("TXPTC")
effdate = data.GetValue("TXPEFF")
tactnam = data.GetValue("TXPTNM")
factnam = data.GetValue("TXPFNM")
tozip = data.GetValue("TXPTZP")
fromzip = data.GetValue("TXPFZP")
zipchange = data.GetValue("TXPOVR")
Actually, it just passes the values to a program on the 400, the program
there writes it out to a file that I read for the result I want. Then it
jsut a matter of displaying the result on the new page:
'*****Open Web Page*****
URL =
"http://www.mypage.com:8081/Rates.nsf/Display?OpenForm&Rate1=" &
Trim(seqnum) & "?" & Trim(fromacct) & "?" & Trim(fromzip) & "?" &
Trim(toacct) & "?" & Trim(tozip) & "?" & Trim(class1) & "?" &
Trim(weight1) & "?" & Trim(class2) & "?" & Trim(weight2) & "?" &
Trim(class3) & "?" & Trim(weight3) & "?" & Trim(class4) & "?" &
Trim(weight4) & "?" & Trim(class5) & "?" & Trim(weight5) & "?" &
Trim(rate1) & "?" & Trim(rate2) & "?" & Trim(rate3) & "?" & Trim(rate4) &
"?" & Trim(rate5)
'*****Display information in new web page*****
Print "<BODY TEXT="000000"
BACKGROUND='/Rates.nsf/images_bkgd.jpg?OpenImageResource'>"
Print "<BR>"
Print "<CENTER>"
Print "<H4 ALIGN=CENTER><FONT COLOR='BLACK'><font size=4><B><I> Quote
Number = " & seqnum & "</I></H4>"
Print "<B><FONT SIZE=3 COLOR='BLACK'>Estimated Rate Quote from " &
fromzip & " to " & tozip & "</FONT></B><BR>"
Print "</DIV><BR>"
Print "<TABLE BORDER=0>"
Print "<TR VALIGN=top><TD WIDTH="400"><DIV ALIGN=center><B><FONT
COLOR='BLACK'>Account: " & factnam & "</FONT></B></DIV></TD></TD>"
Print "</TABLE>"
Print "<TABLE BORDER=0>"
'Print "<TR VALIGN=top><TD WIDTH="200"><DIV ALIGN=left><B><FONT
COLOR='BLACK'>Freight Charges:</FONT></B></DIV></TD><TD WIDTH="150"><DIV
ALIGN=left><B><FONT COLOR='BLACK'> $ " & freightchar &
"</FONT></B></DIV></TD>"
Print "<TR VALIGN=top><TD WIDTH="200"><DIV ALIGN=left><B><FONT
COLOR='BLACK'>" & inoutdisp & "</FONT></B></DIV></TD></TD><TD
WIDTH="100"><DIV ALIGN=center><B><FONT COLOR='BLACK'>" & precolldisp &
"</FONT></B></DIV></TD></TD>"
Print "</TABLE>"
Print "<BR>"
Print "<CENTER>"
Print "<TABLE BORDER=0>"
Once again, you get the idea. I wont paste the whole thing cause it's
kinda big. Finally, dont forget to disconnect like a good programmer ; -
P
'*****************************************
' Done!!!
'*****************************************
data.close(DB_CLOSE)
conn.Disconnect
I hope this helps in some way.
-JS
clib@gptruck.com
Sent by: domino400-admin@midrange.com
07/29/2002 04:08 PM
Please respond to domino400
To: domino400@midrange.com
cc:
Subject: Forms and Agents
Hi folks.
I apologize in advance for lack of clarification; my brain is racked a
bit.
Is it possible to run an agent from a web-based form when it is first
opened? I've tried running an agent from WebQueryOpen and Initialize, but
none of the output from that agent shows up when the page loads. What I'm
trying to do is pass a few variables in the query string, then (from
within
an agent) parse out each of the needed variables from the query string and
then use those variables in an sql query; and from the data set that the
query returns, I am attempting to populate certain fields. I've written
the
agent to do all this--it is just a matter of getting the form and the
agent
to work together.
Any ideas?
Thanks,
Brian Cline
G&P Trucking Company
clib@gptruck.com
800.922.1147
_______________________________________________
This is the Lotus Domino on the iSeries / AS400 (DOMINO400) mailing list
To post a message email: DOMINO400@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/domino400
or email: DOMINO400-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/domino400.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.