Rendre optionnels les flux d'approbation activés dans Acumatica

Brian Stevens | 16 novembre 2023

Rendre optionnels les flux d'approbation activés dans Acumatica

Révision : Nov, 2023

Introduction

Il y a quelques années, un processus d'approbation consistait à faire circuler un formulaire papier dans l'usine afin d'obtenir l'approbation nécessaire à l'exécution des processus opérationnels. En règle générale, ces formulaires étaient envoyés dans des enveloppes de courrier inter-entreprises, mais les cas urgents étaient transmis manuellement tout au long du processus. Dans un cas, un client convoquait toutes les parties prenantes d'un processus pour une réunion hebdomadaire afin d'examiner de nombreuses demandes et d'approuver ou de rejeter chacune d'entre elles en tant que comité de révision. Comme vous pouvez l'imaginer, ces processus d'approbation sur papier et ces réunions hebdomadaires ralentissaient considérablement la prise de décision et l'approvisionnement en matériel.

Faisons un bond en avant de quelques années (voire décennies) pour découvrir l'ERP Acumatica. Grâce à un moteur d'approbation robuste, le papier a été remplacé par des processus d'approbation électroniques rationalisés, comprenant des notifications, des validations via un navigateur ou une application mobile, et une prise de décision qui suit le rythme de l'activité. Le moteur d'approbation peut être intégré à des écrans personnalisés, et diverses conditions peuvent être définies pour automatiser certaines approbations et certains rejets en fonction des besoins de l'entreprise.

Si l'approbation électronique est loin d'être une nouveauté à l'ère de l'informatique numérique, les processus d'entreprise ne sont pas toujours aussi tranchés qu'on pourrait le croire en matière d'approbation. Certains processus opérationnels peuvent nécessiter un examen périodique et seules les recommandations de changement doivent être envoyées pour approbation. La difficulté consiste à faire la différence entre un document "révisé" et un document "approuvé" ou "rejeté".

Cas d'entreprise

SETECH Supply Chain Solutions gère les consommables pour ses clients. Au cœur de ses services se trouve le programme « Plan for Every Part ». Ce processus opérationnel clé implique que chaque article en stock soit examiné régulièrement afin de s'assurer que la disponibilité des consommables corresponde aux besoins de ses clients. 

Selon les exigences métier, un plan qui a été examiné doit se voir attribuer le statut « Examiné », tandis que les plans soumis pour approbation doivent suivre la procédure d'approbation standard, qui aboutit aux statuts « Approuvé » ou « Rejeté ». Étant donné que la procédure d'approbation standard, lorsqu'elle est activée, aboutit soit au statut « Approuvé », soit au statut « Rejeté », une personnalisation a été nécessaire pour permettre de contourner la procédure d'approbation sous certaines conditions et d'attribuer au plan un troisième statut, appelé « Examiné ». 

Le processus d'approbation standard requiert une carte d'approbation et crée automatiquement une entrée dans l'onglet « Détails de l'approbation » ; ainsi, même un plan marqué comme « Révisé » présenterait une entrée d'approbation orpheline, ce qui prête à confusion. Il est également important de noter que la version utilisée est Acumatica ERP 2021 R1.

Bien que le nouveau moteur de flux de travail modifie facilement le statut en Révision, la prévention de l'enregistrement d'approbation orphelin nécessite un codage créatif.

Solution

Tout d'abord, les champs du CED doivent être définis pour soutenir le processus d'approbation. Remarquez les champs standard " en attente", " approuvé" et " rejeté ". Remarquez maintenant l'ajout d'un champ supplémentaire appelé RequestApproval qui sera défini en fonction de la valeur de l'enregistrement Setup (à partir d'un écran Preferences ) activant ou désactivant les approbations. Ce champ sera utilisé par le flux de travail de l'écran personnalisé pour déterminer de manière programmatique si les conditions de l'enregistrement requièrent la soumission d'une approbation.

Champs DAC

GIST: https://gist.github.com/BrianMRO/4063f8214a301c36b1f3516dd96f0e63

