Szukaj…


Wyświetlanie błędu wymagającego od użytkownika wprowadzenia danych encji

Użytkownicy często pojawiają się w sytuacji, gdy nie można zakończyć procesu biznesowego, ponieważ użytkownik nie wprowadził wszystkich niezbędnych informacji.

Przykładem takiej sytuacji jest próba utworzenia zamówienia wysyłkowego z brakującym adresem klienta.

Zgodnie z najlepszymi praktykami UX, system powinien być przyjazny dla użytkownika i nie tylko informować go o sytuacji, ale także prowadzić go do rozwiązania jego problemu. Jak wiemy, system ma już podobny mechanizm aktywowany przez PXSetup<TSetup>.Current gdy nie ma żadnych rekordów w tabeli TSetup . Jest wewnętrznie implementowany przez PXSetupNotEnteredException .

Ostatnio do tego wyjątku dodano nową funkcjonalność, która pozwala twórcy aplikacji na zgłoszenie błędu z linkiem do obiektu, który należy ponownie skonfigurować:

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);
}

Wynik jest wyświetlany użytkownikowi w następujący sposób:

wygląd strony błędu

  • Jako parametr pierwszego typu PXSetupNotEnteredException akceptuje typ obiektu, do którego zostanie wygenerowane domyślne łącze do wykresu.

  • Parametr drugiego typu oznacza pole klucza rekordu, które ma zostać użyte do wygenerowania łącza. W powyższym przykładzie nawigacja do jednostki magazynowej odbywa się za pomocą klucza CD.

  • Pierwszy argument konstruktora to ciąg formatu komunikatu o błędzie. Numeracja wewnętrznych symboli zastępczych powinna zaczynać się od 1: tzn. 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.

  • Drugi argument konstruktora to wartość pola klucza określona jako drugi parametr ogólny. W tym przykładzie link, który zostałby wygenerowany to /IN204000.aspx?siteCD=erroneousSite.SiteCDlnk .

  • Trzecim argumentem konstruktora jest czytelna dla człowieka wartość wyświetlana w komunikacie o błędzie: ...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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow