JD Edwards ist ein Name, der für verschiedene Zielgruppen etwas unterschiedliche Bedeutungen hat. Für einen CFO eines Fertigungsunternehmens ist es das ERP-System, das das Finanzteam seit fünfzehn Jahren nutzt. Für einen CIO, der Modernisierungsoptionen abwägt, ist es eine der Plattformen, die um ein Transformationsbudget konkurrieren. Für einen Entwickler mit einem Lebenslauf in diesem Ökosystem ist es ein spezifischer Stack aus Tools, Sprachen und Metadatenschichten, der um eine relationale Datenbank herum aufgebaut ist. Alle drei Ansichten beschreiben dasselbe Produkt, und jedes Gespräch, das sie auf eine einzige reduziert, birgt das Risiko desselben Missverständnisses, das der Begriff seit Jahrzehnten hervorruft. Dieser Artikel beleuchtet das Produkt in seiner Gesamtheit, wie es heute aussieht, wer es betreibt, was es technisch eigentlich ist und wie die realistischen Optionen in diesem Jahrzehnt aussehen.
Das Produkt hat drei Unternehmenseigentümer, mehrere Architektur-Neuschreibungen und einen Generationswechsel im Erscheinungsbild von Unternehmenssoftware überlebt. Es wird von Oracle weiterhin aktiv unter dem Namen JD Edwards EnterpriseOne entwickelt, wobei ein paralleles Legacy-Produkt namens JD Edwards World weiterhin Support erhält. Die entscheidenden Fragen — Sollen wir dabei bleiben, sollen wir darauf modernisieren, sollen wir es ersetzen — hängen davon ab, welches JD Edwards man vor sich hat und wie seine aktuelle Entwicklung tatsächlich aussieht.
Custom Development in JD Edwards — BSFN, NER, APPL und ERP-Automatisierung — ist der Punkt, an dem sich bei den meisten Implementierungen entscheidet, ob sie in den nächsten zehn Jahren erfolgreich bleiben oder technischen Schulden aufbauen. Die Plattform bietet vier zentrale Werkzeuge, um das Standardverhalten zu erweitern. Jede falsche Entscheidung darüber, welches Werkzeug für welchen Anwendungsfall eingesetzt wird, hat Folgen, die erst dann sichtbar werden, wenn ein Kurswechsel wirtschaftlich kaum noch möglich ist: während eines Upgrades, während eines Retrofits oder während eines Tools Release, das das zugrunde liegende Verhalten auf nicht dokumentierte Weise verändert.
Dieser Artikel ordnet die vier Werkzeuge — Business Functions in C, Named Event Rules, FDA-Anwendungen und Orchestrator — ein, beschreibt, wofür jedes davon tatsächlich geeignet ist, und zeigt Entscheidungsmuster, die sich in produktiven Umgebungen bei realen Kunden bewährt haben. Keines dieser vier Werkzeuge ist den anderen universell überlegen. Jedes deckt einen bestimmten Problemraum ab; die Disziplin besteht darin, diesen Raum zu erkennen, bevor die erste Codezeile geschrieben wird.
Die Erstellung einer JD Edwards (JDE)-Anwendung erfordert ein tiefes Verständnis dieses Enterprise Resource Planning (ERP)-Systems und seiner Funktionalitäten. JDE ist dafür bekannt, über die JDE-Programmiersprache, bekannt als JDE C BSFN (Business Function), oder durch die Verwendung von Tools wie Orchestrator, hochgradig anpassbar und erweiterbar zu sein. Nachfolgend finden Sie ein Beispiel dafür, wie Sie mit JDE C BSFN eine benutzerdefinierte Anwendung in JD Edwards erstellen können:
Die Benennung von Business FunctionsWiederverwendbare Programmlogik-Bausteine in JD Edwards, die spezifische Geschäftsaufgaben ausführen. als rein ästhetische Entscheidung zu betrachten, führt nach unserer Erfahrung zu einem direkten operativen Mehraufwand, der die Zeiten für das Upgrade-RetrofittingDer Prozess, bei dem individuelle Anpassungen nach einem System-Update manuell in die neue Version übertragen werden. um ein Drittel oder mehr aufbläht. Wenn Entwickler benutzerdefinierte C BSFNs oder NERsNamed Event Rules sind eine JD-Edwards-spezifische Programmiersprache, die ohne tiefere C-Kenntnisse erstellt werden kann. willkürlich benennen, schaffen sie technische Schulden, die die typische 6- bis 9-wöchige Upgrade-Entwicklungsphase im Stillen vergrößern. Die Implementierung strenger JDE BSFN Benennungskonventionen für wartbare benutzerdefinierte Objekte stellt sicher, dass benutzerdefinierte B55-, B56- und B57-Objekte innerhalb der Object Management Workbench (OMW)Das zentrale Werkzeug in JD Edwards zur Verwaltung, Entwicklung und Verteilung von Software-Objekten. sofort ihr übergeordnetes System, ihren Funktionsbereich und ihren Ausführungsort (Client versus Server) signalisieren.
Ein einziges falsch verwaltetes jdeAllocEine JD Edwards-spezifische Funktion zur Reservierung von Arbeitsspeicher für Programme. oder ein nicht freigegebener Cache-HandleEin Verweis oder Identifikator für einen temporären Datenspeicher im Arbeitsspeicher. innerhalb einer benutzerdefinierten BSFNBusiness Function: Ein in C geschriebenes Programmodul, das Geschäftslogik innerhalb von JD Edwards ausführt., die in einem hochvolumigen UBEUniversal Batch Engine: Ein Werkzeug zur Ausführung von Berichten und Massendatenverarbeitungen im Hintergrund. wie R42565 aufgerufen wird, kann einen CallObject-KernelEin zentraler Serverprozess, der für die Ausführung der Programmlogik (Business Functions) zuständig ist. in Minuten zum Absturz bringen und sofort Dutzende aktiver Benutzersitzungen auf dieser spezifischen JVMJava Virtual Machine: Die Laufzeitumgebung, in der Java-basierte Anwendungen innerhalb von JD Edwards ausgeführt werden. beenden. Bei der Fehlersuche in instabilen EnterpriseOneDie aktuelle ERP-Software-Suite von JD Edwards (Oracle). 9.2-Umgebungen führen wir persistente Zombie-ProzesseProzesse, die beendet wurden, aber noch in der Prozesstabelle des Betriebssystems aufgeführt sind und Ressourcen blockieren können. und SpeicherlecksFehler, bei denen belegter Arbeitsspeicher nicht mehr freigegeben wird, was den verfügbaren Speicher nach und nach erschöpft. häufig auf gängige Fehler in der JDE BSFN Speicherverwaltung im benutzerdefinierten Code zurückvführen, anstatt auf zugrunde liegende Datenbank- oder OCIOracle Cloud Infrastructure: Die Cloud-Plattform von Oracle für Hosting und IT-Dienste.-MiddlewareSoftware, die als Vermittler zwischen verschiedenen Anwendungen oder Systemkomponenten fungiert.-Probleme.
In unseren Code-Reviews in Dutzenden von JDE 9.2Die aktuelle Version der JD Edwards EnterpriseOne Unternehmenssoftware.-Umgebungen stellen wir regelmäßig fest, dass ein erheblicher Teil der benutzerdefinierten C-Business-Functions (BSFNs)In der Programmiersprache C geschriebene Logikbausteine für Geschäftsprozesse in JD Edwards. – oft ein Drittel bis die Hälfte – unnötigerweise Standard-Oracle-Logik dupliziert. Entwickler klonen oft ganze Module wie B4200310 oder B1200010, nur um eine einzelne Validierung auszuführen, anstatt einen sauberen JDE BSFN jdeCallObjectEine zentrale Programmierschnittstelle (API), um Geschäftsfunktionen innerhalb des JDE-Systems aufzurufen.-Beispielaufruf zu implementieren, um eine wiederverwendbare Business Function auszuführen. Dieser redundante Code führt bei Upgrades zu Problemen, da er die Continuous-DeliveryEin Verfahren, bei dem Softwareänderungen automatisch und regelmäßig bereitgestellt werden.-Updates von Oracle umgeht. Der sauberere Ansatz besteht darin, die Standard-Business-Function dynamisch aus Ihrem benutzerdefinierten C-Code aufzurufen.
Ich sehe immer noch erfahrene Entwickler, die den Fehler machen, sich ausschließlich auf ER_ERROR oder ER_SUCCESS Rückgabewerte in C-Business-FunctionsIn der Programmiersprache C geschriebene Programme, die die Geschäftslogik innerhalb von JD Edwards ausführen. zu verlassen. In einer hochvolumigen Verkaufsauftragsintegration, die über AISApplication Interface Services ist eine REST-Schnittstelle, die es externen Anwendungen ermöglicht, mit JD Edwards zu interagieren. läuft, führt die Rückgabe eines einfachen Fehlercodes ohne ordnungsgemäße Verwaltung des internen DD-Fehler-StacksEin Speicherbereich, der Fehlermeldungen aus dem Data Dictionary sammelt, die während der Programmausführung auftreten. der JDE-EngineDie Kern-Softwarekomponente, die für die Ausführung von Logik und die Verwaltung von Datenbankoperationen in JD Edwards zuständig ist. zu lautlosen Fehlern oder hängenden KernelnServerprozesse, die die Logikverarbeitung und Kommunikation zwischen Client und Datenbank steuern.. Die Implementierung eines sauberen JDE BSFN Fehlerbehandlungsmusters zur Rückgabe von Warnungen und harten Fehlern stellt sicher, dass Ihr Code den Ausführungsstatus explizit an die RuntimeDie Laufzeitumgebung, in der Anwendungen während der Benutzung ausgeführt werden. kommuniziert.
Seite 1 von 6