Il faut ensuite définir les vues. La vue principale de MyDAC s'appelle Document, et la vue de configuration de l'approbation de MySetupApproval s'appelle SetupApproval.  Il s'agit de la table qui contient les cartes d'approbation définies dans la configuration d'approbation de l'écran. Comme cette table contient les cartes d'approbation destinées à être utilisées par le moteur d'approbation, un constructeur est utilisé pour renvoyer null si le plan (MyDAC) ne nécessite pas d'approbation selon le champ RequestApproval

Ce constructeur est la « formule magique » qui empêche un enregistrement orphelin d'apparaître dans l'onglet « Détails de l'approbation ».

Configurer les vues

GIST : https://gist.github.com/BrianMRO/d1cc58b6deff39ff48d4c08b8f645b90

Ensuite, le système d'approbation doit être ajouté. Le moteur d'approbation est spécifié par l'inclusion de EPApprovalAutomation, qui fait référence aux champs " hold", " approved" et " rejected " de MyDAC ainsi qu'à la table d'approbation MySetupApproval. Par commodité, le code CacheAttached pour EPApproval a été inclus pour rappeler que ces champs doivent être spécifiés pour que les valeurs de MyDAC soient intégrées dans l'écran d'approbation standard.

Ajouter des configurations d'approbation standard

GIST : https://gist.github.com/BrianMRO/0d1a2baa173dad741300246cb519cae6

Enfin, l'approbation facultative nécessite le paramétrage de MyDAC.RequestApproval conformément à la logique métier lorsque l'action RemoveHold est exécutée (RemoveHold est défini dans les nouveaux workflows de l'interface utilisateur pour remplacer le décochage de la case à cocher hold dans les anciennes versions d'Acumatica). Dans ce cas de figure, la modification de certaines valeurs nécessite une approbation, mais d'autres valeurs peuvent être mises à jour dans le cadre d'une simple révision.

Rendre l'approbation facultative

GIST: https://gist.github.com/BrianMRO/1fb4359ee10b740c3d25d0b05e55f288

Notez l'étape très importante de l'actualisation de la vue SetupApproval. Cette actualisation permet de compléter ou de vider la liste des cartes d'approbation. C'est l'absence de carte d'approbation à sélectionner qui empêche l'enregistrement orphelin dans l'onglet Détails de l'approbation.

Pour compléter la configuration, le flux de travail a été modifié dans l'interface utilisateur du projet de personnalisation pour passer de la mise en attente à la transition en fonction de la définition du champ RequestApproval. Les états et les transitions utilisés pour contrôler le flux de l'enregistrement de planification sont décrits ci-dessous. Lors de la suppression de la mise en attente, un plan marqué RequestApproval = false passera à Reviewed tandis qu'un plan avec RequestApproval = true passera à Pending Approval.

Résumé

Entre la hausse des coûts de main-d'œuvre et une inflation supérieure à la moyenne sur pratiquement tous les achats, les coûts d'exploitation semblent monter en flèche au-delà du point de rupture pour de nombreuses entreprises. Bien que le service financier ait toujours mis l'accent sur la maîtrise des coûts, il n'a jamais été aussi crucial de gérer ces derniers à chaque étape des processus opérationnels. Heureusement, Acumatica propose un workflow d'approbation robuste, capable d'intégrer des critères d'approbation axés sur la maîtrise des coûts et adaptés à chaque entreprise, qu'il s'agisse de tous les achats ou uniquement de ceux atteignant un seuil défini. 

Avec un peu de créativité, ce cadre solide peut également être adapté à d'autres processus métier. Dans cet article, j'ai montré comment une simple personnalisation permet de gérer un processus métier essentiel lié à la disponibilité des stocks, en s'appuyant soit sur un workflow complet d'approbation impliquant le client pour les modifications, soit sur une procédure facultative de révision interne lorsqu'aucune modification n'est recommandée.

J'espère que cela vous a été utile - Bon codage !

 

Auteur du blog

Brian est le développeur principal de SETECH Supply Chain Solutions, LLC. SETECH fournit des solutions sur mesure basées sur les meilleures pratiques afin d'améliorer la disponibilité des matériaux indirects tout en réduisant le coût total de possession pour leurs clients.

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