当其他用户共享时,SAP脚本不起作用

2020-09-13 06:24发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我一直在为部门内的各种任务创建脚...

         点击此处--->   EasySAP.com群内免费提供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]")。按

4条回答
葫芦娃快救爷爷
2020-09-13 06:41 .采纳回答

嗨,鲁本,

我敢打赌,这是一个具有动态子屏幕ID的应用程序。

我的建议是,您从一个脚本中选择一行,然后看一看 记录了另一个用户的操作

 session.findById(" wnd [0]/usr/tabsTAB_GROUP_10/tabp10 \ TAB01/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7715/cntlTEXT/shellcont/shell")  .setSelectionIndexes 0,0 

在许多情况下,这样的路径中的子屏幕编号会有所不同:
subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7715

如果这是 这个问题,因为应用程序动态创建这些ID将很难解决,但是SAP GUI希望准确记录这些ID。

最诚挚的问候,
弗兰克

一周热门 更多>