0

如何从 中返回错误文本@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可能返回错误或如何处理它。

4

1 回答 1

0

来自 SSJS 中的 @DbLookup 的错误会被内部捕获并且不会返回。

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

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

如果您使用未定义的值创建 @Text,则返回一个空字符串。

希望这可以帮助

斯文

编辑:

如果您在评估语句中运行代码,您可以获得错误消息。铁这个

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

将返回错误消息。

于 2012-06-26T05:59:19.007 回答