XPages @DbLookup在寻找另一个服务器/数据库时返回undefined

时间:2013-07-10 17:03:11

标签: xpages

我正在尝试对另一台服务器/数据库执行@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

我可以尝试其他任何组合吗?

谢谢!

2 个答案:

答案 0 :(得分: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"];

您还可以查看great samples进行播放。

答案 1 :(得分:1)

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