簡體   English   中英

SAP GUI 腳本錯誤,“集合的枚舉器找不到具有指定索引的元素。”

[英]SAP GUI Scripting Error, "The Enumerator of the collection cannot find an element with the specified index."

幾周前,我通過 SAP 的內置 GUI 腳本功能生成了一個腳本,然后將 vba 放入一個 excel 文檔中並將其附加到一個按鈕上。

這在幾周內工作得很好,但是現在當我按下按鈕時,我得到了這個錯誤: "The enumerator of the collection cannot find en element with the specified index." 在說Set session = Connection.Children(0)的行上,這是一段代碼

If Not IsObject(Sap_Application) Then
    Set SapGuiAuto = GetObject("SAPGUI")
    Set Sap_Application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
    Set Connection = Sap_Application.Children(0)
End If
If Not IsObject(session) Then
    Set session = Connection.Children(0) 'This is the line that causes the error
End If
If IsObject(WScript) Then
    WScript.ConnectObject session, "on"
    WScript.ConnectObject Sap_Application, "on"
End If

我打開了 SAP 並已登錄,並且代碼片段中的所有代碼都是由 SAP gui 腳本生成的。

我嘗試了一些我在網上看到的解決方案(比如將我的 sap 安裝文件夾中的一些 ocx 文件添加到我的 excel 插件中),但似乎沒有任何效果。

我想知道這里是否有人遇到過類似的問題,並且知道如何在我的 vba 中成功打開 SAP 會話。

編輯評論:

當我檢查連接對象時,這就是我所看到的。 看起來兒童長度為0。

調試器視圖

遇到了同樣的問題並找到了這個線程,所以我用對我有用的解決方案來恢復它:

腳本編寫可能是 deativated。 sapgui/user_scripting 必須設置為 true

我認為我安裝的其他東西(或者甚至我公司的更新腳本)搞砸了安裝 SAP 時安裝的 vba 支持。

重新安裝 SAP Logon 應用程序修復了我的問題

(如果其他人給出了更好的理由來解釋為什么會發生這種情況,我會接受這個答案)

我知道它很舊,但可能會幫助別人。 我不知道這是什么原因,我的腳本突然開始出現問題。 我記錄了一個新操作以查看 SAP 將為這些操作編寫什么(因為該部分代碼是連接的標准)。 同樣的代碼,同樣的問題。

修復(或至少是暫時的):更改正在搜索的孩子的數量。 以前的代碼:

*Set Connection = Sap_Application.Children(0)*

新代碼:

*Set Connection = Sap_Application.Children(1)*

不確定有什么區別,我知道如果您還更改此行中的數字:

*Set session = Connection.Children(0) 'This is the line that causes the error*

執行發生在第二個會話中,如果你改變了這個,也必須改變前一行代碼。

希望有幫助!

請檢查是否啟用了腳本。 當您啟用客戶端級腳本時,如果服務器重新啟動,它會自動重置。 您可能在沙盒或演示系統上比生產盒更常遇到此問題 :-)

"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM