Вот определение моей проблемы. У меня есть приложение Notes, которое открывает форму, используя формулу @DialogBox. В этой форме у меня есть поле, которое является обязательным для проверки ввода, используя эту формулу:
@If(NotificationTitle = ""; @Failure("The Title field is mandatory...") ; @Success)
Довольно просто?! Теперь проблема в том, КТО-ТО КТО-ТО ЧТО-ТО сделал и сохранил этот документ с пустым значением. У кого-нибудь есть идеи, как он мог это сделать? Я знаю эту замечательную фразу, которая гласит: "90% клиентов - идиоты", но как сохранить документ с пустыми полями для исправления? Проблема в том, что это пустое поле отключило все веб-приложение. Мы не хотим, чтобы это повторилось, поэтому мы, вероятно, добавим условие в столбец представления, чтобы показать что-то, когда оно пусто, но мне было интересно, как оно могло быть пустым.
Любая идея?
Ответ 1 · рейтинг 1 · Ken Pespisa
Вы говорите, что это веб-приложение. Проверка ввода работает только на стороне клиента. Возможно, плохая ценность была добавлена на стороне Интернета?
Кроме того, существует множество способов добавления значений в документ Notes без проверки ввода, которая срабатывает только при открытии формы. Примечания Агенты могут изменять значения предметов. Также можно настроить формулы смарт-значков для изменения значений полей. Есть ли шанс увидеть, кто внес изменения? Это помогло бы сузить его.
Ответ 2 · angryITguy
Судя по номинальной стоимости предоставленной вами информации, похоже, что данные вводятся исключительно через клиент Notes? Если это так, попробуйте повторно протестировать приложение и поставьте пробел в обязательном поле. Я подозреваю, что это пройдет и сохранит детали, потому что на самом деле это не пусто, пробел все еще является символом. Чтобы проверить "настоящие" пустые поля, попробуйте это
@If(@trim(NotificationTitle) = ""; @Failure("Поле Title является обязательным...") ; @Success)
Обратите внимание на формулу @trim в тесте условия, это очистит поле избыточных конечных и ведущих пробелов при выполнении проверки. Вы должны четко указывать пустые поля.
Однако, если пользователь вводит данные через Интернет, вам нужно будет добавить javascript для проверки этого на стороне клиента, и вы можете использовать агент "webquerysave" для проверки на сервере перед сохранением данных. В Интернете имеется довольно много информации об использовании агентов сохранения веб-запросов, несколько хороших источников можно найти здесь и здесь.
Наконец, проверьте свойство AutoReload и метод перезагрузки NotesUIdocument, так как есть неинтуитивное поведение для него.