下面我有一个非常简单直接的脚本,用于更新 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 ************************ ```
为了完成正确答案,对应的 SAP GUI Scripting 对象 "wnd[0]/sbar"
是: GuiStatusBar
.
供参考,以下是与此显示相对应的只读属性的值(在 中 SE16
):
MessageAsPopup
: False
MessageId
: "MO"
MessageNumber
: "429"
MessageParameter(0)
: ""
MessageParameter(1)
: ""
MessageParameter(2)
: ""
MessageParameter(3)
: ""
MessageParameter(4)
: ""
MessageParameter(5)
: ""
MessageParameter(6)
: ""
MessageParameter(7)
: ""
MessageType
(只读): "E"
Text
(只读): "No table entries found for specified key"