点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我一直在为部门内的各种任务创建脚本,而GUI脚本却遇到问题。 当我尝试与工作组中的其他用户共享录制的脚本时,它们将无法工作。 我将它们的变量设置为与我的变量完全相同,因此我们的表对齐了,它们的ui可能缩放得比我的大,但是,表的布局仍然相同。
每当他们尝试使用我的脚本之一时,就会收到错误,并且脚本不会处理。 我将自己的脚本记录在自己的计算机上,单击相同的位置并输入相同的数据,它将在他们的计算机上运行。 由于我需要与他们共享40多个脚本,这让我发疯,试图找出这个问题。
我能够使用我的计算机上记录的脚本。
这是一个用于简单任务的脚本示例:
如果不是IsObject(application),则 设置SapGuiAuto = GetObject(" SAPGUI") 设置应用程序= SapGuiAuto.GetScriptingEngine 万一 如果不是IsObject(connection)然后 设置连接= application.Children(0) 万一 如果不是IsObject(session)然后 设置会话= connection.Children(0) 万一 如果IsObject(WScript)然后 WScript.ConnectObject会话,"打开" WScript.ConnectObject应用程序,"打开" 万一 session.findById(" wnd [0]/usr/ctxtRIWO00-QMNUM")。text =" 409231479" session.findById(" wnd [0]/usr/ctxtRIWO00-QMNUM")。caretPosition = 9 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0ERN) session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0MNAH =" JP-2R" session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0MNAH] =" 6046" session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0MNAH =" 8" session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0MNAH =" 4/24/18" session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0MNAH) session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/tblSAPLIQS0MNAH = 0 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/btnFC_ERLEDIGTpress)。 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7715/cntlTEXT/shellcont/shellIndex,设置为0。 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7336/btnDETAL")。按 session.findById(" wnd [1]/tbar [0]/btn [5]")。按 session.findById(" wnd [1]/usr/ctxtVIQMSM-MNCOD")。text =" EJPA" session.findById(" wnd [1]/usr/ctxtVIQMSM-MNCOD")。setFocus session.findById(" wnd [1]/usr/ctxtVIQMSM-MNCOD")。caretPosition = 4 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [1]/usr/txtVIQMSM-MATXT")。text =" 8" session.findById(" wnd [1]/usr/ctxtRQM02-NAME_QMSM")。setFocus session.findById(" wnd [1]/usr/ctxtRQM02-NAME_QMSM")。caretPosition = 0 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [1]/usr/ctxtRQM02-NAME_QMSM")。text =" ROMORD" session.findById(" wnd [1]/usr/ctxtRQM02-NAME_QMSM")。setFocus session.findById(" wnd [1]/usr/ctxtRQM02-NAME_QMSM")。caretPosition = 6 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [1]/usr/btnFREIGEGEBEN")。press session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [1]/usr/ctxtVIQMSM-PETER")。text =" 4/29/18" session.findById(" wnd [1]/usr/ctxtVIQMSM-PETER")。setFocus session.findById(" wnd [1]/usr/ctxtVIQMSM-PETER")。caretPosition = 7 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [1]/tbar [0]/btn [6]")。按 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7715/cntlTEXT/shellcont/shellIndex,设置为0。 session.findById(" wnd [0]/usr/subSCREEN_1:SAPLIQS0:1050/subNOTIF_TYPE:SAPLIQS0:1051/txtVIQMEL-QMTXT")。text =" E6079-409231479" session.findById(" wnd [0]/usr/subSCREEN_1:SAPLIQS0:1050/subNOTIF_TYPE:SAPLIQS0:1051/txtVIQMEL-QMTXT")。caretPosition = 0 session.findById(" wnd [0]/usr/subSCREEN_1:SAPLIQS0:1050/btnANWENDERSTATUS")。按 session.findById(" wnd [1]/usr/tblSAPLBSVATC_E/radJ_STMAINT-ANWS [0,1]")。selected = true session.findById(" wnd [1]/usr/tblSAPLBSVATC_E/radJ_STMAINT-ANWS [0,1]")。setFocus session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7715/cntlTEXT/shellcont/shellIndex,设置为0。 session.findById(" wnd [0]")。sendVKey 8 session.findById(" wnd [0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIOLU")。select session.findById(" wnd [0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/subSUB_KOPF:SAPLCOIH:1108/txtCAUFVD-KTEXT")。text =" E6079-409231479" session.findById(" wnd [0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/subSUB_KOPF:SAPLCOIH:1108/txtCAUFVD-KTEXT")。caretPosition = 15 session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpIOLU/ssubSUB_AUFTRAG:SAPLIWOL:0300/tblSAPLIWOLOBJK_120/ctxtRIWOL-TPLNR [2 ,. OH-4625705E" session.findById(" wnd [0]")。sendVKey 0 session.findById(" wnd [0]/tbar [0]/btn [3]")。按 session.findById(" wnd [0]/tbar [0]/btn [11]")。按
嗨,鲁本,
我敢打赌,这是一个具有动态子屏幕ID的应用程序。
我的建议是,您从一个脚本中选择一行,然后看一看 记录了另一个用户的操作
在许多情况下,这样的路径中的子屏幕编号会有所不同:
subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7715
如果这是 这个问题,因为应用程序动态创建这些ID将很难解决,但是SAP GUI希望准确记录这些ID。
最诚挚的问候,
弗兰克
你好鲁本,
欢迎使用SAP社区。 p>
您收到哪个错误消息? 您可以使用错误消息对话框上传图像吗? 如果我们有此信息,我们将更好地了解您的问题并为您提供帮助。
谢谢和问候!
Stefan
我在工作场所遇到同样的问题。 我们创建Excel宏来访问SAP以执行各种操作。 我运行宏,它们对我不起作用。 组中的所有其他命令都将运行Excel宏,并且这些宏将按预期工作并相应地更新SAP。 在一个实例中,从一个能够为我重新编程宏的人那里得知,它与宏试图在SAP中复制并粘贴某个字段有关,但是找不到该字段,并且宏 在那一步失败了。 他对代码的该部分进行了重新编程,以"单击"到该部分,"向下滚动","选择"字段,"复制"字段等。
我当前正在对照宏对其工作的其他用户检查SAP选项和配置。
如果您找到更多有关为什么此方法不适用于您的其他用户的信息,我希望听到您的发现。 我很想知道什么对您有用。
谢谢!
此外,您正在描述做"同一件事"的录音之间的比较。
能够比较这两个脚本以查看所记录的代码中的差异将很有用。
旁注:通常, 不需要以.caretPosition = XX结尾的行。 这是输入光标的记录位置。 删除这些多余的步骤也可以帮助清理录音的可读性。
一周热门 更多>