点下面,不迷路
前言
最近,接触的项目需要自动化操作SAP,所以对SAP的自动化脚本进行调查了。整理了一些函数,用于创建SAP Session和自动化登录。
实用函数
项目中使用的是Python语言,如果需要其他语言的版本可参考这里的函数。
创建SAP Session实用函数
import time
from contextlib import contextmanager
import pythoncom
import pywintypes
import win32com.client as client
LANGUAGES_WINDOW_TITLES = {
"EN": {
"MULTIPLE_LOGONS": "License Information for Multiple Logons",
"COPYRIGHT": "Copyright",
"CHANGE_PASSWORD": "SAP"
},
"ZH": {
"MULTIPLE_LOGONS": "多次登录许可证信息",
"COPYRIGHT": "版权",
"CHANGE_PASSWORD": "SAP"
},
"JA": {
"MULTIPLE_LOGONS": "多重ログオンに関するライセンス情報",
"COPYRIGHT": "著作権",
"CHANGE_PASSWORD": "SAP"
}
}
def create_connection(*, description="", mandt="", name="", password="", language="EN"):
"""
创建一个新的SAP服务器连接,并打开一个客户端窗口。
:param description: 登录描述字符串
:param mandt: 集团
:param name: 用户名
:param password: 密码
:param language: 客户端语言
:return: 返回SAP GuiConnection对象
"""
pythoncom.CoInitialize()
try:
sapgui = client.GetObject("SAPGUI")
except pywintypes.com_error as _:
pythoncom.CoUninitialize()
raise RuntimeError("检测到SAP客户端没有启动, 请启动SAP客户端后重试。")
try:
application = sapgui.GetScriptingEngine
connection = application.OpenConnection(description, True)
except pywintypes.com_error as _:
pythoncom.CoUninitialize()
raise RuntimeError(