python自动化代码大全_SAP系统实现自动化代码常用对象属性(Python)

背景:

通过Scripting track工具虽然可以实现sap系统自动化代码录制前,但是录制的代码无外乎是按键操作和鼠标点击操作。此外我们还需要对标签进行数据的获取,表格行数的读取等操作特殊操作,这是自动化录制的局限性,无法为我们获取文本和逻辑判断,所以我们得自己写点代码,已完成这部分工作。

授之于鱼,不如授之以渔

步骤1、通过Scripting Tracker工具(没使用过这工具可先学习下怎么使用),定位到自己需要操作的对象的Type。如下图,我们案例使用的是SAP系统界面的左下角的那消息框对象,通过工具得知其对象类型为GuiStatusbar。

63baee4255b6

步骤2、打开SAP系统的GUI脚本使用帮助(开发文档)。

63baee4255b6

步骤3、直接搜索对象(type)

63baee4255b6

步骤4、按需获取自己的属性(点进去可以直接看出该属性的说明)

63baee4255b6

步骤5、通过文档,我们可以直接使用该对象(例子)

# 连接SAP系统

import sys, win32com.client

SapGuiAuto = win32com.client.GetObject("SAPGUI")

application = SapGuiAuto.GetScriptingEngine

connection = application.Children(0)

session = connection.Children(0)

# 获取消息框对象的文本

mesText = session.findById("wnd[0]/sbar").Text

# 获取消息框对象的消息类型

mesType = session.findById("wnd[0]/sbar").MessageType

案例(以下列举一些常用的属性,懒得去查了。。):

1、连接sap系统:

import sys, win32com.client

SapGuiAuto = win32com.client.GetObject("SAPGUI")

application = SapGuiAuto.GetScriptingEngine

connection = application.Children(0)

session = connection.Children(0)

最大化窗口、设置文本、按回车:

session.findById("wnd[0]").maximize() # 最大化窗口

session.findById("###").text = "RZ11" # 设置数值

session.findById("###").sendVKey(0) # 按回车键

复选框打钩:

# 复选框不能用press/select等一些动作,需要用属性去控制,

# 比如复选框的selected 等于-1时表示被选中,selected =0表示没被选中。

session.findById("####").selected = -1

获取表格的行数:

session.findById("####")..RowCount

获取文本:

session.findById("####").Text

表格滚动和选中:

session.findById("###/shellcont/shell").firstVisibleRow = 3 # 驱动纵向滚动条

session.findById("###/shellcont/shell").selectedRows = "14" # 选中第15行

获取左下角消息句柄:

sapMessage = session.findById("wnd[0]/sbar").text

未完,后续继续补充

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用Python自动化操作SAP,您需要使用SAP GUI Scripting API。下面是一个简单的示例代码,用于打开SAP应用程序,登录并打开一个特定的事务代码: ``` import win32com.client # Connect to SAP application sap_gui_auto = win32com.client.GetObject("SAPGUI") if not type(sap_gui_auto) == win32com.client.CDispatch: return application = sap_gui_auto.GetScriptingEngine # Get the SAP logon window and login session = application.OpenConnection("SAP System ID", True) session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "username" session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "password" session.findById("wnd[0]").sendVKey(0) # Open a transaction code session.findById("wnd[0]/tbar[0]/okcd").text = "/n" + "MM01" session.findById("wnd[0]").sendVKey(0) ``` 在这个例子中,我们使用win32com库连接到SAP应用程序并获取SAP GUI Scripting Engine。接下来,我们使用OpenConnection方法打开SAP的连接窗口并通过findById方法找到用户名、密码和登录按钮的文本框。我们使用sendVKey方法模拟按键操作,以便登录到SAP系统。最后,我们使用findById方法找到特定的事务代码的文本框,设置它并发送Enter键来打开事务代码。 请注意,SAP GUI Scripting API必须在SAP系统中启用才能使用。您需要在SAP GUI中打开“选项”菜单,选择“SAP GUI配置”,然后选择“脚本ing”选项卡,勾选“启用脚本ing API”复选框。 ### 回答2: Python可以使用第三方库pyautogui来进行自动化操作SAP代码Pyautogui是一个用于控制和自动化鼠标和键盘的库。以下是一个示例代码: ```python import pyautogui import time # 打开SAP应用程序 pyautogui.press('win') # 按下Win键打开开始菜单 pyautogui.typewrite('sap') # 输入SAP,打开应用程序 # 等待SAP启动 time.sleep(5) # 等待5秒钟,确保SAP已完全启动 # 登录SAP pyautogui.typewrite('username') # 在SAP登录窗口输入用户名 pyautogui.press('tab') # 切换到密码输入框 pyautogui.typewrite('password') # 输入密码 pyautogui.press('enter') # 按下Enter键登录 # 在SAP中执行操作 time.sleep(2) # 等待2秒钟,确保登录成功 # 在SAP中打开特定事务代码 pyautogui.hotkey('ctrl', 'f') # 按下Ctrl + F,在SAP中打开搜索框 pyautogui.typewrite('transaction_code') # 输入要打开的事务代码 pyautogui.press('enter') # 按下Enter键打开事务 # 进行操作,如输入数据、点击按钮等 time.sleep(2) # 等待2秒钟,确保事务已完全加载 pyautogui.typewrite('data') # 输入需要操作的数据 pyautogui.press('enter') # 按下Enter键确认输入 # 保存并关闭事务 time.sleep(2) # 等待2秒钟,确保保存成功 pyautogui.hotkey('ctrl', 's') # 按下Ctrl + S保存事务 pyautogui.hotkey('alt', 'f4') # 按下Alt + F4关闭事务 # 退出SAP time.sleep(2) # 等待2秒钟,确保事务已关闭 pyautogui.hotkey('alt', 'f4') # 按下Alt + F4退出SAP ``` 以上代码通过模拟键盘操作实现自动化操作SAP。请注意,实际操作时,可能需要根据具体情况进行一些调整,比如等待时间、输入框焦点切换等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值