2013-01-23 79 views
2

我有一個文件夾中的文檔,其中有一個字段AUNID,其中填充了特定子文檔的唯一標識。在文件夾的操作欄上,我有一個按鈕,應該打開與用戶編輯相關的文檔AUNID編輯文檔時無效的UNID

當按下操作按鈕,它爲用戶提供了以下錯誤:

Invalid UNID; UNID must be a 32-digit hex string.

按下「確定」,但是,正確的文檔進行編輯打開後。我已經使用了調試器,並且代碼都完全按照我預期的方式執行,但是這個錯誤似乎沒有理由彈出。

這裏是我的代碼:

Sub Click(Source As Button) 
    On Error Goto handleError 
    Dim ws As New NotesUIWorkspace 
    Dim s As New NotesSession 
    Dim leaddoc As NotesDocument 
    Dim action As NotesDocument 
    Dim db As NotesDatabase 
    Dim view As NotesView 
    Dim doc As NotesUIDocument 

    Set db = s.CurrentDatabase 
    Set leaddoc = db.UnprocessedDocuments.GetFirstDocument 
    Set view = db.GetView("(ActionsByLead)") 
    If (leaddoc.GetFirstItem("AUNID").Text = "") Then 
     Msgbox ("There is nothing to edit!") 
     Exit Sub 
    End If 
    Dim uid As String 
    uid = Cstr(leaddoc.GetFirstItem("AUNID").Text) 
    Set action = db.GetDocumentByUNID(uid) 
    Call ws.SetTargetFrame("") 
    Call ws.EditDocument(True, action,,,, False) 'Error occurs on this line according to the debugger. 

    Exit Sub 
handleError: 
    Resume Next 
End Sub 
+0

錯誤發生時uid的值是什麼? –

+0

邁克爾說了些什麼,再加上你檢查「行動是什麼?」此外,您的錯誤處理程序應該至少打印出Error $和Erl,以便知道是否出錯。 – Eric

+0

@MichaelRuhnau它是我試圖編輯的文檔的有效文檔單元。 –

回答

4

檢查要打開的子文檔的形式。我懷疑在文檔的加載過程中會導致錯誤,並且與父文檔上的操作或AUNID項無關。

或者嘗試創建一個新的子文檔,看看是否出現錯誤

+0

謝謝。我有一些'@ SetDocField'的東西在文檔打開時顯然'$ REF'搞亂了。啊哈! –

+1

啊!這是有道理的,因爲如果參數不是文本值或UNID值,@SetDocField將完全返回您描述的錯誤。 – Eric