如何通过SAP GUI Scripting读取RZ11参数sapgui/user_scripting的当前值
解决SAP GUI Scripting读取RZ11参数值的问题
你的问题出在两个核心点:
- 输入参数名后没触发参数值的加载操作,SAP还未拉取到该参数的实际配置值
- 读取的控件字段错误,
ctxtTPFYSTRUCT-TYPE并非存储参数值的控件
修正后的代码
self.session.findById("wnd[0]/tbar[0]/okcd").text = "rz11" self.session.findById("wnd[0]").sendVKey(0) # 等待界面加载,也可以用SAP原生等待方法替代time.sleep time.sleep(2) self.session.findById("wnd[0]/usr/ctxtTPFYSTRUCT-NAME").text = "sapgui/user_scripting" # 触发参数值查询:按回车或点击「显示」按钮均可 self.session.findById("wnd[0]").sendVKey(0) # 等待参数值加载完成 time.sleep(1) # 读取存储参数值的正确控件 value = self.session.findById("wnd[0]/usr/txtTPFYSTRUCT-VALUE").text print(value)
关键说明
- 触发参数查询:输入参数名后必须执行一次回车(
sendVKey(0)),或者点击界面上的「显示」按钮(控件路径为wnd[0]/tbar[1]/btn[8]),SAP才会从系统中查询该参数的当前值并展示 - 选择正确控件:参数的实际值存储在
txtTPFYSTRUCT-VALUE文本控件中,你之前读取的ctxtTPFYSTRUCT-TYPE仅用于显示参数的名称/类型信息,因此才会输出sapgui/user_scripting而非目标值TRUE
如果偏好点击按钮的方式替代回车,可将触发查询的代码替换为:
self.session.findById("wnd[0]/tbar[1]/btn[8]").press()
内容的提问来源于stack exchange,提问作者alex devassy
相关产品推荐
相关产品推荐

