Документ Lotus Notes сохранен с отсутствующим полем для исправления

Вот определение моей проблемы. У меня есть приложение Notes, которое открывает форму, используя формулу @DialogBox. В этой форме у меня есть поле, которое является обязательным для проверки ввода, используя эту формулу:

@If(NotificationTitle = ""; @Failure("The Title field is mandatory...") ; @Success)

Довольно просто?! Теперь проблема в том, КТО-ТО КТО-ТО ЧТО-ТО сделал и сохранил этот документ с пустым значением. У кого-нибудь есть идеи, как он мог это сделать? Я знаю эту замечательную фразу, которая гласит: «90% клиентов — идиоты», но как сохранить документ с пустыми полями для исправления? Проблема в том, что это пустое поле отключило все веб-приложение. Мы не хотим, чтобы это повторилось, поэтому мы, вероятно, добавим условие в столбец представления, чтобы показать что-то, когда оно пусто, но мне было интересно, как оно могло быть пустым.

Любая идея?


person Sylvain Cloutier    schedule 19.08.2011    source источник
comment
Молодец @giulo :) +1   -  person Java Ka Baby    schedule 09.09.2011


Ответы (2)


Вы говорите, что это веб-приложение. Проверка ввода работает только на стороне клиента. Возможно, плохая ценность была добавлена ​​​​на стороне Интернета?

Кроме того, существует множество способов добавления значений в документ Notes без проверки ввода, которая срабатывает только при открытии формы. Примечания Агенты могут изменять значения предметов. Также можно настроить формулы смарт-значков для изменения значений полей. Есть ли шанс увидеть, кто внес изменения? Это помогло бы сузить его.

person Ken Pespisa    schedule 19.08.2011
comment
Документ изменил человек. И когда я говорю, что это веб-приложение, это просто часть приложения. Форма с редактируемым полем основана на заметках! - person Sylvain Cloutier; 23.08.2011
comment
Это не будет работать в WEB, пытаясь использовать любую форму или любую вещь. Он отмечает, что формулы не работают в веб-полной остановке. - person Java Ka Baby; 09.09.2011
comment
@Java, кому ты адресовал этот комментарий? Кроме того, мне не ясна ваша точка зрения? Не могли бы вы перефразировать свой комментарий? - person Ken Pespisa; 09.09.2011
comment
Был направлен в ОП в вашу поддержку, извините, я недостаточно ясно выразился. - person Java Ka Baby; 09.09.2011
comment
@Java, без проблем. Я думал, что это может быть так, но просто хотел убедиться. - person Ken Pespisa; 09.09.2011

Судя по номинальной стоимости предоставленной вами информации, похоже, что данные вводятся исключительно через клиент Notes? Если это так, попробуйте повторно протестировать приложение и поставьте пробел в обязательном поле. Я подозреваю, что это пройдет и сохранит детали, потому что на самом деле это не пусто, пробел все еще является символом. Чтобы проверить «настоящие» пустые поля, попробуйте это

@If(@trim(NotificationTitle) = ""; @Failure("Поле Title является обязательным...") ; @Success)

Обратите внимание на формулу @trim в тесте условия, это очистит поле избыточных конечных и ведущих пробелов при выполнении проверки. Вы должны четко указывать пустые поля.

Однако, если пользователь вводит данные через Интернет, вам нужно будет добавить javascript для проверки этого на стороне клиента, и вы можете использовать агент «webquerysave» для проверки на сервере перед сохранением данных. В Интернете имеется довольно много информации об использовании агентов сохранения веб-запросов, несколько хороших источников можно найти здесь и здесь.

Наконец, проверьте свойство AutoReload и метод перезагрузки NotesUIdocument, так как есть неинтуитивное поведение для него.

person angryITguy    schedule 21.08.2011
comment
Во-первых, спасибо за ответ! Ваша идея с пробелом вместо пробела была хорошо продумана, хотя я уже пробовал это. Проблема на самом деле в том, что документ был правильно сохранен с пустым полем для исправления. В этом не было абсолютно никакой ценности! Я знаю, что есть проблема с тем, как заметки обрабатывают документы для сохранения, особенно когда у вас есть один экземпляр NotesDocument в памяти, который вы получили с помощью NoteUIDocument. Когда вы изменяете NotesDocument и сохраняете его, вместо этого сохраняется исходный документ, который находится в NotesUIDocument... Я также не смог исправить этот сбой... - person Sylvain Cloutier; 22.08.2011
comment
Теперь вам нужно будет добавить много отладки с сообщениями или инструкциями печати, а также вызвать перезагрузку (или установить автоматическую перезагрузку) и посмотреть, когда значения будут установлены для внутреннего документа. Хорошим местом для проверки значений является размещение отладки в этих событиях queryrecalc, postrecalc, querysave и postsave. Я обновил свой ответ ссылками, относящимися к NotesUIDocument, свойству AutoReload и методу Reload. Надеюсь, это исправит ваши ошибки. - person angryITguy; 23.08.2011
comment
Извините, но это было однажды! И мы не можем отлаживать производственную среду, это не имеет смысла. Существуют процедуры и шаги миграции, которые необходимо выполнить, прежде чем пробовать что-то в производственной среде. Спасибо за ответ, любой ответ может быть хорошим! - person Sylvain Cloutier; 23.08.2011
comment
Случайные ошибки трудно отследить. Единственный вариант, который у вас есть сейчас (я думаю), - это настроить журнал приложений (см. мой обновленный ответ), а затем добавить в свой код операторы отладки, которые будут записывать в журнал, чтобы сообщать о текущем значении рассматриваемого поля в событиях Я указал в своем ответе, что если оно изменится на пустое значение, вы можете хотя бы определить, в какой момент это происходит. Это уменьшит, где вам нужно искать в коде. - person angryITguy; 25.08.2011