8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

SAP GUI 脚本如何测试消息的存在

Evariste Galois 2月前

62 0

下面我有一个非常简单直接的脚本,用于更新 SAP 中的协议/合同的有效期。我的脚本运行良好,但如果我想要更改的日期已经相同,那么...

下面我有一个非常简单和直接的脚本,用于更新 SAP 中协议/合同的有效期。

我的脚本运行良好,但如果我想要更改的日期已经相同,那么就没有任何可更改/保存的内容,因此脚本停止......

此步骤后, session.findById("wnd[1]/usr/btnSPOP-OPTION1").press 系统会显示“ 无数据更改” ,并且脚本在此步骤后停止。 消息编号 06022

脚本中的录制部分基于您可以保存的内容,但是当由于日期已经相同而出现“无变化”的情况时,就没有任何内容可保存并且脚本停止。

我如何向脚本添加功能,以便即使当前协议/合同中没有任何内容可保存,它仍会继续执行下一个协议/合同。我还想在这种情况下添加注释“无变化”。当它确实更新时,我有 objSheet.Cells(i, 3) = \'已更新\',但是当没有任何内容可保存(无法保存)时,我希望在第 3 列中添加注释“无数据更改\”。

   Set SapGuiAuto  = GetObject("SAPGUI")
   Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
   Set connection = application.Children(0)
End If
If Not IsObject(session) Then
   Set session    = connection.Children(0)
End If
If IsObject(WScript) Then
   WScript.ConnectObject session,     "on"
   WScript.ConnectObject application, "on"
End If

session.findById("wnd[0]").maximize


REM ADDED BY EXCEL *************************************

Dim objExcel
Dim objSheet, intRow, i
Set objExcel = GetObject(,"Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet

For i = 2 to objSheet.UsedRange.Rows.Count
COL1 = Trim(CStr(objSheet.Cells(i, 1).Value)) 'Column1 Agreement/Contract number
COL2 = Trim(CStr(objSheet.Cells(i, 2).Value)) 'Column2 New Valid to date
    if isEmpty(objSheet.cells(i,3)) then


session.findById("wnd[0]/tbar[0]/okcd").text = "/nme32k"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRM06E-EVRTN").text = COL1
session.findById("wnd[0]/usr/ctxtRM06E-EVRTN").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[6]").press
session.findById("wnd[0]/usr/ctxtEKKO-KDATE").text = COL2
session.findById("wnd[0]/usr/ctxtEKKO-KDATE").setFocus
session.findById("wnd[0]/usr/ctxtEKKO-KDATE").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press


objSheet.Cells(i, 3) = "Updated"

REM FINALIZATION CONTROL CHECK ************************

aux=col1 & " " & COL2
CreateObject("WScript.Shell").run("cmd /c @echo %date% %time% " & aux & " >> C:\SCRIPT\PlOrCreationLog.txt")

End if
next

msgbox "Process Completed"

REM FINALIZATION CONTROL CHECK ************************ ```
帖子版权声明 1、本帖标题:SAP GUI 脚本如何测试消息的存在
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Evariste Galois在本站《vba》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您的代码的意思是:如果有一个弹出窗口(wnd[1] 是窗口 wnd[0] 上的模态窗口),则按下此弹出窗口中的按钮 SPOP-OPTION1(此按钮必须存在,否则会引发错误),否则从状态栏获取消息。objSheet.Cells(i, 3) 表示 Excel 工作表第 \'i\' 行第 3 列的单元格。

返回
作者最近主题: