xpages保存文档时运行脚本

use*_*403 2 save xpages

xpages包含SAVE按钮.xpages还包含InternetAddres字段.当用户单击SAVE按钮时,需要首先检查names.nsf - 如果在names.nsf视图中找不到InternetAddress值,则保存成功"($ Users)" - 如果在names.nsf视图中找到InternetAddress值,则保存失败"($ Users) "

如何编写脚本来做到这一点?

这是脚本的LotusScript版本:

Set namesview = namesdb.GetView( "($Users)" )
Set namesdoc = namesview.GetDocumentByKey( Lcase(doc.CurrentInternetAddress( 0 ) ), True )
If ( namesdoc Is Nothing ) Then '-- Create New Doc
Run Code Online (Sandbox Code Playgroud)

如何继续使用xpages?

Pau*_*ers 5

最新版本的OpenNTF Domino API将一个checkUnique()方法添加到View类.它需要两个参数,第一个是检查视图的键(例如字符串或字符串列表),第二个是当前文档.毕竟,如果您正在检查预先存在的文档,那么您不希望因为它在视图中找到此文档而失败.

因此,假设CurrentInternetAddress是单个值字段,代码将是:

function continueWithValidUser(namesDB, doc) {
    var success = false;
    try {
       var view = namesDB.getView("($Users)");
       success = view.checkUnique(doc.getItemValue("CurrentInternetAddress"),doc);
    } catch (e) {
      print(e.message);
    }        
    return success;
}
Run Code Online (Sandbox Code Playgroud)

OpenNTF Domino API回收Domino对象的所有句柄,因此不需要recycle()调用.