【SAP自动化】(1)自动登录

前言

最近,接触的项目需要自动化操作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(
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值