acumatica
Visualizzazione di un errore che richiede di immettere dati di entità
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:
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.