我接到一个任务,让办公室里的人每天使用SAP Logon 640完成一些无聊的任务。
大约有30-40个事务需要自动化。
我在SAP Automation上搜索了很多,找到了SAP GUI Scripting,但没有找到python, php或java的任何起点。
我应该如何开始使用python, php或java自动化SAP事务?我甚至不确定我需要从我的IT部门开始做什么。
我们使用VBScript或c#来自动执行任务。使用VBSCript是最简单的。让SAP GUI记录一个任务,然后它会生成一个vbscript,可以作为你编码的起点。当你有了这个vbscript文件,你就可以把它翻译成其他语言了
您可以使用Sikuli自动化SAP Logon中的许多任务。它可以识别UI元素并与之交互。您只需要提供这些元素的图像。SAP Logon中的许多功能都可以通过快捷键使用,因此您也可以使用它非常轻松地模拟键盘输入。Sikuli可用于Java和Python。
如果我理解正确,您可以使用JAVA实现计划作业。
SapGui内置了记录和播放工具,可以为您提供开箱即用的vbs文件,您可以将其用于自动化,如果值不改变,那么您可以每次使用相同的脚本。
您可以在sap gui窗口的主菜单中找到它自定义本地布局(Alt+F12)->脚本录制和播放
试试Python
我用这个脚本做的。
import win32com.client
import subprocess
import sys
import time
def saplogin():
try:
# path to saplogon
path = r"C:'Program Files (x86)'SAP'FrontEnd'SAPgui'saplogon.exe"
subprocess.Popen(path)
time.sleep(10)
SapGuiAuto = win32com.client.GetObject('SAPGUI')
if not type(SapGuiAuto) == win32com.client.CDispatch:
return
application = SapGuiAuto.GetScriptingEngine
if not type(application) == win32com.client.CDispatch:
SapGuiAuto = None
return
connection = application.OpenConnection("ModuleName", True)
if not type(connection) == win32com.client.CDispatch:
application = None
SapGuiAuto = None
return
session = connection.Children(0)
if not type(session) == win32com.client.CDispatch:
connection = None
application = None
SapGuiAuto = None
return
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "Username"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "Password"
session.findById("wnd[0]").sendVKey(0)
# **Record Your Script with SAP and paste here**
print(sys.exc_info())
finally:
session = None
connection = None
application = None
SapGuiAuto = None
saplogin()