小编:你好Stefan, 我一直在不同的网站上关注你的例子,对SAP GUI脚本的可能性很感兴趣。我有一个SAP GUI脚本在SAP上运行事务的用例,其函数如下: function ProcessRow() Dim W\u transaction,W\u
你好Stefan,
我一直在不同的网站上关注你的例子,云服务器存储,对SAP GUI脚本的可能性很感兴趣。我有一个SAP GUI脚本在SAP上运行事务的用例,其函数如下:
function ProcessRow()
Dim W\u transaction,W\u Variant
W\u Transaction="/nPC00\u M16\u CALC\u SIMU"
W\u Variant="DEMO1"
对象.findById("wnd[0]"),最大化
对象.findById("wnd[0]/tbar[0]/okcd").Text=W\u事务
对象.findById("wnd[0]")。sendVKey 0
对象.findById("wnd[0]/tbar[1]/btn[17]"),按
对象.findById("wnd[1]/usr/txtV LOW")。文本=W\ U变型
对象.findById("wnd[1]/usr/txtENAME LOW").Text="
对象.findById("wnd[1]/usr/txtENAME LOW").SetFocus
对象.findById("wnd[1]/usr/txtENAME LOW").caretPosition=0
对象.findById("wnd[1]")。sendVKey 8
对象.findById("wnd[0]/tbar[1]/btn[8]"),按
End Function
键,查淘客助手,我像你一样把它存储在include中上面是这个例子,但是当我在ABAP中用'AddCode'的call方法执行这个时,淘客宝下载,我得到了返回代码2-如何调试我的脚本和/或你有这个用例的工作示例(用脚本从SAP调用SAP事务)?
提前谢谢!
简
你好,简,
这是可能的。您必须完全从SAP后端上下文之外开发脚本,只有这样您才能使用。无法在SAP后端上下文中调试脚本。
这里是一个有效的示例脚本:
这里是ABAP报告:
我检查了它,它可以工作。
但是您必须非常小心地从另一个SAP会话控制一个SAP会话。您必须非常确定您要用脚本控制的会话不是执行报告的会话。
干杯
Stefan
谢谢Stefan,广西云服务器,非常感谢!
您好,Stefan,
我面临的问题是,在VBA编辑器中运行良好的代码,在执行ScriptCtrl'AddCode'Exporting#1=InclCode的调用方法时,有时会给出subrc=2。你知道我如何用语法检查这一点吗?或者在使用这样的代码时,我需要知道一些明显的东西:
函数启动处理(可选mysystem作为字符串)
Dim SapGuiAuto,WScript,msgcol
Dim objGui作为GuiApplication
Dim objConn作为GuiConnection
Dim objSess作为GuiSession
Dim objSBar作为GuiStatusbar
Dim W\u System
DimiCtr为整数
Dim W\ U Obj1,W\ U Obj2,W\ U Obj3,W\ U Obj4,iRow
Dim W\ U Func
Dim W\ U Src\ U Ord
Dim W\ U Ret为布尔值
Dim il,it
Dim W\ U conn,W\ U Sess
Dim W\ U事务,W\u Variant
Dim lineitems As Long
如果mysystem=""则
W\u System="ELS010"
否则
W\u System=mysystem
结束如果
如果W\u System=""则
退出功能
结束如果
如果非objSess为Nothing则
如果objSess.Info.system名称& objSess.Info.Client客户端=W\u系统则
退出功能
结束如果
结束如果
如果objGui为空则
设置SapGuiAuto=GetObject("SAPGUI")
设置objGui=SapGuiAuto.GetScriptingEngine
结束如果
对于il=0到objGui.Children.Count-1
设置W\u连接=孩子们(il+0)
对于it=0到W_连接儿童计数-1
设置W\u Sess=W_康涅狄格州儿童(it+0)
如果W_Sess.Info.SystemName系统名称&W型_Sess.Info.Client客户端=W\U系统和W_销售信息交易"SE38"则
设置对象=孩子们(il+0)
设置对象=目标儿童(it+0)
退出
结束如果
下一步
下一步
如果objSess为空则
MsgBox"没有到系统的活动会话"+W\u system+",或脚本未启用。",vbCritical+vbOKOnly
GoTo myerr
结束如果
如果IsObject(WScript)则
WScript.ConnectObject很明显,"开"
WScript.ConnectObject奥比吉,如果
设置对象栏=对象.findById("wnd[0]/sbar")
对象.findById("wnd[0]")。最大化
错误转到myerr
W\u Transaction="/nPC00\u M16\u CALC\u SIMU"
W\u Variant="DEMO1"
对象.findById("wnd[0]"),最大化
对象.findById("wnd[0]/tbar[0]/okcd").Text=W\u事务
对象.findById("wnd[0]")。sendVKey0
对象.findById("wnd[0]/tbar[1]/btn[17]"),按
对象.findById("wnd[1]/usr/txtV LOW").Text=W\u变量
对象.findById("wnd[1]/usr/txtENAME LOW").Text="
对象.findById("wnd[1]/usr/txtENAME LOW").SetFocus
对象.findById("wnd[1]/usr/txtENAME LOW").caretPosition=0
对象.findById("wnd[1]")。sendVKey8
对象.findById("wnd[0]/tbar[1]/btn[8]"),按
退出功能
myerr:
结束功能
Hello Jan,
此方法无法使用VBA代码。只能使用VBScript。例如,带有类型规范的Dim声明会生成错误。
,下载云服务器文章来源:www.vmchk.com