Oltre vent'anni trascorsi a revisionare codebase JDEJD Edwards, un sistema ERP di Oracle per la gestione integrata dei processi aziendali. rivelano un pattern comune: applicazioni interattive (APPLApplicazioni interattive di JD Edwards utilizzate dagli utenti per visualizzare e inserire dati.) personalizzate con centinaia di righe di logica di validazione complessa stipate direttamente nell'evento Button Clicked di un singolo pulsante "OK" o di un pulsante personalizzato. Questo è un vicolo cieco architettonico. Quando si esegue l'aggiornamento alla Tools ReleaseL'insieme di componenti tecnologici e infrastrutturali che supportano le applicazioni JD Edwards. 9.2.8 o si tenta di esporre tale logica a OrchestratorStrumento di integrazione che consente di automatizzare processi e connettere JDE con sistemi esterni., ci si rende conto di aver intrappolato le regole di business all'interno del layer di presentazione, forzando costosi interventi di retrofitL'attività di riadattamento delle personalizzazioni software dopo un aggiornamento del sistema..
Quando un'applicazione interattiva custom (APPLApplicazione interattiva di JD Edwards utilizzata dagli utenti per gestire i dati tramite interfacce grafiche.) in JDE EnterpriseOne 9.2 impiega diversi secondi per caricare una grid, gli sviluppatori spesso incolpano l'hardware del database o la latenza di rete. Nella stragrande maggioranza dei casi, il colpevole è una join mal costruita in una Business ViewBSVW: un oggetto che seleziona tabelle e campi specifici del database per renderli disponibili all'applicazione. (BSVW) custom definita in Form Design AidFDA: l'ambiente di sviluppo grafico utilizzato per creare le schermate delle applicazioni JD Edwards. (FDA). Padroneggiare l'uso delle business view custom in JDE APPL per evitare join errate è fondamentale per impedire al database di eseguire cicli nested loopMetodo di join in cui il database confronta ogni riga di una tabella con le righe di un'altra, potenzialmente molto lento. fuori controllo su milioni di righe in tabelle come F0911 o F4211.
Promuovere applicazioni interattive (APPLApplicazione interattiva di JD Edwards utilizzata dagli utenti per inserire, modificare o visualizzare dati a sistema.) basandosi esclusivamente su test funzionali "happy path" è una via diretta verso l'instabilità della produzione. Quando un business analyst approva una APPL perché ha elaborato con successo una manciata di transazioni di test, ignora i memory leakErrore di programmazione che consuma memoria RAM senza rilasciarla, causando rallentamenti o crash del sistema nel tempo. latenti, le Data StructuresInsieme di parametri definiti per scambiare informazioni e dati tra diverse maschere o funzioni del software. non mappate e i table lockMeccanismo del database che impedisce modifiche simultanee allo stesso record per garantire l'integrità dei dati. non rilasciati che si annidano nelle Event RulesLinguaggio di programmazione visuale proprietario di JD Edwards usato per definire la logica di business delle applicazioni.. In EnterpriseOne 9.2, un singolo handle di database non rilasciato o una chiamata a una business functionUnità di codice riutilizzabile (scritta in C o NER) che esegue calcoli o operazioni logiche complesse sul server. chiusa in modo improprio in una APPL custom può degradare le prestazioni dell'HTML server per centinaia di utenti simultanei, trasformando un rilascio minore in un rollback di emergenza Sev-1.
L'applicazione di una Oracle ESUElectronic Software Update: pacchetto di correzioni o nuove funzionalità rilasciato da Oracle per JD Edwards. a un'applicazione core pesantemente modificata come Sales Order Entry (P4210) o Requisition Entry (P4312) è il punto in cui le tempistiche di aggiornamento spesso deragliano. Sebbene strumenti come ER CompareUtility di JD Edwards per confrontare e unire le differenze nel codice tra diverse versioni di un oggetto. esistano da decenni, gli sviluppatori continuano a corrompere regolarmente le specifiche locali o a perdere logiche di business critiche perché trattano il merge come un semplice esercizio meccanico di copia-incolla. In un tipico aggiornamento da 9.1 a 9.2, le applicazioni interattive (APPLInteractive Application: un'applicazione grafica di JD Edwards con cui l'utente interagisce tramite browser.) rappresentano una porzione relativamente piccola dell'impronta degli oggetti modificati, in genere circa il 10-20%, eppure sono responsabili di oltre un terzo dei report sui difetti post-go-live a causa di merge manuali eseguiti male.

In oltre vent'anni di recupero di codebaseL'insieme completo di file di codice sorgente che compongono un software o un'applicazione. JDEJD Edwards, un software gestionale (ERP) di Oracle utilizzato per gestire processi aziendali complessi. custom, il fallimento architettonico più persistente che riscontro è trattare le versioni delle Applicazioni Interattive (APPL)Programmi di JD Edwards dotati di interfaccia utente per l'inserimento e la visualizzazione dei dati. come le versioni delle Applicazioni Batch (UBE)Processi eseguiti in background per l'elaborazione massiva di dati o la generazione di report.. Mentre una versione UBE contiene specifiche indipendenti di selezione dati e sequenziamento, una versione APPL è semplicemente un puntatore ai valori delle Processing OptionParametri di configurazione che permettono di modificare il comportamento di un programma senza scriverne il codice. memorizzati nella tabella F983051Tabella di sistema di JD Edwards che contiene l'elenco e le definizioni di tutte le versioni dei programmi.. Fraintendere questa distinzione porta gli sviluppatori a inserire nomi di versione hardcodedValori inseriti direttamente nel codice sorgente, rendendo il software rigido e difficile da aggiornare. all'interno delle Event RulesIl linguaggio di programmazione visuale utilizzato in JD Edwards per definire la logica di business., il che frammenta la codebase e aumenta l'impatto degli upgradeIl processo di aggiornamento del software a una versione più recente e funzionale..
Pagina 5 di 6