点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,伴侣,
我在努力处理一个案件可能很简单,但是却使我的生活陷入了困境。
方案:我从Excel中的VBA通过GUI脚本访问tcode。 我应用了一些过滤器,然后执行该过滤器,最终使我得到了带有数据集的ALV网格表。
挑战很简单。 我有一个能够处理运行时仍然可以的条件的代码,但是应该使用诸如"停止事务"之类的命令,该命令很容易手动使用,但永远不会在录音中占据一席之地。 或者,至少,我无法记录这个简单的步骤。
只是为了清楚地看到它,下面是代码的重要片段:
昏暗的sap_application,连接数,已过去的秒数,fityirc
设置sapGuiAuto = GetObject(" SAPGUI")
设置sap_application = SapGuiAuto.GetScriptingEngine
设置连接= sap_application.Children(0)
设置会话= Connection.Children(0)
'这里我使用一个对象来应用执行按钮-这种方式与SAP运行时并行,可以继续执行VBA脚本。
perec = session.FindById(" wnd [0]/tbar [1]/btn [8]")。press
',我们在此处设置一个循环以检查系统是否在特定时间内繁忙,然后我们可能会中断:
Do
Application.Wait(Now + TimeValue(" 0:00:05"))
SecondsElapsed = SecondsElapsed + 5
fityirc = session.Busy()
循环直到秒过去> = 100
如果fityirc = True,那么
',麻烦就来了。 我无法弄清楚应该使用什么命令来简单地使Stop Transaction命令起作用。
'下面的此解决方案将不起作用,因为它仅在会话不忙时才起作用-Stop Transaction可以在这里做得很好。 > session.FindById(" wnd [0]/tbar [0]/okcd")。Text ="/img/ns000"
Application.Workbooks.Add
ActiveWorkbook.SaveAs文件名:= _
TargetPath1&" FAILED_"和ExtractName _
,文件格式:= xlUnicodeText,CreateBackup:= False
如果
预先感谢您将此操作转移到某个地方。
对此没有任何帮助,我发现可以修改以达到目的的解决方案-我与其他成员共享的解决方案可能也有类似的问题。
感谢Script Man发布他的提示:
https://stackoverflow.com/questions/51172626/stop-transaction-in-sap-with-vba/58413446#58413446
这是我编写的代码,包括以编程方式关闭长时间运行的会话的解决方案以及计时器功能。 可以。
一周热门 更多>