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.
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.
Pour activer le traitement parallèle, vous devez ajouter les clés suivantes au fichier web.config sous le nœud Configuration/Appsettings :
GIST: https://gist.github.com/lekker-solutions/320b32b5eeb15e36ce29957095862b3d
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 :
GIST : https://gist.github.com/lekker-solutions/46b8a010c4ceae41bea63707b8e9ba22
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é.
Cela est dû au fait que les clés ne définissent qu’une règle globale sur le traitement. Il doit toujours être activé sur votre écran personnalisé lui-même. Le code ci-dessous montre comment :
GIST : https://gist.github.com/lekker-solutions/33552d7e645905d0a995a9df7f56db49
Essayons maintenant le processus le bouton tout:
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:
Voici un diagramme illustrant la différence entre les deux, et où le point d’arrêt est pris dans le code:
Au cours du traitement séquentiel, le fil (alias le commis) a vu toute la liste des éléments à traiter. Dans le traitement parallèle, le thread n’a vu que le nombre maximal d’éléments (spécifié à un niveau maximum dans le fichier web.config et en outre dans les options de traitement parallèle au niveau de l’écran).
Le traitement parallèle, bien qu’il ne s’agit pas d’une solution miracle, peut augmenter considérablement la capacité de traitement des utilisateurs d’Acumatica travaillant avec de grandes quantités de données. Avec seulement quelques modifications apportées au fichier web.config , vous pouvez facilement l’activer à la fois sur le code ERP de base et votre code personnalisé. Il n’est pas nécessaire de gérer vos propres fils et les autres complexités qui l’accompagnent.
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!