Поиск…


Отображение ошибки, требующей, чтобы пользователь вводил данные сущности

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

Примером такой ситуации является попытка пользователя создать заказ на падение с отсутствующим адресом клиента.

В соответствии с лучшей практикой UX система должна быть дружественной к пользователю и не только информировать пользователя о ситуации, но и направлять его к разрешению его проблемы. Как известно, система уже имеет аналогичный механизм, активированный PXSetup<TSetup>.Current когда в таблице TSetup нет записей. Это внутренне реализовано путем выброса PXSetupNotEnteredException .

В последнее время к этому исключению добавлена ​​новая функциональность, которая позволяет разработчику приложения выпустить ошибку со ссылкой на объект, который необходимо перенастроить:

INSite erroneousSite = PXSelect<
    INSite,
    Where<
        INSite.siteID, Equal<Current<SOCreateFilter.siteID>>, 
        And<INSite.active, Equal<True>, 
        And<Where<INSite.addressID, IsNull, Or<INSite.contactID, IsNull>>>>>>
    .SelectSingleBound(this, new object[] { e.Row });

if (erroneousSite != null)
{
    throw new PXSetupNotEnteredException<INSite, INSite.siteCD>(
        Messages.WarehouseWithoutAddressAndContact, 
        erroneousSite.SiteCDlnk, 
        erroneousSite.SiteCDinf);
}

Результат отображается пользователю следующим образом:

просмотр страницы с ошибкой

  • В качестве параметра первого типа PXSetupNotEnteredException принимает тип объекта, к которому будет создана ссылка графика по умолчанию.

  • Параметр второго типа обозначает ключевое поле записи, которое будет использоваться для создания ссылки. В приведенном выше примере навигация к объекту хранилища производится с помощью клавиши CD.

  • Первый аргумент конструктора - это строка формата сообщения об ошибке. Нумерация его внутренних заполнителей должна начинаться с 1: т The Multiple Warehouses feature and the Transfer order type are activated in the system, in this case an address and a contact must be configured for the '{1}' warehouse.

  • Второй аргумент конструктора - это значение поля ключа, указанного как второй общий параметр. В этом примере будет создана ссылка, которая будет создана: /IN204000.aspx?siteCD=erroneousSite.SiteCDlnk .

  • Третий аргумент конструктора - это читаемое человеком значение, которое должно отображаться в сообщении об ошибке: ...in this case an address and a contact must be configured for the 'erroneousSite.SiteCDinf' warehouse.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow