1) 首先必须设定SAP中设置可以使用SAP GUI Script.

详细参见以下文章:

https://blog.csdn.net/weixin_44447687/article/details/106216776

简单来说就是 SAP ==>RZ11==>sapgui/user_scripting==>需要设定为true

需要设定为  启用脚本==>下面的两个警告勾勾去掉(否则会出现不需要的弹窗)

2) 需要安装pywin32

   pip install pywin32
  参照
  https://blog.csdn.net/tq501501/article/details/119425042

3) 录制Script

4) Python基本代码如下

#-Begin-----------------------------------------------------------------
#-Includes--------------------------------------------------------------
import sys, win32com.client
import win32api,win32gui,win32con,win32ui,time,os,subprocess
#-Sub Main--------------------------------------------------------------
def Main():
    sap_app = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe" #您的saplogon程序本地完整路径
    subprocess.Popen(sap_app)
    time.sleep(1)
    flt=0
    while flt==0:
        try:
            hwnd = win32gui.FindWindow(None,"SAP Logon 740")
            flt=win32gui.FindWindowEx(hwnd,None,"Edit", None)  #capture handle of filter
        except:
            time.sleep(0.5)
    win32gui.SendMessage(flt,win32con.WM_SETTEXT,None,"DEV")
    win32gui.SendMessage(flt,win32con.WM_KEYDOWN,win32con.VK_RIGHT,0)
    win32gui.SendMessage(flt,win32con.WM_KEYUP,win32con.VK_RIGHT,0)
    time.sleep(0.1)
    dlg = win32gui.FindWindowEx(hwnd,None,"Button", None) #登陆(0)
    win32gui.SendMessage(dlg,win32con.WM_LBUTTONDOWN,0)
    win32gui.SendMessage(dlg,win32con.WM_LBUTTONUP,0)
     
    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.Children(0)
    if not type(connection) == win32com.client.CDispatch:
        application = None
        SapGuiAuto = None
        return
    time.sleep(2)
    session = connection.Children(0)
   
    if not type(session) == win32com.client.CDispatch:
        connection = None
        application = None
        SapGuiAuto = None
        return
    print("OK")
    session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "XXXXXX" #此次放入您的SAP登陆用户名
    session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "xxxxxx"  #此次放入您的SAP登陆密码
    session.findById("wnd[0]").sendVKey(0)
    """下面演示了使用mm03查看物料1000000000000的状态后再退回sap首页的过程"""
    session.findById("wnd[0]/tbar[0]/okcd").text = "mm03"
    session.findById("wnd[0]").sendVKey(0)
    session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = "180100069380"
    session.findById("wnd[0]").sendVKey(0)
    #session.findById("wnd[0]/tbar[0]/okcd").text = "/n"
    #session.findById("wnd[0]").sendVKey(0)
    #session.findById("wnd[0]/tbar[0]/btn[3]").press()
    #session.findById("wnd[0]/tbar[0]/btn[3]").press()
    #>Insert your SAP GUI Scripting code here<
#-Main------------------------------------------------------------------
if __name__ == "__main__":
  Main()
#-End-------------------------------------------------------------------
参考资料
https://blog.csdn.net/tq501501/article/details/119425042 安装
https://blog.csdn.net/zhichuan0307/article/details/107205883 设定
https://www.cnblogs.com/new-june/p/NewJune.html python代码
https://blog.csdn.net/weixin_44447687/article/details/106216776 设定

