Xpages 从@Dblookup获取错误文本?
如何从Xpages 从@Dblookup获取错误文本?,xpages,Xpages,如何从@Dblookup返回错误文本?我有类似的查找,我怀疑返回了一个错误,所以我想有一个面板,当查找错误发生时显示 我有: var dbpath = @DbLookup("","Setup","Setup","EIDBServerFilename"); var tmp = @DbLookup(dbpath,"FullName",@Name("[ABBREVIATE]" ,getComponent("inputTextEmpName").getValue()),"HRLogonID"); @If
@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
,我会得到“Error=undefined”
如果是错误,如何获取错误消息
我在帮助中查找了
@IsError
和@Dblookup
,但像往常一样,帮助非常可怕,甚至没有提到@Dblookup
可能会返回错误,也没有怎么做。SSJS中@Dblookup的错误会被内部捕获,不会返回
这是因为它是通过session.evaluate实现的,如果您在session.evaluate中执行了错误的@DbLookup,则完整的评估将失败,并且您将不会收到@DbLookup的错误消息
在@DbLookup错误的情况下,返回null,这就是您使用@IsError测试的内容:tmp为null,这就是为什么您在字符串中得到一个未定义的值
如果使用未定义的值生成@Text,则返回空字符串
希望这有帮助
斯文
编辑:
如果在evaluate语句中运行代码,则可以获得错误消息。F.e.这个
session.evaluate('lookup:=@DbLookup("";"";"X";"1";1);@if(@isError(lookup);@Text(lookup);lookup)')
将返回错误消息。那么IBM的谁认为这是个好主意?你怎么知道dblookup失败的原因呢?我已经添加了一个想法,你可以通过它找到失败的原因。谢谢。不太理想,但看起来这是一条路要走。我做了一些类似的事情,翻译了公式,并把它写在Notes表格上。有点遗憾,我们需要求助于其中一个想法。我仍然无法理解为什么在JS@dblookup中没有提供某种错误消息。