In über zwei Jahrzehnten JDE-EntwicklungDie Erstellung und Anpassung von Anwendungen innerhalb der JD Edwards EnterpriseOne ERP-Software von Oracle. habe ich hunderte von benutzerdefinierten interaktiven Anwendungen (APPLsInteraktive Anwendungen in JD Edwards, die über eine grafische Benutzeroberfläche bedient werden.) gesehen, die den HTML-Server mit stillen Speicherfehlern zum Absturz brachten. Viele dieser Probleme lassen sich auf ein schlecht konfiguriertes JDE APPL Form InterconnectEin Mechanismus in JD Edwards, um Daten zwischen verschiedenen Formularen einer Anwendung zu übergeben. Beispiel zurückführen, bei dem Entwickler Parameter nicht korrekt übergeben haben. Wenn sich Entwickler auf implizite Mappings verlassen oder Datenstruktur-Member offen lassen, hat die JAS engineDer Java Application Server, der die Logik der JD Edwards Weboberfläche verarbeitet. Schwierigkeiten, den Speicherstack abzugleichen. Eine einzige falsch übergebene MATH_NUMERIC- oder char-Variable kann eine gesamte Benutzersitzung destabilisieren und einen einfachen Navigationsschritt in einen harten JVM-FehlerEin schwerwiegender Absturz der Java Virtual Machine, die den JDE-Webserver antreibt. verwandeln.
Jedes Mal, wenn ein Entwickler eine Standardanwendung wie P4210 oder P4312 in der Object Management Workbench (OMW) auscheckt, um ein einzelnes Feld hinzuzufügen, erhöht er die Retrofit-Schuld für das nächste Application Update um etwa vier bis acht Stunden. Form Extensions umgehen traditionelle Modifikationen im Form Design Aid (FDA), indem sie UI-Änderungen als XML-Metadaten in User Defined Object (UDO) Tabellen wie F9860W speichern und so die Basissoftware unberührt lassen.
Die meisten Performance-Verzögerungen in benutzerdefinierten interaktiven Anwendungen (APPLEine interaktive Anwendung innerhalb von JD Edwards EnterpriseOne.) resultieren nicht aus Datenbanklatenzen, sondern aus schlecht getimten Event Rules (ER)Die proprietäre Skriptsprache von JD Edwards zur Definition der Geschäftslogik., die Daten während der Form-Initialisierung abrufen. Wenn Entwickler Standard-Adressbuchdaten zusammen mit benutzerdefinierten Konfigurationen abrufen müssen, lösen sie oft redundante Datenbank-Roundtrips aus, die die Ladezeiten des Bildschirms mehr als verdoppeln oder verdreifachen können. Die Implementierung eines sauberen JDE APPL-Beispiels für Standardwerte aus F0101Die zentrale Stammdatentabelle für das Adressbuch in JD Edwards. und benutzerdefinierten Tabellen erfordert die strikte Einhaltung des Form Design Aid (FDA)Das grafische Entwicklungswerkzeug zur Erstellung von interaktiven JDE-Anwendungen. Event-Flows, um doppelte Abrufe zu vermeiden.
In Form Design Aid (FDA)Das Entwicklungswerkzeug von JD Edwards zur Erstellung grafischer Benutzeroberflächen und interaktiver Anwendungen. ist es ein riskanter Fehler, eine Business FunctionEin wiederverwendbares Programmodul in JD Edwards, das spezifische Geschäftslogik oder Datenbankoperationen ausführt. wie F4211FSEditLine (B4200310) einfach in eine Event RuleDie proprietäre Skriptsprache von JD Edwards, mit der Logik hinter Schaltflächen, Feldern oder Ereignissen programmiert wird. einzufügen und darauf zu vertrauen, dass die HTML-Engine Verarbeitungsfehler elegant abfängt. Ein erheblicher Teil der von uns geprüften kundenspezifischen interaktiven Anwendungen (P55/P56) – unserer Erfahrung nach etwa ein Drittel bis die Hälfte – leidet unter stillen Fehlern, da sich Entwickler darauf verlassen, dass die JDE-RuntimeDie Ausführungsumgebung, die den Programmcode während der Benutzung der Anwendung verarbeitet. Fehler automatisch nach oben weiterreicht. Dieser Artikel liefert ein konkretes JDE APPL Beispiel für den Aufruf von Business Functions aus Event Rules, um zu demonstrieren, wie diese verborgenen Datenbankkorruptionen verhindert werden können.
Ein erheblicher Teil der Mängel an benutzerdefinierten interaktiven Anwendungen (APPL), die bei 9.2-Upgrades auditiert wurden – nach unserer Erfahrung etwa ein Drittel bis die Hälfte –, resultiert aus klassischen Fehlern in der JDE APPL Event-Sequenz. Diese entstehen oft, wenn Entwickler fälschlicherweise eine synchrone Ausführung annehmen. Die Ursache ist selten eine fehlerhafte Business Function (BSFN); es ist vielmehr das Versäumnis zu berücksichtigen, wie die JAS (Java Application Server) Engine Events serialisiert. Wenn Entwickler Event Rules (ER) innerhalb des Form Design Aid (FDA) an der falschen Stelle platzieren, setzen sie Anwendungen Race Conditions aus, die sich erst manifestieren, wenn Netzwerklatenz und JVM Garbage Collection das Timing der Ausführung verzerren.
Seite 1 von 5