Dans les environnements d'entreprise JDEJD Edwards, un progiciel de gestion intégré (ERP) d'Oracle utilisé pour gérer les ressources de l'entreprise. où les tables de grand livre principales comme la F0911La table principale du grand livre général dans JD Edwards, contenant toutes les écritures comptables. ou les registres de transactions comme la F4111 dépassent les 20 millions de lignes, une seule clause RDAReport Design Aid, l'outil de JD Edwards utilisé pour concevoir et modifier des rapports et des traitements batch. mal structurée peut transformer un traitement batchUn traitement informatique exécuté automatiquement en arrière-plan, sans intervention de l'utilisateur. de moins d'une minute en un goulot d'étranglement de plusieurs heures dans la file d'attente. Lorsque les fenêtres de traitement nocturnes explosent, les équipes d'infrastructure rejettent généralement la faute sur les allocations de files d'attente CNCConfigurable Network Computing, l'architecture technique de JD Edwards et l'équipe responsable de l'administration du système. ou réclament des mises à niveau de la mémoire de la base de données. En réalité, une grande majorité des UBEUniversal Batch Engine, le moteur de JD Edwards qui exécute les rapports et les traitements par lots en arrière-plan. personnalisés qui s'éternisent — souvent les trois quarts ou plus — proviennent directement d'un SQLStructured Query Language, le langage standard utilisé pour communiquer avec et interroger les bases de données relationnelles. inefficace généré par des critères de sélection défectueux.
Lorsque les équipes financières ou de la chaîne d'approvisionnement exigent un rapprochement quotidien automatisé entre les tables de grand livre standard comme la F0911 et des systèmes tiers, les administrateurs de bases de données écrivent souvent par réflexe des scripts SQL externes ou des déclencheurs de base de données. Cette approche se retourne régulièrement contre eux : elle contourne les contrôles de cycle de vie de l'Object Management Workbench (OMW)Outil de gestion du cycle de vie et des modifications des objets dans JD Edwards. de JDE, ignore les règles de sécurité et risque de verrouiller les tables de transactions actives pendant les pics d'activité des traitements par lots.
J'audite régulièrement des parcs de rapports personnalisés où une part importante du code des Event RulesLangage de programmation propriétaire de JD Edwards utilisé pour définir la logique métier. — souvent 30 % à 40 % — consiste en une logique identique copiée-collée sur trois ou quatre sections conditionnelles. Les développeurs clonent une section simplement pour modifier une mise en page visuelle pour une succursale ou un type de commande spécifique, dupliquant ainsi des centaines de lignes d'EREvent Rules, le langage de programmation interne de JD Edwards. complexes de calcul d'inventaire ou de taxes. Lorsque les règles de gestion changent inévitablement, un développeur corrige la Section A, oublie la Section B et introduit une corruption de données silencieuse qui prend des semaines à être détectée en production.
Dans les environnements EnterpriseOne 9.2 matures, une part importante des échecs de traitements par lots en production — souvent 30 % à 40 % — provient d'UBEsUniversal Batch Engine : programmes de traitement par lots dans JD Edwards pour générer des rapports ou traiter des données en masse. personnalisés qui s'exécutaient correctement sur les clients de développement locaux. Les développeurs valident généralement les rapports par rapport à un petit jeu de données DVEnvironnement de développement (Development) dans JD Edwards. de 1 000 à 2 000 lignes à l'aide des spécifications de version par défaut, en ignorant complètement le comportement de la logique d'exécution sur un Enterprise ServerServeur central qui exécute la logique métier et les traitements par lots (UBEs) de JD Edwards. sous une exécution multithread simultanée, des jointures non indexées sur des tables majeures comme F0911Table maîtresse du grand livre (Account Ledger) dans JD Edwards, contenant les transactions financières. ou F4111Table de l'historique des transactions d'inventaire (Item Ledger) dans JD Edwards., et des allocations de mémoire JDECACHEMécanisme de stockage temporaire en mémoire utilisé par JD Edwards pour améliorer les performances d'exécution. non libérées.
Lors d'audits d'entreprise approfondis, les équipes techniques constatent régulièrement que la majorité des rapports Universal Batch Engine (UBE)Moteur de traitement par lots de JD Edwards utilisé pour générer des rapports et exécuter des processus en arrière-plan. personnalisés contournent involontairement le noyau de sécurité JDE (F00950Table système centrale de JD Edwards qui stocke toutes les règles de sécurité applicatives, par objet et par ligne.). Les directions ERP supposent souvent qu'une sécurité par ligne active sur des tables comme F060116 (Payroll) ou F4105 (Item Cost) limite intrinsèquement les résultats des traitements par lots. Ce n'est pas le cas. Dès qu'un développeur utilise des Table I/OOpérations d'entrée/sortie permettant de lire, écrire ou mettre à jour directement les données des tables dans JD Edwards. directs dans les Event RulesLangage de programmation propriétaire de JD Edwards utilisé pour coder la logique métier des applications et des rapports. ou appelle une Business FunctionComposant logiciel réutilisable, écrit en C ou en Event Rules, exécutant des calculs ou des processus métier spécifiques. C personnalisée exécutant JDB_OpenTable sans transmettre explicitement le contexte de sécurité de l'utilisateur, la sécurité par ligne au niveau du moteur est ignorée.
Lorsqu'une file d'attente de traitements batch se bloque sur l'Enterprise ServerLe serveur central qui exécute les calculs, la logique métier et les traitements lourds (batchs) de JD Edwards. à 2h00 du matin, le premier réflexe de nombreuses équipes est d'augmenter le nombre maximal de jobs simultanés dans la configuration de l'environnement JDEJD Edwards, un progiciel de gestion intégré (ERP) utilisé par les entreprises pour gérer leurs opérations.. Neuf fois sur dix, il s'agit d'un mauvais diagnostic. Le véritable goulot d'étranglement est presque toujours une conception défectueuse dans le Report Design Aid (RDA)L'outil de développement interne de JD Edwards utilisé pour créer et modifier des rapports et des programmes batch. qui exécute des millions de lectures de base de données non indexées. Joindre la table F4111 Item Ledger à la table F0911 General Ledger dans une seule Business ViewUne interface dans JD Edwards qui sélectionne et lie les tables de la base de données pour les rendre utilisables par les rapports. personnalisée sans correspondance stricte d'indexUne structure de données qui accélère la recherche d'enregistrements dans une table, comme l'index d'un livre. transforme ce qui devrait être un traitement de 90 secondes en un blocage de file d'attente de 4 heures.
Page 14 sur 19