acumatica
Visar ett fel som kräver att ange entitetsdata
Sök…
Visar ett fel som kräver att användaren ska ange entitetsdata
Användare dyker ofta upp i en situation då en affärsprocess inte kan slutföras eftersom användaren inte har angett all nödvändig information.
Ett exempel på denna situation är när en användare försöker skapa en drop ship-order med saknad kundadress.
Enligt UX: s bästa praxis bör systemet vara vänligt mot användaren och inte bara informera användaren om situationen utan också vägleda honom till lösningen på hans problem. Som vi vet har systemet redan en liknande mekanism aktiverad av PXSetup<TSetup>.Current
när det inte finns några poster i TSetup
tabellen. Det implementeras internt genom att kasta en PXSetupNotEnteredException
.
Nyligen har en ny funktionalitet lagts till detta undantag, som gör det möjligt för en applikationsutvecklare att kasta ett fel med en länk till enheten som måste konfigureras om:
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);
}
Resultatet visas för användaren så här:
Som en första
PXSetupNotEnteredException
accepterarPXSetupNotEnteredException
typen av den enhet som standardgraflänken genereras till.Den andra typparametern anger nyckelfältet för posten som ska användas för att generera länken. I exemplet ovan navigeras till lagerenheten med CD-tangenten.
Det första konstruktörargumentet är formatsträngen för felmeddelandet. Numreringen av dess interna platshållare bör börja med 1: dvs
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.
Det andra konstruktörargumentet är värdet på nyckelfältet som anges som den andra generiska parametern. I exemplet är länken som skulle genereras
/IN204000.aspx?siteCD=erroneousSite.SiteCDlnk
.Det tredje konstruktörargumentet är det mänskliga läsbara värdet som ska visas i felmeddelandet:
...in this case an address and a contact must be configured for the 'erroneousSite.SiteCDinf' warehouse.