acumatica
Anzeigen eines Fehlers, der die Eingabe von Entitätsdaten erfordert
Suche…
Anzeigen eines Fehlers, der den Benutzer zur Eingabe von Entitätsdaten auffordert
Benutzer erscheinen häufig in einer Situation, in der ein Geschäftsprozess nicht abgeschlossen werden kann, weil der Benutzer nicht alle erforderlichen Informationen eingegeben hat.
Ein Beispiel für diese Situation ist, wenn ein Benutzer versucht, einen Drop-Ship-Auftrag mit fehlender Kundenadresse zu erstellen.
Gemäß den Best Practices von UX sollte das System für den Benutzer freundlich sein und den Benutzer nicht nur über die Situation informieren, sondern ihn auch zur Lösung seines Problems führen. Wie wir wissen, verfügt das System bereits über einen ähnlichen Mechanismus, der durch PXSetup<TSetup>.Current
aktiviert wird, wenn keine Datensätze in der TSetup
Tabelle vorhanden sind. Es wird intern implementiert, indem eine PXSetupNotEnteredException
.
Vor kurzem wurde dieser Ausnahme eine neue Funktionalität hinzugefügt, die es einem Anwendungsentwickler ermöglicht, einen Fehler mit einer Verknüpfung zu der Entität auszulösen, die neu konfiguriert werden muss:
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);
}
Das Ergebnis wird dem Benutzer folgendermaßen angezeigt:
Als erster
PXSetupNotEnteredException
akzeptiertPXSetupNotEnteredException
den Typ der Entität, zu der die Standardgraphenverknüpfung generiert wird.Der zweite Typparameter gibt das Schlüsselfeld des Datensatzes an, das zur Erzeugung der Verknüpfung verwendet werden soll. Im obigen Beispiel wird die Navigation zur Lagerentität über den CD-Schlüssel vorgenommen.
Das erste Konstruktorargument ist die Formatzeichenfolge für die Fehlernachricht. Die Nummerierung der internen Platzhalter sollte mit 1 beginnen: dh
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.
Das zweite Konstruktorargument ist der Wert des Schlüsselfelds, das als zweiter generischer Parameter angegeben ist. In diesem Beispiel würde der Link
/IN204000.aspx?siteCD=erroneousSite.SiteCDlnk
generiert.Das dritte Konstruktorargument ist der in der Fehlernachricht anzuzeigende, vom Menschen lesbare Wert:
...in this case an address and a contact must be configured for the 'erroneousSite.SiteCDinf' warehouse.