Activation du traitement parallèle sur les écrans de traitement Acumatica

Kyle Vanderstoep , 31 octobre 2023
Traitement parallèle

Gestion de la croissance et des volumes de données importants

Révision : Oct, 2023

Acumatica, positionné comme un ERP du marché intermédiaire (Enterprise Resource Planning), peut être déployé pour une grande variété d’entreprises - grandes, moyennes ou petites. Au fur et à mesure que les entreprises connaissent une croissance, la quantité de données dont elles ont besoin pour gérer augmente.  Cependant, d’après mon expérience dans le développement de code personnalisé sur la plate-forme Acumatica, je trouve qu’un nombre important d’organisations avec lesquelles je travaille sont au-dessus de leur poids lorsqu’il s’agit de gérer et de traiter des données.

Acumatica dispose d’une grande variété d’écrans de traitement pour effectuer diverses tâches « en masse », et dispose en outre d’un cadre robuste mais facile à suivre pour la mise en œuvre de vos propres écrans de traitement. Cependant, les enregistrements sont traités de manière séquentielle (1,2,3, etc.). Heureusement, il est possible d’activer un traitement parallèle pour les clients ayant des exigences importantes en matière de traitement des données.

Comprendre le traitement parallèle

Le traitement parallèle tire parti du fait que les applications peuvent utiliser plus d’un thread de traitement à la fois. Pensez à l’époque précédant les ordinateurs, où les commis traitaient manuellement les transactions à la main. Comment avez-vous accéléré le nombre de transactions que vous pouvez enregistrer? Soit vous recherchez haut et bas pour le commis de merveille qui est super-rapide, ou vous embauchez simplement plus de commis et répartissez le travail également entre eux. Acumatica peut être configuré de la même manière.

Activation du traitement parallèle dans web.config

Pour activer le traitement parallèle, vous devez ajouter les clés suivantes au fichier web.config sous le nœud Configuration/Appsettings :

Création d’un écran de traitement de base

Pour tester cela, ajoutons ces clés au fichier web.config et créons un écran de traitement de base qui traite une liste d'enregistrements :

ss01-traitement parallèle

Même si nous avons ajouté les touches, l’écran de traitement renvoie toujours toute la liste des lots GL lorsque « Traiter tout » est sélectionné.

ss02-traitement parallèle

Activation du traitement parallèle à l’écran

Cela est dû au fait que les clés ne définissent qu'une règle globale de traitement. Il est toujours nécessaire de l' activer sur votre écran personnalisé .

Observation des résultats

Essayons maintenant le processus le bouton tout:

ss03-traitement parallèle

Lorsque vous regardez le résultat de l’écran de traitement, vous pouvez voir que tous les enregistrements ont été traités même si ce thread que nous avons attrapé n’en a vu que 10:

ss04-traitement parallèle

Voici un diagramme illustrant la différence entre les deux, et où le point d’arrêt est pris dans le code:

ss05-traitement parallèle

Traitement séquentiel vs Parallèle

Lors du traitement séquentiel, le processus (alias le serveur) voyait la liste complète des éléments à traiter. En traitement parallèle, il ne voyait que le nombre maximal d'éléments (spécifié au niveau maximal dans le fichier web.config et également dans les options de traitement parallèle au niveau de l'écran).

Le traitement parallèle, bien qu'il ne constitue pas une solution miracle, peut augmenter considérablement la capacité de traitement des données pour les utilisateurs d'Acumatica travaillant avec de grands volumes de données. Quelques modifications du fichier web.config suffisent pour l'activer facilement, autant sur le code ERP de base que sur votre code personnalisé. Vous n'aurez plus besoin de gérer vos propres fils ni les complexités qui en découlent.

J’espère que cet article vous aidera avec le volume de traitement des données qui ne cesse d’augmenter à un rythme de plus en plus rapide dans ce monde en transformation numérique.

Bon codage!

Auteur du blog

Catégories