Ricerca…


Visualizzazione di un errore che richiede all'utente di immettere dati di entità

Gli utenti si presentano spesso in una situazione in cui un processo aziendale non può essere completato perché l'utente non ha inserito tutte le informazioni necessarie.

Un esempio di questa situazione è quando un utente tenta di creare un ordine di drop-ship con l'indirizzo cliente mancante.

Secondo le best practice di UX, il sistema dovrebbe essere amichevole con l'utente e non solo informare l'utente della situazione, ma anche guidarlo alla risoluzione del suo problema. Come sappiamo, il sistema ha già un meccanismo simile attivato da PXSetup<TSetup>.Current quando non ci sono record nella tabella TSetup . È implementato internamente lanciando un PXSetupNotEnteredException .

Recentemente, è stata aggiunta una nuova funzionalità a questa eccezione, che consente a uno sviluppatore di generare un errore con un link all'entità che deve essere riconfigurato:

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

Il risultato viene visualizzato all'utente in questo modo:

pagina di errore

  • Come primo parametro di tipo, PXSetupNotEnteredException accetta il tipo di entità a cui verrà generato il collegamento del grafico predefinito.

  • Il secondo parametro di tipo indica il campo chiave del record da utilizzare per generare il collegamento. Nell'esempio precedente, la navigazione verso l'entità warehouse è effettuata dalla chiave CD.

  • Il primo argomento del costruttore è la stringa di formato per il messaggio di errore. La numerazione dei segnaposti interni deve iniziare con 1: ovvero 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.

  • Il secondo argomento del costruttore è il valore del campo chiave specificato come secondo parametro generico. Nell'esempio, il collegamento che verrebbe generato è /IN204000.aspx?siteCD=erroneousSite.SiteCDlnk .

  • Il terzo argomento del costruttore è il valore leggibile da visualizzare nel messaggio di errore: ...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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow