我有一个(基于浏览器的)应用程序,它运行在Domino 6.5上。当用户打开文档时,它打开正常,一旦他点击“保存”按钮(运行@command [FileSave]),它就会在浏览器中出现404错误,这在服务器控制台上显示:
HTTP Web服务器:Lotus Notes异常 - 索引中找不到条目[/app.nsf/0/b5de6bc200881430652578af004118aa?EditDocument&Seq=1]
经过Google搜索后,似乎其中一个@dblookup失败了..但我已经检查了所有字段多达5次,并且所有@dblookup值似乎都正确评估。那么我该如何解决这个错误呢?是否有任何notes.ini参数可以启用更多跟踪日志?
答案 0 :(得分:2)
听起来你必须了解开发人员故障排除的基础知识。如果不确定这意味着你应该复制当前表单,那么你不会丢失任何东西,然后删除除设计元素之外的所有内容,看看你是否仍然得到错误。如果没有错误,请添加另一个设计元素并重复此过程,直到找到罪魁祸首。如果你想要勇敢,你可以在大帆船中做到这一点,但可能只需要到达现场水平。
请注意,我已经多次这样做了,最后使用了相同的设计形式,当它最终开始工作时我开始进行故障排除。
答案 1 :(得分:0)
您有以下选项:
1)您可以将[FAILSILENT]关键字添加到dblookup。请记住,这可能不是您所期望的。
2)确保数据库(或您在@DBLookup中使用的视图)没有损坏。
3)考虑在您的应用程序中使用正确的导航。有关您可以使用http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/
的可能网址,请参阅以下内容另外,如果由@DBLookup引起,可能会给你一些提示: http://www-10.lotus.com/ldd/ddwiki.nsf/dx/dblookup-troubleshooting.htm
答案 2 :(得分:0)
尝试将@iserror函数与@dblookups
一起使用答案 3 :(得分:0)
如果数据库中的表单包含使用@DbLookup公式进行选择且@DbLookup导致错误的字段,则Web Server将抛出Lotus Notes异常并返回404错误页面。
为防止出现此问题,应使用正确的错误处理来捕获@DbLookup失败的可能性。这可以通过对@DbLookup的结果使用@IsError来完成,如果结果失败则返回一个空字符串。
例如:
result:= @Unique(@DbLookup("";"":"";"Main";@Name([CN];@UserName);"UserName"));
@If(@IsError(result);"";result)
有关详细信息,请参阅Technote #1193371或Troubleshooting @DbLookup, @DbColumn, GetAllDocumentsByKey(如Egor所建议)。