Lotus Domino - ошибка веб-сервера HTTP - запись не найдена в индексе - PullRequest
0 голосов
/ 23 марта 2012

У меня есть приложение (на основе браузера), которое работает на Domino 6.5. Когда пользователь открывает документ, он открывается нормально, и как только он нажимает на кнопку Сохранить (которая запускает @command [FileSave]), он выдает ошибку 404 в браузере и это на консоли сервера:

Веб-сервер HTTP: исключение Lotus Notes - запись не найдена в индексе [/app.nsf/0/b5de6bc200881430652578af004118aa?EditDocument&Seq=1]

После длительного поиска в Google, кажется, что один из @dblookup не работает .. но я проверил все поля целых 5 раз, и все значения @dblookup, кажется, оцениваются правильно. Итак, как мне устранить эту ошибку? Есть ли какой-либо параметр notes.ini, позволяющий регистрировать больше журналов трассировки?

Ответы [ 4 ]

2 голосов
/ 12 июня 2012

Похоже, вы должны приступить к основам устранения неполадок разработчика.Если вы не уверены, что это значит, вы должны сделать копию текущей формы, чтобы ничего не потерять, а затем удалите все, кроме элемента дизайна, и посмотрите, по-прежнему ли вы получаете ошибку.Если ошибок нет, добавьте еще один элемент дизайна и повторяйте этот процесс, пока не найдете виновника.Если вы хотите быть смелым, вы можете сделать это в больших джонках, но, возможно, придется просто спуститься до уровня поля.начал устранять неполадки, когда он наконец начал работать.

0 голосов
/ 24 марта 2012

Попробуйте использовать функцию @iserror с @ dblookups

0 голосов
/ 24 марта 2012

Если форма в базе данных содержит поле, в котором для выбора используется формула @DbLookup, а @DbLookup приводит к ошибке, то веб-сервер сгенерирует исключение Lotus Notes и вернет страницу ошибки 404.

Чтобы предотвратить эту проблему, должна использоваться правильная обработка ошибок, чтобы уловить возможность сбоя @DbLookup.Это можно сделать с помощью @IsError в результате @DbLookup и вернуть нулевую строку, если результат не удался.

Например:

result:= @Unique(@DbLookup("";"":"";"Main";@Name([CN];@UserName);"UserName"));
@If(@IsError(result);"";result)

См. Technote # 1193371 или Устранение неполадок @DbLookup, @DbColumn, GetAllDocumentsByKey (как предложил Егор) для получения более подробной информации.

0 голосов
/ 24 марта 2012

У вас есть следующие варианты:

1) Вы можете добавить ключевое слово [FAILSILENT] в свой dblookup. Имейте в виду, это может быть не то, что вы ожидаете.

2) Убедитесь, что база данных (или представления, которые вы используете в @DBLookup) не повреждена.

3) Подумайте об использовании правильной навигации в вашем приложении. Смотрите следующие возможные URL, которые вы можете использовать http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/

Кроме того, следующее может дать вам несколько советов, если это вызвано @DBLookup: http://www -10.lotus.com / LDD / ddwiki.nsf / дх / dblookup-troubleshooting.htm

...