Révision : Jan, 2023
Introduction
Note de la rédaction : Les petits conseils glanés tout au long de la vie sont précieux. C'est particulièrement vrai dans de nombreuses disciplines, où les compétences s'affinent avec le temps grâce à la pratique. Le domaine de l'ingénierie et du développement ne fait pas exception : ces petits détails utiles sont rarement partagés. C'est pourquoi nous avons pensé vous proposer de courts articles de notre communauté de développeurs MVP chez Acumatica, que nous serions ravis de partager avec vous. Attendez-vous à en voir plusieurs dans les prochains mois.
Voici le deuxième article de notre série « Conseils et astuces pour développeurs » de Gabriel Michaud, un ancien employé d'Acumatica qui dirigeait nos laboratoires de Montréal et qui possède maintenant sa propre entreprise, Velixo, et qui est l'un de nos MVP développeurs Acumatica.
Lors de l'introduction d'Acumatica 2018 R2 , une nouvelle fonctionnalité a été ajoutée permettant d'afficher des notes contextuelles sur les entités clés. Par exemple, un responsable des achats qui constate qu'un contrat fournisseur arrive à échéance peut ajouter une note à la fiche fournisseur. Cette note s'affichera lorsqu'un utilisateur s'apprête à effectuer un achat auprès de ce fournisseur.
Voici une courte démonstration enregistrée de la note contextuelle
Saviez-vous qu'il est possible d'utiliser le système de notes contextuelles dans vos personnalisations ? Les notes contextuelles sont des notes statiques que vous configurez dans les données de base. Un de nos clients nous a demandé de personnaliser ses notes pour qu'elles s'affichent de manière dynamique. Dans ce cas précis, il voulait informer ses opérateurs de saisie de commandes qu'une commande existante pour le même produit et le même client était déjà enregistrée dans le système, et vérifier s'il y avait des ruptures de stock chez le fournisseur.
Comme il n'existe actuellement aucune documentation à ce sujet, j'ai dû utiliser mon décompilateur préféré, dnSpy, pour examiner l'implémentation des notes contextuelles dans PX.Data.dll. Dans Acumatica, les notes contextuelles sont définies lors de l' événement FieldVerifying par l' attribut PXSelectorAttribute . Si une note contextuelle est définie pour l'entité configurée, le système appelle PopupNoteManager.RegisterText comme suit (dnSpy) :
Vous pouvez appeler cette même fonction dans votre propre code pour afficher des messages contextuels. Pour ma personnalisation, j'ai étendu le graphique de saisie des commandes clients et ajouté un gestionnaire d'événements pour le champ ID d'inventaire SOLine .
Voici un aperçu du code intégré de GitHub : https://gist.github.com/gmichaud/17e346cdf3062de233f52c9976d0a03e
Après la publication de la personnalisation, le système recherchera les commandes existantes lorsque vous ajouterez des articles à une commande . Si une commande est trouvée, le message suivant s'affichera à votre client :
Grâce à cette personnalisation, notre client est désormais en mesure d’éviter les commandes en double, ce qui se produisait fréquemment avec des articles en rupture de stock qui ont un délai de livraison plus long que d’habitude.
Veuillez noter qu'à l'heure actuelle, il n'est pas possible d'enregistrer plusieurs notes contextuelles lors du même appel. Si la méthode `PopupManager.RegisterText` est appelée plusieurs fois, la fenêtre contextuelle affichée indiquera simplement la présence de plusieurs notes, sans les détailler.
J’espère que vous trouverez cela utile et que vous commencerez à ajouter vos propres popups personnalisés à vos solutions pour vos clients - Happy Coding!