python使用SAP GUI操作SAP的几个坑的更多相关文章

  1. 配置SAP GUI FOR HTML(通过WEB方式登录)

    配置SAP GUI FOR HTML(通过WEB方式登录) SAP系统可以通过安装 SAP GUI.SAP GUI FOR JAVA.SAP GUI WEB FOR JAVA.SAP GUI FOR ...

  2. Python结合SAP GUI Script操作sap的简易教程

    众所周知,如果要用Python做一些桌面WIN32应用的自动化工作,就需要用到著名的pywin32尤其是其中的win32com.client模块,pywin32的安装不能直接通过pip install ...

  3. VBA驱动SAP GUI实现办公自动化(一)

    小爬之前写过一系列Python驱动SAP GUI实现办公自动化的文章,其实如果我们的实际业务不是太复杂,且我们对VBA语法比较熟悉的话,我们完全可以借助Excel VBA来驱动SAP GUI做很多自动 ...

  4. 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

    Jerry和SAP成都研究院一些新同事聊天时,谈到ABAP和SAP GUI这个话题.很多新同事在加入SAP成都之前,是做Java和C++开发的,习惯了Eclipse/IntelliJ IDEA/Vis ...

  5. VBA驱动SAP GUI完成界面元素值初始化

    小爬日常利用VBA完成SAP GUI自动化时,经常被这个问题困扰:我们进入一个事务代码界面时,如FBL1N(供应商行项目显示),很多的 GuiTextField(文本框)对象.GuiCheckBox( ...

  6. VBA驱动SAP GUI自动化:查找页面元素FindAllByName

    我们在VBA中嵌入SAP原生的[脚本录制与回放]功能生成的VBS脚本,可以实现很多自动化操作.但只有我们对SAP做了一系列动作,才会得到这些动作的脚本.然而,一旦我们需要用代码提前做一些判断,然后再决 ...

  7. SAP GUI的配置文件

    GUI是SAP系统最常用的客户端,在一台客户机上,利用GUI可以连接多套SAP系统(连接方法参见<客户端连接配置(SAP GUI 710)>),也可以设置多个快捷方式登录(参见<用快 ...

  8. 使用Python进行GUI操作自动化

    前言 本文介绍怎样使用Python进行跨平台的GUI操作的,其中使用的一个工具包是pyautogui,PyAutoGUI可以模拟鼠标的移动.点击.拖拽,键盘按键输入.按住操作,以及鼠标+键盘的热键同时 ...

  9. 创建SAP GUI快捷方式保存密码

    1.在注册表中创建GUI 快捷方式的子键 a.首先运行  微软标识键+R    b.窗口中输入sapshcut,如果有窗口跳出点击“确定” 2.维护子键下的键值 a.再次运行  微软标识键+R    ...

  10. SAP GUI SAPLOGON.INI

    GUI是SAP系统最常用的客户端,在一台客户机上,利用GUI可以连接多套SAP系统(连接方法参见<客户端连接配置(SAP GUI 710)>),也可以设置多个快捷方式登录(参见<用快 ...

随机推荐

  1. 浏览器调试工具devtool

    视频网址 先打开devtool,再打开命令菜单.可以用screenshot来截屏 $0:先在element点击元素,再在控制台输入$0,这个$0代表element中选中的DOM元素. $1,$2... ...

  2. Windows 干净启动

    1. 卸载设备中全部的第三方反病毒软件与系统优化软件 (例如 360.腾讯电脑管家.鲁大师等).2. 按 "Windows 徽标键+R",输入 "msconfig&quo ...

  3. soursetree 关于https:git remote: Unauthorized和username和password修改

    一.sourcetree推送代码提交不上提示https:git remote: Unauthorized由于没有权限,需要登陆正确的账号以及密码即可以提交 二.SourceTree这是一个无效源路径/ ...

  4. 10base-t的数据发送

    功能 数据流(NIC) pin码 发送信号 发送回路 1 2 接收信号 接收回路 3 不使用   4 不使用   5 接收信号 接收回路 6 不使用   7 不使用   8 上图是基于10BASE-T ...

  5. node、mongodb、服务器相关

    1.CentOs搭建NodeJs服务器-Mongodb安装 2.如何将 node+mongodb 项目部署在服务器上 3.如何通过cmd开一个本地服务器 4.如何部署一个本地的web项目到服务器-搭建 ...

  6. [整合] 解决 Dell T640 安装显卡后风扇转速不降低

    最近实验室的dell T640服务器安装了新的GPU.但是安装后发现,风扇太吵了,于是开始着手解决风扇转速过高的问题. 试过ipmi,但是不好用. 最后发现使用racadm可以让服务器重新安静下来. ...

  7. vue框架08 vue3

    vue3的介绍 # vue项目的版本,新项目使用vue3,部分老项目使用vue2 # vue3的变化 1.性能的提升 - 打包大小减少41% - 初次渲染快55%,更新渲染块133% - 内存减少54 ...

  8. c++获取类型信息

    获取类型信息 typeid typeid运算符用来获取一个表达式的类型信息. 对于基本类型数据, 类型信息比较简单, 主要指数据的类型; 对于对象(类类型的数据), 类型信息指: 对象所属的类, 所包 ...

  9. docker 二进制安装

    首先所属环境为内网并且服务器拥有的开发环境不确定,需要跑当前服务所需代码,所以优先选择使用docker docker 文档地址 https://docs.docker.com 在 install 中存 ...

  10. 【Linux命令】在Linux服务器上与windows通过SCP命令互传文件时出现的问题排查过程

    1,在linux 执行 scp 1.txt adminitrator@10.10.10.10:/d:/后,报连接超时 原因:windows不支持ssh,可以安装支持SSH服务的工具,如:winsshd ...