SAP.Functions --- Active X组件错误

2020-09-26 02:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我一直试图编写一个脚...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我一直试图编写一个脚本,其中我从脚本中调用功能模块并执行。 我浏览了几个代码论坛。 但是,当我使用它时,出现错误。

请找到以下代码和错误。

设置funcControl = CreateObject(" SAP.Functions")

设置compname = funcControl.Add(" TMP_GUI_GET_COMPUTERNAME")

如果compname.Call = True然后

计算机名= compname.IMPORTS("计算机名称")

MsgBox计算机名

如果结束

当我尝试执行以上代码时,我得到 Active X组件无法创建对象" SAP.Functions"的错误。

我能够在Stefan(使用32位)cmd.exe的答案之一的帮助下运行脚本。

现在的问题是,对程序的调用不成功。

设置funcControl = CreateObject(" SAP.Functions")

设置compname = funcControl.Add(" TMP_GUI_GET_COMPUTERNAME")

MsgBox组合名(此行给出FM名称,作为消息框中的输出)

如果compname.Call = True然后

MsgBox"呼叫成功"

其他

MsgBox"呼叫失败"

如果结束

每次尝试运行脚本时,都会收到"呼叫不成功"的信息。 您能否帮助我理解为什么对程序的调用无法通过?

此致

Dipesh

4条回答
95年老男孩
2020-09-26 03:09

你好Dipesh,

SAP GUI和RFC连接是不同的方式。 您一方面具有GUI_Connection,另一方面具有RFC_Connection。 查看修改后的代码,以在一个脚本中并行使用这些不同类型的连接:

关于错误继续下一个
 设置SapGuiAuto = GetObject(" SAPGUI")
 出错时转到0
 如果不是IsObject(SapGuiAuto)
   MsgBox" SAP登录板未运行,请单击"确定"开始"
   设置WshShell = CreateObject(" WScript.Shell")
   设置proc = WshShell.Exec(" C:\ Program Files(x86)\ SAP \ FrontEnd \ SAPgui \ saplogon.exe")
   WScript.Sleep 4000
   设置SapGuiAuto = GetObject(" SAPGUI")
 万一
 设置应用程序= SapGuiAuto.GetScriptingEngine
 SID = InputBox("请输入SID进行登录")
 如果不是IsObject(connection)然后
   设置GUI_Connection = application.OpenConnection(SID,True)
 万一
 如果不是IsObject(session)然后
   设置会话= GUI_connection.Children(0)
 万一
 session.findById(" wnd [0]/usr/txtRSYST-MANDT")。text =" 200"
 UID = InputBox("请输入我们的ISID")
 session.findById(" wnd [0]/usr/txtRSYST-BNAME")。text = UID
 密码=输入框("请输入密码")
 session.findById(" wnd [0]/usr/pwdRSYST-BCODE")。text =密码
 session.findById(" wnd [0]/usr/pwdRSYST-BCODE")。setFocus
 session.findById(" wnd [0]/usr/pwdRSYST-BCODE")。caretPosition = 8
 session.findById(" wnd [0]")。sendVKey 0


 '****用户机器信息***************
 设置funcControl = CreateObject(" SAP.Functions")
 设置RFC_Connection = SAPFunc.Connection()
 RFC_Connection.Client =" 200"
 RFC_Connection.User = UID
 RFC_Connection.Password =密码
 RFC_Connection.Language =" EN"
 RFC_Connection.System = SID
 RFC_Connection.HostName =" ABAP"
 RFC_Connection.SystemNumber = 0
 SAPConnection = RFC_Connection.Logon(0,vbTrue)
 设置compname = funcControl.Add(" TMP_GUI_GET_COMPUTERNAME")
 如果compname.Call = True,则
   MsgBox"呼叫成功"
 其他
   MsgBox"更正程序"
 万一
 RFC_Connection.LogOff()
 

让我们知道您的结果。

干杯
Stefan

一周热门 更多>