【发布时间】:2017-07-19 16:08:40
【问题描述】:
案例:为用户创建一个数据库(系统)以请求电子邮件并在 names.nsf 中更新。
发现问题,假设我们不能编辑 names.nsf 视图或创建新视图来检查 Internet 地址的唯一性。
示例:用户的 InternetAddress(电子邮件地址)字段为:TestUser1@brooke.com.my
我不能使用选择器验证器来验证电子邮件地址的唯一性,因为没有视图并且不允许在 names.nsf 中创建视图只是为了对其进行排序并将其用于验证,我知道还有另一种方法吗做验证~?
arr 中的样本值
于 2017 年 7 月 19 日添加了新编码
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);
较新的测试结果:
-字段的属性
-验证属性字段
-编码部分
<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 添加视图,因为(通过电子邮件发送的人员)视图会使这变得更简单,并且不会破坏其他任何内容。
标签: xpages xpages-ssjs