In oltre vent'anni di sviluppo JDEJD Edwards, un sistema ERP (Enterprise Resource Planning) di Oracle utilizzato per gestire processi aziendali complessi., ho visto centinaia di applicazioni interattive personalizzate (APPL)Le schermate e i programmi con cui l'utente interagisce direttamente all'interno di JD Edwards. mandare in crash il server HTML con errori silenziosi di corruzione della memoria. Molti di questi problemi risalgono a un esempio di JDE form interconnectUn metodo utilizzato in JD Edwards per passare dati e parametri da una schermata all'altra. configurato male, dove gli sviluppatori non sono riusciti a passare i parametri correttamente. Quando gli sviluppatori si affidano a mappature implicite o lasciano membri della struttura dati in sospeso, il motore JASJava Application Server, il componente che trasforma la logica di JD Edwards in un'interfaccia web accessibile tramite browser. fatica a riconciliare lo stack di memoria. Una singola variabile MATH_NUMERICUn tipo di dato numerico specifico di JD Edwards utilizzato per gestire numeri decimali con alta precisione. o char non corrispondente passata in modo errato può destabilizzare l'intera sessione utente, trasformando un semplice passaggio di navigazione in un guasto critico della JVMJava Virtual Machine, l'ambiente software che esegue le applicazioni Java sul server..
Ogni volta che uno sviluppatore esegue il checkout di un'applicazione standard come P4210 o P4312 in Object Management Workbench (OMW)Lo strumento centrale di JD Edwards per gestire lo sviluppo, la distribuzione e il ciclo di vita degli oggetti software. per aggiungere un singolo campo, aggiunge circa quattro-otto ore di debito di retrofitL'attività manuale di riapplicare le personalizzazioni fatte dall'utente dopo che il software originale è stato aggiornato dal produttore. al prossimo Application Update. Le Form ExtensionsUno strumento low-code che permette di modificare l'interfaccia utente di JD Edwards senza scrivere codice o modificare gli oggetti standard. bypassano le tradizionali modifiche in Form Design Aid (FDA)L'ambiente di sviluppo grafico tradizionale utilizzato per creare o modificare le applicazioni e le maschere di JD Edwards. memorizzando le modifiche UI come metadati XMLDati strutturati in formato testo che descrivono le proprietà e il layout degli elementi dell'interfaccia senza alterare il codice. in tabelle User Defined Object (UDO)Oggetti creati dagli utenti o analisti (come estensioni o report) che rimangono separati dal codice sorgente originale del sistema. come la F9860W, mantenendo intatto il software di base.
La maggior parte dei ritardi nelle performance nelle applicazioni interattive (APPL)Programmi di JD Edwards che permettono agli utenti di visualizzare e inserire dati tramite maschere grafiche. personalizzate non deriva dalla latenza del database, ma da Event Rules (ER)Logica di programmazione visuale utilizzata per definire il comportamento delle applicazioni JDE. temporizzate male che recuperano dati durante l'inizializzazione della form. Quando gli sviluppatori devono recuperare i dati standard dell'Address Book insieme a configurazioni personalizzate, spesso innescano roundtrip ridondanti al database che possono più che raddoppiare o triplicare i tempi di caricamento dello schermo. L'implementazione di un esempio pulito di JDE APPL per i valori di default da F0101La tabella principale del database che contiene l'anagrafica generale (Address Book). e tabelle custom richiede una rigorosa adesione al flusso degli eventi di Form Design Aid (FDA)Lo strumento di sviluppo utilizzato per progettare le interfacce utente in JD Edwards. per prevenire il doppio recupero dei dati.
In Form Design Aid (FDA), inserire una business function come F4211FSEditLine (B4200310) in una event rule e dare per scontato che l'engine HTML gestisca correttamente un fallimento dell'elaborazione è un errore ad alto rischio. Una parte significativa delle applicazioni interattive personalizzate (P55/P56) che analizziamo, secondo la nostra esperienza circa un terzo o la metà, soffre di fallimenti silenziosi perché gli sviluppatori si affidano al runtime di JDE per la propagazione automatica degli errori. Questo articolo fornisce un esempio concreto di chiamata a una business function da event rules in JDE APPL per dimostrare come prevenire queste corruzioni silenziose del database.
Una parte significativa dei difetti nelle applicazioni interattive (APPL) personalizzate analizzati durante gli upgrade alla 9.2—nella nostra esperienza, da un terzo a metà—deriva dai classici errori nella sequenza degli eventi JDE APPL che gli sviluppatori commettono ipotizzando un'esecuzione sincrona. La causa principale raramente è una business function (BSFN) errata; è piuttosto la mancata comprensione di come il motore JAS (Java Application Server) serializzi gli eventi. Quando gli sviluppatori posizionano erroneamente le Event Rules (ER) all'interno del Form Design Aid (FDA), espongono le applicazioni a race condition che si manifestano solo quando la latenza di rete e la garbage collection della JVM distorcono i tempi di esecuzione.
Pagina 1 di 5