0

我正在尝试对另一个服务器/数据库执行 @DbLookup 并不断收到“未定义”返回消息。数据库存在,视图名称正确,键正确,以及我要返回的列。我有对数据库的读者访问权限。

我已经为服务器/文件路径尝试了所有这些组合,但似乎没有一个有效:

var dbName = new Array(session.getServerName(), "my/folder/thisdb.nsf");
var dbName = session.getServerName() + "!!" + my\\folder\\thisdb.nsf;
var dbName = "CN=Server/OU=Name/O=This" + "!!" + my\\folder\\thisdb.nsf;
var dbName = [@DbName([0]), "my/folder/thisdb.nsf"];

我找到了这篇文章并尝试了大多数组合:

http://www.c-lutions.com/c-lutions/mcblog.nsf/dx/08242012095124AMJMMJ69.htm

我可以尝试其他组合吗?

谢谢!

4

2 回答 2

3

您的文件夹名称my folder中是否有空格?这可能是一个挑战。我建议减轻您的痛苦.... 在您的目标数据库中创建一个 XPage,在其上使用 @DbName() 作为公式计算一个字段,然后查看返回的内容。除此之外,您的公式还有一些问题(条目下方的评论):

var dbName = new Array(session.getServerName(), "my/folder/thisdb.nsf");

看起来不错,除非您的文件夹不是我的子文件夹。文件夹需要相对于数据目录。

var dbName = session.getServerName() + "!!" + my\\folder\\thisdb.nsf;

dbName 必须是一个数组,这个不是。文件名周围也没有引号

var dbName = "CN=Server/OU=Name/O=This" + "!!" + my\\folder\\thisdb.nsf;

此处相同:必须是数组,缺少引号。由于数据源语法使用以下 (CN) 格式,因此令人困惑:@Name("[CN]";@Subset(@DbName();1)+"!!....

var dbName = [@DbName([0]), "my/folder/thisdb.nsf"];

差不多好了。@DbName() 不带参数,所以你会写:var dbName = [@DbName()[0], "my/folder/thisdb.nsf"];或使用var dbName = [@Subset(@DbName(),1), "my/folder/thisdb.nsf"];

您还可以检查很棒的样本来玩。

于 2013-07-11T02:18:47.273 回答
1

确保第二台服务器位于第一台服务器信任的受信任服务器组中。出于安全原因,在任何服务器上运行的 XPage(和 LotusScript)如果不在同一个受信任的服务器组中,则无法访问数据库的内容。

于 2013-07-13T14:45:43.663 回答