在后台运行SAP Script(不可见)

时间:2015-01-27 11:53:22

标签: vba sap outlook-vba

我正在编写一个代码来通过Outlook自动执行某些SAPGUI任务,但我需要它在后台运行。

是否存在visible = false选项? 如果没有,我该怎么办?

5 个答案:

答案 0 :(得分:3)

谢谢大家。

我想通了,只需要添加

.findById("wnd[0]").iconify

再次感谢

答案 1 :(得分:0)

您可以在不显示Outlook UI的情况下从任何应用程序自动执行Outlook。有关详细信息,请参阅How to automate Outlook from another program

另外,您可能会发现Using Automation to Send a Microsoft Outlook Message文章很有帮助。

答案 2 :(得分:0)

从我的expirience,我知道运行SAP脚本的两个选项,第一个是使用WScript.Shell,我知道有太多信息反对这个方法,尝试搜索它

Sub test()
    Dim Wsh
    Set Wsh = CreateObject("WScript.Shell").Run("C:\Users\USERNAME\Desktop\Script1.vbs")
End Sub

此方法允许在PC中启动应用程序,例如:

Sub test2()
    Dim Wsh As Object
    Set Wsh = CreateObject("WScript.Shell").Exec("calc.exe")
End Sub

第二个运行脚本,是在没有* .vbs文件的MS Office中从脚本启动代码,如下例所示

Option Explicit

Public SapGuiAuto As Object
Public ApplicationSAP As Object
Public Connection As Object
Public Session As Object

Sub start()
Set SapGuiAuto = GetObject("SAPGUI")
Set ApplicationSAP = SapGuiAuto.GetScriptingEngine
Set Connection = ApplicationSAP.Children(0)
Set Session = Connection.Children(0)

Session.findById("wnd[0]").maximize             ' max main SAP window
Session.findById("wnd[0]/tbar[0]/okcd").Text = "/n" & "IW33"    'Transaction code
Session.findById("wnd[0]").sendVKey 0               'start transaction

End Sub

我希望它能帮助您进一步搜索所需信息

答案 3 :(得分:0)

您可以使用连接字符串末尾的OpenConnection通过OpenConnectionByConnectionString/INPLACE连接到您的服务器。

恢复......不要使用像conn = scripting_engine.Children( 0 )之类的东西,而是尝试使用类似的东西:

conn = scripting_engine.OpenConnection( 'MYSAPCONNECTION /INPLACE' )
session = conn.Children( 0 )

离开...在this链接查看更多内容。

答案 4 :(得分:-1)

您可以尝试以下方法:session.TestToolMode = 1

此致 ScriptMan