Buscar..


Visualización de un error que requiere que el usuario ingrese datos de la entidad

Los usuarios a menudo se presentan en una situación en la que no se puede finalizar un proceso de negocios porque el usuario no ha ingresado toda la información necesaria.

Un ejemplo de esta situación es cuando un usuario intenta crear un pedido de entrega inmediata con la dirección del cliente que falta.

De acuerdo con las mejores prácticas de UX, el sistema debe ser amigable con el usuario y no solo informarle al usuario sobre la situación, sino también guiarlo a la resolución de su problema. Como sabemos, el sistema ya tiene un mecanismo similar activado por PXSetup<TSetup>.Current cuando no hay registros en la tabla de TSetup . Se implementa internamente lanzando una PXSetupNotEnteredException .

Recientemente, se ha agregado una nueva funcionalidad a esta excepción, que permite a un desarrollador de aplicaciones lanzar un error con un enlace a la entidad que debe reconfigurarse:

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

El resultado se muestra al usuario así:

página de error

  • Como primer parámetro de tipo, PXSetupNotEnteredException acepta el tipo de entidad a la que se generará el enlace del gráfico predeterminado.

  • El segundo parámetro de tipo denota el campo clave del registro que se utilizará para generar el enlace. En el ejemplo anterior, la navegación a la entidad de almacén se realiza mediante la clave del CD.

  • El primer argumento del constructor es la cadena de formato para el mensaje de error. La numeración de sus marcadores de posición internos debe comenzar con 1: es decir, la 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.

  • El segundo argumento del constructor es el valor del campo clave especificado como el segundo parámetro genérico. En el ejemplo, el enlace que se generaría es /IN204000.aspx?siteCD=erroneousSite.SiteCDlnk .

  • El tercer argumento del constructor es el valor legible por el hombre que se muestra en el mensaje de error: ...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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow