Recherche…


Affichage d'une erreur demandant à l'utilisateur d'entrer des données d'entité

Les utilisateurs se présentent souvent dans une situation où un processus métier ne peut pas être terminé car l'utilisateur n'a pas saisi toutes les informations nécessaires.

Un exemple de cette situation est lorsqu'un utilisateur tente de créer une commande livrable avec une adresse client manquante.

Selon les meilleures pratiques d’UX, le système doit être convivial pour l’utilisateur et non seulement informer l’utilisateur de la situation, mais aussi le guider vers la résolution de son problème. Comme nous le savons, le système a déjà un mécanisme similaire activé par PXSetup<TSetup>.Current lorsqu'il n'y a pas d'enregistrements dans la table TSetup . Il est implémenté en interne en lançant une PXSetupNotEnteredException .

Récemment, une nouvelle fonctionnalité a été ajoutée à cette exception, ce qui permet à un développeur d’appliquer une erreur avec un lien vers l’entité qui doit être reconfigurée:

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

Le résultat est affiché à l'utilisateur comme ceci:

page d'erreur

  • En tant que paramètre de premier type, PXSetupNotEnteredException accepte le type de l’entité à laquelle le lien de graphique par défaut sera généré.

  • Le deuxième paramètre de type indique le champ clé de l'enregistrement à utiliser pour générer le lien. Dans l'exemple ci-dessus, la clé de navigation permet d'accéder à l'entité de l'entrepôt.

  • Le premier argument du constructeur est la chaîne de format du message d'erreur. La numérotation de ses espaces réservés internes doit commencer par 1: 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.

  • Le deuxième argument constructeur est la valeur du champ clé spécifié comme second paramètre générique. Dans l'exemple, le lien qui serait généré est /IN204000.aspx?siteCD=erroneousSite.SiteCDlnk .

  • Le troisième argument constructeur est la valeur lisible par l'homme à afficher dans le message d'erreur: ...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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow