Accueil Blog Annonce d'Acumatica Acuminator 3.1.0

Annonce de Acumatica Acuminator 3.1.0

Notre dernière version comprend de nouveaux extraits de code Acumatica pour Microsoft Visual Studio et de nombreuses améliorations et corrections de bogues dans l'analyse statique du code.
Sergey Nikomarov | 8 décembre 2022

Acumuninator 3.1.0

Nous sommes heureux d'annoncer la sortie de la version 3.1.0 d'Acuminator !

Vous pouvez télécharger la nouvelle version sur le Visual Studio Marketplace. Si vous avez déjà installé la version bêta d'Acuminator 3.1.0, il est préférable de la supprimer avant d'installer la nouvelle version.

Extraits de code

Acuminator fournit désormais des extraits de code pour les DAC, les champs DAC et les événements graphiques. Un développeur peut utiliser ces extraits de code pour accélérer l'écriture d'un nouveau code et éviter les erreurs courantes. Vous pouvez commencer à utiliser les extraits de code en tapant "DAC" ou "_" et en sélectionnant l'extrait approprié dans la liste de complétion de code IntelliSense, comme le montre la capture d'écran suivante.

Annonce de Acumatica Acuminator 3.1.0
Lorsque vous sélectionnez un raccourci dans le menu IntelliSense et appuyez sur la touche Tab, le système insère l'extrait de code, comme le montre la capture d'écran suivante.

Annonce de Acumatica Acuminator 3.1.0

Pour plus de détails sur l'installation et l'utilisation des extraits de code, consultez le dépôt Acumatica CodeSnippets sur GitHub.

Nouveaux diagnostics

Dans Acuminator 3.1.0, les améliorations suivantes ont été apportées :

  • Le diagnostic PX1062 a été ajouté pour s'assurer que les graphes et les extensions de graphes ne contiennent pas d'actions statiques, de vues ou d'autres champs et propriétés statiques mutables.
  • Les nouveaux diagnostics suivants ont été ajoutés pour éviter les erreurs liées à la sérialisation et à la désérialisation des exceptions :
    • Le diagnostic PX1063 garantit que les classes d'exception dérivées de System.Exception déclarent toujours un constructeur de sérialisation.
    • Le diagnostic PX1064 garantit que les classes d'exception sont dérivées de System.Exception qui déclare de nouvelles données sérialisables fournissant toujours une surcharge de la méthode GetObjectData.
  • Le diagnostic PX1056 a été ajouté pour vérifier si un graphique est créé dans la méthode IsActive ou IsActiveForGraph dans une extension de graphique ou une extension DAC, et vous avertir si c'est le cas.

Améliorations de l'analyse du code

Les diagnostics existants PX1008 et PX1072 ont été considérablement étendus et améliorés.

Améliorations apportées au diagnostic du PX1008

Le diagnostic PX1008 a été complètement remanié. Désormais, ce diagnostic met en œuvre une analyse complexe du flux de données qui va de manière récursive dans les méthodes et vérifie comment les données leur sont transférées. Les améliorations suivantes ont été apportées au diagnostic :

  • Vérifie que lorsque des adaptateurs de type PXAdapter sont passés à un délégué d'action dans un graphe ou une extension de graphe, les adaptateurs ne sont pas capturés dans des fermetures de délégués par des délégués à long terme et des délégués de traitement.
  • Amélioration des messages de diagnostic
  • Vérifie que les vues et attributs personnalisés capturent les références au graphe et à l'adaptateur dans la fermeture d'un délégué à long terme.
  • Correction de bogues : Le diagnostic affichait un avertissement lors de la capture d'une référence à this dans un délégué, même dans une classe qui n'était pas un graphe ou une extension de graphe.

Améliorations apportées au diagnostic du PX1072

Les correctifs suivants ont été mis en œuvre dans le diagnostic PX1072:

  • Dans les membres graphes statiques, le graphe déclarant n'est plus considéré comme disponible pour une utilisation dans les requêtes BQL ou Fluent BQL.
  • Le diagnostic n'affiche plus d'avertissement si un seul graphe local est disponible et utilisé dans une requête BQL ou Fluent BQL.
  • Le diagnostic affiche désormais un avertissement lorsqu'une classe contient plusieurs requêtes BQL ou Fluent BQL et qu'il n'y a pas de graphes disponibles, c'est-à-dire des instances de graphes qui existent déjà et qui peuvent être utilisées par une requête BQL.

Autres améliorations

  • La prise en charge des expressions complexes transmises à l'API SetProcessDelegate a été ajoutée aux diagnostics PX1008 et PX1086.
  • Les diagnostics PX1057 et PX1084 empêchent désormais la création d'un graphe via un appel direct au constructeur, c'est-à-dire le nouvel appel à la méthode PXGraph().
  • Les diagnostics de localisation des PX1050 et PX1051 affichent désormais moins de fausses alertes et détectent davantage de cas de localisation incorrecte, tels que les chaînes d'interpolation.

Figues punaises

Dans la nouvelle version, nous avons corrigé un certain nombre de bogues graves dans le mécanisme de suppression des diagnostics Acuminator qui empêchait les développeurs de supprimer les diagnostics Acuminator. Nous avons également corrigé plusieurs bogues dans l'analyse statique du code.

Cette version contient également d'autres améliorations dont vous pouvez trouver les détails dans les notes de mise à jour d'Acuminator:
https://github.com/Acumatica/Acuminator/blob/dev/docs/ReleaseNotes.md

Bon codage !

 

 

Auteur du blog

Sergey a rejoint Acumatica en 2017 et a commencé en tant que développeur d'applications dans l'équipe OEM, où il a fait beaucoup de développement Acumatica Framework - en plus de faire plusieurs personnalisations. Un exemple est une grande personnalisation pour le contrôle budgétaire automatisé pour Censof, un partenaire OEM. En 2019, il a rejoint l'équipe de développement de la plateforme en tant que développeur de systèmes. Et plus récemment, Sergey est responsable d'Acuminator et de notre développement et maintenance RVT. Participant à un certain nombre de hackathons internes d'Acumatica, Sergey a fait partie de l'équipe gagnante - avec Vladimir Panchenko - qui a créé Acuminator. Lors d'un hackathon ultérieur, son équipe a poursuivi le développement de la carte de code ainsi que d'autres améliorations d'Acuminator.

Recevez les mises à jour du blog dans votre boîte de réception.