案例:为用户创建数据库(系统)以请求电子邮件并在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)视图会使这个更简单,而不会破坏其他任何东西。 –