|
![]() |
#1 |
Участник
|
Цитата:
в таблице InventTable есть уникальный индекс по ItemId, который не позволит создать две одинаковые записи. Зачем тут проверка на существование с прекращением выполнения? Я бы понял если бы выполнялась проверка, и в зависимости от этого создавалась или не создавалась запись в InventTable, а так это излишний код.
Нет ничего плохо в том чтобы проверить существует ли айтем - и если нет, то сообщить пользователю об этом в более приятной и дохочивой форме (что нет, и как это исправить). Index duplication exception – очеееень далеко от того что называеться world class usabiltiy and user experience. Конечный пользователь – это обычный человек который может вообще не знать что такое индекс и так далее. Еще лучше до этого не доводить. Пример - блокировать кнопку на форме чтобы он не мог нажать “дальше”, если указаный им айтем уже существует + иконку красную возле поля рисовать c хелп текстом чтоне так. А если все хорошо – то зеленую иконку ![]()
__________________
Thx, Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/ ![]() Последний раз редактировалось Ievgenii; 17.11.2010 в 18:19. |
|
![]() |
#2 |
Модератор
|
Цитата:
Цитата:
Конечный пользователь – это обычный человек который может вообще не знать что такое индекс и так далее
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#3 |
Участник
|
Цитата:
А что, в следующей версии пользователю будут Exception-ы оказывать? Просто до сих пор показывали Infolog на родном языке пользователя (см. скриншот)
Спасибо за вопрос. Infolog никуда не деваеться. ![]() Вот в вашем примере – вам конечно же сообщение знакомо и понятно. Но вот новому пользователю оно ничего не говорит. Более того – оно ему не понятно. 1. Что такое ключ? - пользователь пытаеться создать новый айтем. В определении айтема “ключей” нет. Сообщение как “айтем с именем ХХХ который вы указали уже существует в системе ” звучит более логично. 2. Где указано в сообщении что пользователю надо сделать чтобы исправить ошибку? Сообщение как “Пожалуйста укажити другое имя айтема и повторите операцию” поможет ему продолжить его работу. В системе есть и будут гораздо более сложные примеры где сущности (как айтем) представлены не одной таблицей а многими таблицами по сложным связям и ключам. В более сложном примере подобное сообщение может быть более сложным (например не указаны составные ключи (более чем одно поле), или тот же index violation по составным или сурогатным ключам) Цитата:
Евгений, простите, Вы в систему (не в среду разработки) часто заходите? Вам как пользователю система часто что-то про индексы сообщает?
Если у Вас будет возможность принять участие в технической конференции по Ax “6” в январе в Редмонде – пожалуйста дайте знать, поговорим при встрече. http://www.microsoft.com/dynamics/DynamicsAXtechnicalconference2011/default.aspx
__________________
Thx, Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/ ![]() |
|
|
За это сообщение автора поблагодарили: AlGol (1), EVGL (1). |
![]() |
#4 |
Модератор
|
Цитата:
Но вот новому пользователю оно ничего не говорит. Более того – оно ему не понятно
![]() Цитата:
Сообщение как “Пожалуйста укажити другое имя айтема и повторите операцию” поможет ему продолжить его работу
Мое глубокое убеждение - валидация должна делаться один раз там, где она действительно жизненно необходима (а не сто раз где придется на всякий случай) и где она делается максимально эффективно (в примере - ее все равно придется делать на уровне БД, где она не зависит от синхронизации кэшей нескольких AOS-ов). Вы же к примеру при генерации журналов ГК не проверяете, не существует ли уже журнал с таким номером, а по Вашей логике должны бы (ну мало ли) Цитата:
В системе есть и будут гораздо более сложные примеры где сущности (как айтем) представлены не одной таблицей а многими таблицами по сложным связям и ключам
Тем более - идея выполнять валидацию данных типа Цитата:
блокировать кнопку на форме чтобы он не мог нажать “дальше”, если указаный им айтем уже существует + иконку красную возле поля рисовать
Цитата:
10-12 часов, 5-6 дней в неделю на протяжении последних почти 5 лет
![]() Цитата:
Если у Вас будет возможность принять участие в технической конференции по Ax “6” в январе в Редмонде – пожалуйста дайте знать, поговорим при встрече
![]()
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: lev (2). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|