从@Dblookup获取错误文本?

时间:2012-06-25 14:44:42

标签: xpages

如何从@Dblookup返回错误文本?我有类似的查找,我怀疑它返回一个错误,所以我想有一个面板,当发生查找错误时显示。

我有:

var dbpath = @DbLookup("","Setup","Setup","EIDBServerFilename");
var tmp = @DbLookup(dbpath,"FullName",@Name("[ABBREVIATE]" ,getComponent("inputTextEmpName").getValue()),"HRLogonID");
@If(@IsError(tmp),"Error= "  + @Text(tmp),"");

但我只是看到“Error =”没有错误文字。

如果我删除@Text我得到“错误=未定义”。

如果出现错误,如何收到错误消息?

我在帮助中查找了@IsError@Dblookup但是通常情况下,帮助是可怕的,甚至没有提到@Dblookup可能会返回错误,也不会对此做些什么。

1 个答案:

答案 0 :(得分:0)

SSJS中来自@DbLookup的错误是内部捕获的,不会返回。

这是因为它是通过 session.evaluate 实现的,如果你在 session.evaluate 中制作了一个糟糕的@DbLookup,那么完整的评估会失败并且你赢了t收到@DbLookup的错误信息。

如果出现错误的@DbLookup,则返回 null ,这是您使用@IsError测试的内容: tmp null ,这就是你在字符串中得到 undefined 的原因。

如果使用 undefined 值创建@Text,则返回空字符串。

希望这有帮助

斯文

修改

如果在evaluate语句中运行代码,则可以收到错误消息。 F.E.此

session.evaluate('lookup:=@DbLookup("";"";"X";"1";1);@if(@isError(lookup);@Text(lookup);lookup)')

会返回错误消息。