2011-12-09 28 views
0

我有一個字段EMPID這必須是唯一的...... 我寫了下面代碼 -如何檢查@DocumentUniqueID?

mAns := @DbLookup("" : "NoCache" ; @DbName ; "lkpEmpMasterbyEmpCode" 
; empId ; "empName"); 

@If(empId = "";@Failure("ID cannot be empty.");@IsError(mAns); "ERROR";mAns != ""; @Failure("Employee ID already exists. Please enter a unique 
value.");@Success); 

但問題是,當我嘗試編輯任何文件,則EMPID再次檢查的唯一性和它會拋出一個錯誤,即empID已經存在...因此我無法編輯任何文檔...

我想要一個代碼,我可以將現有文檔的@DocumentUniqueID與編輯文檔進行比較,如果相同,那麼empID不應該拋出錯誤,如果相同...

可以這樣meone幫助.....

回答

1

如果創建文檔後EMPID永遠不會改變,你可以有資格與@IsNewDoc防止執行驗證公式的文件保存後:

@If(@IsNewDoc; 
    [validation formula here]; 
    @Success 
) 

如果EMPID可能會改變在創建文檔後,您可以使用[RETURNDOCUMENTUNIQUEID]關鍵字爲@DBLookup檢索比較值:

mAns := @DbLookup("" : "NoCache" ; @DbName ; "lkpEmpMasterbyEmpCode" 
; empId ; "empName"; [RETURNDOCUMENTUNIQUEID]); 

其他的選擇包括:1)計算字段與公式文檔@文本(@DocumentUniqueID)tha t可能是您的@DBLookup的目標字段,或者2)查找視圖中的一列,列公式@Text(@DocumentUniqueID)可能是您查找的目標。

+1

由於本技術說明中描述的問題,如果您使用的是早於Notes 6.5.5的任何內容,請注意[ReturnDocumentUniqueID]:http://www-01.ibm.com/support/docview.wss?uid=swg21201399並且請注意,它可能會使Notes客戶端以外的服務器崩潰。我有一個代理崩潰,因爲它正在對包含[ReturnDocumentUniqueID]的字段的表單進行ComputeWithForm調用。 –

+0

ReturnDocumentUniqueID現在看起來非常可怕。 –