案例:爲用戶創建數據庫(系統)以請求電子郵件並在names.nsf中進行更新。電子郵件地址驗證的唯一性(xpages)
發現問題,比方說我們無法編輯names.nsf視圖或創建一個新視圖來檢查Internet地址的唯一性。
示例:用戶的網際地址(電子郵件地址)字段是:[email protected]
我不能使用選擇器驗證只是爲了驗證電子郵件地址的唯一性,因爲沒有視圖,而不是允許在names.nsf中創建一個視圖,然後對其進行排序並將其用於驗證,可以通過其他方式進行驗證嗎?
採樣值內改編
新的編碼增加了關於19/07/2017
var setdoc:NotesDocument = database.getProfileDocument("System Setting", "");
var server = setdoc.getItemValueString("DBSvr");
var DName = setdoc.getItemValueString("DbPath");
var db:NotesDatabase = session.getDatabase(server, DName, false);
var vw:NotesView = db.getView("($VIMPeopleByLastName)")
var doc:NotesDocument = vw.getFirstDocument();
var arr = [];
while (doc != null) {
var tmpdoc = vw.getNextDocument(doc);
arr.push(doc.getItemValueString("InternetAddress"));
doc.recycle(); // to prevent IBM Notes Crash use recycle // The recycle method unconditionally destroys an object // and returns its memory to the system.
doc = tmpdoc;
}
value=getComponent("mail11").getValue() +"@devsvr1.pcs.com.my"
return @IsMember(value, arr);
較新的測試結果:
領域
-validation屬性字段
-Coding部分
<xp:this.expression><![CDATA[#{javascript:
var setdoc:NotesDocument = database.getProfileDocument("System Setting", "");
var server = setdoc.getItemValueString("DBSvr");
var DName = setdoc.getItemValueString("DbPath");
var db:NotesDatabase = session.getDatabase(server, DName, false);
var vw:NotesView = db.getView("($VIMPeopleByLastName)")
var doc:NotesDocument = vw.getFirstDocument();
var arr = [];
while (doc != null) {
var tmpdoc = vw.getNextDocument(doc);
arr.push(doc.getItemValueString("InternetAddress"));
doc.recycle();
doc = tmpdoc;
}
value=getComponent("mail11").getValue() +"@devsvr1.pcs.com.my"
return @IsMember(value, arr);
}]]></xp:this.expression>
他們不會允許在names.nsf中增加一個視圖,因爲(People By Email)視圖會使這個更簡單,而不會破壞其他任何東西。 –