"此功能不适用于文件系统目录"在执行@DbLookup时

时间:2016-03-03 19:24:49

标签: lotus-domino

当我执行@DbLookup时,在某些情况下我会收到错误

"this function is inappropriate for file system directories"

在Web上其他地方找到的文档指出,这可能是视图名称的拼写错误,但事实并非如此。其他建议指向视图名称中的无效字符。再次,并非如此。可能是什么问题?

2 个答案:

答案 0 :(得分:1)

拥有超过20年的Lotus经验,我以为我已经看到了一切,但没有......我昨天第一次碰到了这个!

您在参数中传递的数据库路径有问题。它可能以“/".

结尾

我在构建一个独立的测试用例时遇到了它,试图重现生产问题。我一次一个地将受影响的表格复制成一个新表格并进行测试,我收到了这个错误。

它是由@DbLookup代码导致的,它计算了目标数据库的路径和文件名,如下所示:

@DbLookup("Notes":"NoCache"; theServer : "MyFolder/" + theDatabase; etc., etc.

我没有将字段theDatabase从生产表单复制到测试表单,因此它只是一个未初始化的值。这让我以“MyFolder /”作为参数,所以看起来我正在尝试对整个文件夹进行@DbLookup。从这个角度来看,错误信息实际上非常有意义。

答案 1 :(得分:0)

我有一段时间遇到这个问题,最后发现我正在使用服务器的层次结构,这似乎不受支持。将它变成缩写形式后,它就可以了。此外,出于某种原因,我必须先@Trim然后@Text才能使用它。最终解决方案是这样的:

_abbreviatedServerName := @Text(@Trim(@Name([ABBREVIATE]; _serverName)));
_result := @DbLookup("":"NoCache"; _abbreviatedServerName : _databaseName; _viewName; _key; _column; [FailSilent]);