1

我想找到一种方法来获取从另一个 nsf 文件(不是当前文件)添加到某个 Form(View) 的最新文档的 unid。

编辑

我用第一列 @Created 降序创建了一个视图

然后我尝试了:

var db:NotesDatabase = session.getDatabase("", "product/picture.nsf");
if (db == null) {
     return "Database not open";
} else {
     var unid = db.GetView("pictures4").getFirstDocument().getUniversalID();
     return unid;
}

这给了我一个错误:

[TypeError] 在“lotus.domino.local.Database [静态 Java 接口包装器,lotus.domino.local.Database:lotus.domino.Database]”类型的对象上调用方法“GetView(string)”时出错

任何的想法 ?

4

5 回答 5

1

这里有几点。

1) 您收到的错误消息是在 NotesDatabase 中调用 GetView() 时出错。SSJS 中的方法区分大小写并且总是驼峰式。GetView() 方法不存在。你需要getView()。

2)如果数据库不在该位置,您的代码将引发错误。getDatabase(String, String) 返回一个未打开的 NotesDatabase 对象。要返回null,需要第三个参数,所以getDatabase(String, String, boolean) 使用false。查看有关该主题的 Domino Designer 帮助。

3) getDatabase("", "product/picture.nsf") may throw different results for XPiNC and web. In XPiNC I believe "" means local server - it does for @DbLookup. It's best to get into the practice of using getDatabase(database.getServer(), "product/picture.nsf").

于 2012-09-25T11:45:11.293 回答
0

接下来我建议:

  1. 使视图的第一列(让我们将此视图称为“ByDate”)按“创建日期”降序排序。
  2. 那么你需要做这样的事情:
    • 要获取最后一个文档 unid 的初始化数据库: session.getDatabase(server, filepath)
    • var unid = NotesDatabase.GetView("ByDate").getFirstDocument().getUniversalID()
于 2012-09-25T08:06:25.653 回答
0

有很多方法可以做到这一点

  1. 使用数据库类的 getModifiedDocuments 方法来做到这一点
  2. 根据创建日期在 db2 中进行搜索
  3. 在 db2 中查找或创建一个视图,该视图包含该文档并按降序排序并使用 view.getFirstDocument()

祝你好运

于 2012-09-25T08:07:55.370 回答
0

在另一个 id 中查看以 desc 顺序显示所有相关文档的 UNID 使用 session.getDatabase() (http://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesSession_sample_JavaScript_code_for_XPages#getDatabase)打开另一个数据库。打开视图并导航到视图中的第一个文档。您可以自行选择,是否使用 Viewnavigator 并通过读取列值或打开文档网并返回 UNID 来获取值

于 2012-09-25T08:09:32.297 回答
0

你试过 var unid = db.getView("pictures4").getFirstDocument().getUniversalID(); 而不是 var unid = db.GetView("pictures4").getFirstDocument().getUniversalID(); ?

于 2012-09-25T11:39:02.060 回答