06-27-2006 1:53 PM
Hi all,
I would like to call RFC funtions from VBA, could you please advise on what library should I set reference to?
A piece of sample code would also be highly appreciated.
Thanks in advance.
Tomas
06-27-2006 2:25 PM
here is a small code sample using vbscript
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>RFC Example - THUSRINFO</title>
<script language="VBScript">
sub get_cust_data()
dim fns
set fns = createobject("SAP.Functions")
fns.logfilename = "my_log.txt"
fns.loglevel = 6
dim conn
set conn = fns.connection
conn.ApplicationServer = "application server name or ip address"
conn.System = "DEV"
conn.user = document.myf.t1.value
conn.password = document.myf.t2.value
conn.Client = "025"
conn.Language = "E"
conn.tracelevel = 6
if conn.logon(0, true) <> true then
exit sub
end if
dim myfunct
set myfunc = fns.add("THUSRINFO")
result = myfunc.Call
the_exception = myfunc.exception
dim users
if result = true then
set users = myfunc.tables.item("USR_TABL")
document.write "Table USR_TABL, " & users.rowcount & " rows"
document.write "<table border=1>"
document.write "<tr>"
document.write "<td>BNAME</td>"
document.write "<td>MANDT</td>"
document.write "<td>TCODE</td>"
document.write "<td>TERM</td>"
document.write "<td>ZEIT</td>"
document.write "<td>HOSTADR</td>"
document.write "<td>RFC TYPE</td>"
document.write "</tr>"
for each user in users.Rows
document.write "<tr>"
document.write "<tr>"
document.write "<td>"
document.write trim(user("BNAME"))
document.write "</td>"
document.write "<td>"
document.write trim(user("MANDT"))
document.write "</td>"
document.write "<td> "
document.write trim(user("TCODE"))
document.write "</td>"
document.write "<td> "
document.write trim(user("TERM"))
document.write "</td>"
document.write "<td>"
document.write trim(user("ZEIT"))
document.write "</td>"
document.write "<td>"
document.write trim(user("HOSTADR"))
document.write "</td>"
document.write "<td> "
document.write trim(user("RFC_TYPE"))
document.write "</td>"
next
document.write "</table>"
set users = nothing
end if
fns.connection.logoff
Set fns = nothing
Set conn = nothing
end sub
</script>
</head>
<body>
<form method="POST" name="myf">
User Id <input type="text" name="T1" size="20"></p>
<p>Password<input type="password" name="T2" size="20"></p>
<p> </p>
<p><input type="button" value="Submit" onclick="get_cust_data()" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>
</body>
</html>
Regards
Raja
06-27-2006 2:15 PM
06-27-2006 2:25 PM
here is a small code sample using vbscript
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>RFC Example - THUSRINFO</title>
<script language="VBScript">
sub get_cust_data()
dim fns
set fns = createobject("SAP.Functions")
fns.logfilename = "my_log.txt"
fns.loglevel = 6
dim conn
set conn = fns.connection
conn.ApplicationServer = "application server name or ip address"
conn.System = "DEV"
conn.user = document.myf.t1.value
conn.password = document.myf.t2.value
conn.Client = "025"
conn.Language = "E"
conn.tracelevel = 6
if conn.logon(0, true) <> true then
exit sub
end if
dim myfunct
set myfunc = fns.add("THUSRINFO")
result = myfunc.Call
the_exception = myfunc.exception
dim users
if result = true then
set users = myfunc.tables.item("USR_TABL")
document.write "Table USR_TABL, " & users.rowcount & " rows"
document.write "<table border=1>"
document.write "<tr>"
document.write "<td>BNAME</td>"
document.write "<td>MANDT</td>"
document.write "<td>TCODE</td>"
document.write "<td>TERM</td>"
document.write "<td>ZEIT</td>"
document.write "<td>HOSTADR</td>"
document.write "<td>RFC TYPE</td>"
document.write "</tr>"
for each user in users.Rows
document.write "<tr>"
document.write "<tr>"
document.write "<td>"
document.write trim(user("BNAME"))
document.write "</td>"
document.write "<td>"
document.write trim(user("MANDT"))
document.write "</td>"
document.write "<td> "
document.write trim(user("TCODE"))
document.write "</td>"
document.write "<td> "
document.write trim(user("TERM"))
document.write "</td>"
document.write "<td>"
document.write trim(user("ZEIT"))
document.write "</td>"
document.write "<td>"
document.write trim(user("HOSTADR"))
document.write "</td>"
document.write "<td> "
document.write trim(user("RFC_TYPE"))
document.write "</td>"
next
document.write "</table>"
set users = nothing
end if
fns.connection.logoff
Set fns = nothing
Set conn = nothing
end sub
</script>
</head>
<body>
<form method="POST" name="myf">
User Id <input type="text" name="T1" size="20"></p>
<p>Password<input type="password" name="T2" size="20"></p>
<p> </p>
<p><input type="button" value="Submit" onclick="get_cust_data()" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>
</body>
</html>
Regards
Raja