当我们成功登录SAP的某个连接后,在SAP GUI起始页(SAP轻松访问),我们可以通过点击【收藏夹】或者在界面左上角的输入框输入对应的事务代码,直接进入对应事务的界面。但是下面列举的场景,你是否知道如何快速应对?
场景一:当前已处于某个事务代码中,如何进入新的事务代码?
场景二:当前SAP左下角有错误消息,如何进入新的事务代码?
场景三:如何快捷关闭当前会话窗口?
下面提到的技巧相信即使是老司机 ,也未必曾经用过。
在SAP系统中,执行事务代码通常有几种方式:
1. 使用 `/n` 前缀:当在SAP中输入 `/n` 后跟事务代码时,这将尝试关闭当前的事务,并打开一个新的会话以运行该代码;
2. 强制新会话 `/o`:可以试着用 `/o`(代表打开新窗口)来启动一个全新的会话窗口。比如,输入 `/oSE80` 将会打开一个新的ABAP开发工作台事务SE80窗口,而不关闭当前的事务;
3. 使用 `/i` 关闭会话:它将关闭所有会话(包括抛出错误消息的会话),如果当前只开启了一个会话,执行该操作后,会弹出是否【需要注销SAP】的窗口;
4. 使用 `/nend` 或 `/nex`:人为结束当前的SAP会话,包括所有的事务。这还将进行日志记录。“end” 或者 "exit"(例:`/nend` 或 `/nex`)将退出SAP系统。不过这是一个较为极端的步骤,请谨慎使用;
5. 尝试根据错误提示,修复错误来源:如果频繁出现错误提示,可能是因为业务流程中某些步骤没按预期进行。需要检查错误信息,解决根本问题后,系统就可以正常运行(强烈推荐,遇到错误时,应该解决错误,而不是尽可能忽略它);
6. 联系系统管理员:如果上述方法都不能解决问题或你不确定怎么操作,可以联系SAP系统管理员或者支持团队寻求帮助。 需要注意的是优先确认是否可以忽略错误消息而无影响地继续工作。在忽略错误消息或尝试绕过它时,应考虑错误的严重性和业务流程的完整性,以免造成数据不一致或工作未能正确完成。
如果我们是借助SAP GUI Scripiting 来自动化实现上述效果,代码如下(python版):
session.findById("wnd[0]/tbar[0]/okcd").text = "/nfb03" session.findById("wnd[0]").sendVKey(0)
翻阅SAP GUI Scripiting API文档可知,对于Gui Session Object对象,存在方法:StartTransaction。
所以,下面三种方法效果完全等同,都是关闭当前的事务代码,在当前会话下进入FB03事务中:
# 方法一 session.findById("wnd[0]/tbar[0]/okcd").text = "/nfb03" session.findById("wnd[0]").sendVKey(0) #方法二 session.SendCommand( "/nfb03") #方法三 session.StartTransaction( "fb03")
快来关注本公众号 获取更多爬虫、数据分析的知识!