Zoeken…


Een fout weergeven waarbij de gebruiker entiteitsgegevens moet invoeren

Gebruikers verschijnen vaak in een situatie waarin een bedrijfsproces niet kan worden voltooid omdat de gebruiker niet alle benodigde informatie heeft ingevoerd.

Een voorbeeld van deze situatie is wanneer een gebruiker een drop-shiporder probeert te maken met een ontbrekend klantadres.

Volgens de best practices van UX moet het systeem vriendelijk zijn voor de gebruiker en niet alleen de gebruiker informeren over de situatie, maar ook leiden naar de oplossing van zijn probleem. Zoals we weten, heeft het systeem al een soortgelijk mechanisme dat wordt geactiveerd door PXSetup<TSetup>.Current wanneer er geen records in de TSetup tabel staan. Het wordt intern geïmplementeerd door een PXSetupNotEnteredException gooien.

Onlangs is aan deze uitzondering een nieuwe functionaliteit toegevoegd, waarmee een applicatie-ontwikkelaar een fout kan gooien met een link naar de entiteit die opnieuw moet worden geconfigureerd:

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

Het resultaat wordt als volgt aan de gebruiker getoond:

pagina met foutpagina

  • Als een parameter van het eerste type accepteert PXSetupNotEnteredException het type entiteit waarnaar de standaardgrafiekkoppeling wordt gegenereerd.

  • De tweede parameter type geeft het sleutelveld aan van het record dat moet worden gebruikt om de koppeling te genereren. In het bovenstaande voorbeeld wordt navigatie naar de magazijnentiteit gemaakt met de CD-sleutel.

  • Het eerste constructorargument is de opmaakreeks voor het foutbericht. De nummering van de interne tijdelijke aanduidingen moet beginnen met 1: dat wil zeggen dat 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.

  • Het tweede constructorargument is de waarde van het sleutelveld dat is opgegeven als de tweede generieke parameter. In het voorbeeld is de link die wordt gegenereerd /IN204000.aspx?siteCD=erroneousSite.SiteCDlnk .

  • Het derde constructorargument is de voor de mens leesbare waarde die moet worden weergegeven in het foutbericht: ...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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow