Plus de deux décennies passées à auditer des bases de code JDEJD Edwards, un progiciel de gestion intégré (ERP) d'Oracle utilisé pour gérer les ressources de l'entreprise. révèlent un modèle courant : des applications interactives (APPL)Programmes JD Edwards permettant aux utilisateurs de consulter et de modifier des données via des formulaires graphiques. personnalisées avec des centaines de lignes de logique de validation complexe entassées directement dans l'événement Button Clicked d'un bouton « OK » ou d'un bouton personnalisé. C'est une impasse architecturale. Lorsque vous passez au Tools Release 9.2.8Version technique du socle logiciel de JD Edwards qui apporte de nouvelles fonctionnalités et correctifs de sécurité. ou que vous tentez d'exposer cette logique à OrchestratorOutil permettant d'automatiser des processus métier et de connecter JD Edwards à des applications externes via des API., vous réalisez que vous avez piégé vos règles métier à l'intérieur de la couche de présentation, forçant des remises à niveau coûteuses.
Lorsqu'une application interactive personnalisée (APPLUne application interactive dans JD Edwards permettant aux utilisateurs de visualiser et modifier des données via des formulaires.) dans JDE EnterpriseOne 9.2 met plusieurs secondes à charger une grille, les développeurs blâment souvent le matériel de la base de données ou la latence du réseau. Dans la grande majorité des cas, le coupable est une jointure mal construite dans une Business View (BSVW)Un objet JDE qui définit la sélection de colonnes et les jointures entre tables pour les applications et rapports. personnalisée définie dans le Form Design Aid (FDA)L'outil de développement JDE utilisé pour concevoir les interfaces utilisateur et la logique des formulaires.. Maîtriser l'utilisation des Business Views personnalisées JDE APPL pour éviter les mauvaises jointures est essentiel pour empêcher la base de données d'exécuter des boucles imbriquées incontrôlées sur des millions de lignes dans des tables comme F0911 ou F4211.
Promouvoir des applications interactives (APPLApplication interactive JD Edwards permettant aux utilisateurs de consulter et modifier des données via une interface graphique.) en se basant uniquement sur des tests fonctionnels de type « happy pathScénario de test idéal où tout se déroule comme prévu, sans erreur ni exception. » est une voie directe vers l'instabilité en production. Lorsqu'un analyste métier valide une APPL parce qu'il a réussi à traiter quelques transactions de test, il passe à côté des fuites de mémoire latentes, des Data StructuresFormats définis pour organiser et transmettre des données entre différents composants du système JD Edwards. non mappées et des verrous de table non libérés qui se cachent dans les Event RulesLangage de programmation propriétaire de JD Edwards utilisé pour ajouter de la logique métier aux formulaires et rapports.. Dans EnterpriseOne 9.2, un seul handle de base de donnéesIdentifiant technique utilisé par le système pour maintenir une connexion active avec la base de données. non libéré ou un appel de business functionProgramme modulaire qui exécute une logique métier spécifique et réutilisable, comme un calcul ou une validation. mal fermé dans une APPL personnalisée peut dégrader les performances du serveur HTML pour des centaines d'utilisateurs simultanés, transformant un déploiement mineur en une urgence de niveau Sev-1Niveau de sévérité critique indiquant une interruption totale d'un service métier essentiel nécessitant une résolution immédiate..
L'application d'un ESUMise à jour logicielle électronique fournie par Oracle pour corriger des bogues ou ajouter des fonctionnalités dans JD Edwards. Oracle à une application de base fortement modifiée comme la Saisie des Commandes de Vente (P4210) ou la Saisie des Réquisitions (P4312) est l'étape où les délais de mise à jour déraillent fréquemment. Bien que des outils comme ER CompareOutil de JD Edwards permettant de comparer et de fusionner les différences entre deux versions de règles d'événements. existent depuis des décennies, les développeurs corrompent encore régulièrement les spécificationsMétadonnées stockées dans la base de données qui définissent le comportement et l'apparence des objets JD Edwards. locales ou perdent de la logique métier critique car ils traitent la fusion comme un simple exercice de copier-coller mécanique. Dans une mise à jour typique de 9.1 vers 9.2, les applications interactives (APPLAbréviation pour Application Interactive, un programme avec lequel l'utilisateur interagit via une interface graphique.) représentent une part relativement faible des objets modifiés, environ 10 % à 20 %, mais elles comptent pour plus d'un tiers des rapports d'incidents post-mise en service en raison de fusions manuelles mal exécutées.

En plus de deux décennies de sauvetage de bases de code JDE personnalisées, l'échec architectural le plus persistant que je vois est de traiter les versions d'applications interactives (APPLApplications interactives de JD Edwards permettant aux utilisateurs de consulter et modifier des données via une interface graphique.) comme des versions d'applications batch (UBEUniversal Batch Engine : programmes de traitement par lots utilisés pour générer des rapports ou traiter de gros volumes de données.). Alors qu'une version UBE contient des spécifications indépendantes de sélection de données et de séquençage, une version APPL est simplement un pointeur vers des valeurs de Processing OptionsParamètres permettant de modifier le comportement d'un programme sans modifier son code source. stockées dans la table F983051Table système centrale stockant les définitions des versions et leurs options de traitement.. Une mauvaise compréhension de cette distinction conduit les développeurs à coder en dur les noms de versions dans les Event RulesLangage de programmation spécifique à JD Edwards utilisé pour définir la logique métier des applications et rapports., ce qui fragmente le code (forking) et alourdit l'empreinte de vos mises à niveau.

Lors de l'exécution d'un ER CompareOutil de comparaison et de fusion de code entre différentes versions d'objets JD Edwards. sur un P4210Application standard JD Edwards dédiée à la gestion des commandes de vente. ou P4310 fortement modifié pendant une mise à niveau de 9.1 vers 9.2, le coût des mauvaises habitudes de développement devient immédiatement évident. Des variables cryptiques comme evt_szName_WD01 ou des Event Rules (ER)Langage de programmation interne à JD Edwards pour définir la logique métier des applications. non documentées transforment un rétrofitProcessus consistant à réappliquer des modifications personnalisées sur une nouvelle version logicielle standard. standard de quelques heures en un cycle de débogage de plusieurs jours. L'outil de fusion visuelle ne parvient pas à aligner la logique lorsque les variables personnalisées manquent de contexte structurel, ce qui entraîne des corruptions de mémoire silencieuses au moment de l'exécution ou des ruptures d'interconnexions de formulaires.
Page 5 sur 15