Einschränkungen beim Abfragen und Abrufen von Listen
Die JD Edwards OneWorld-Kommunikationsarchitektur ist eine Architektur mit Einzelnachrichten und Einzelantworten. Sie können keine Liste von Nachrichten oder ein Array zurückgeben. Der zugrunde liegende Code ist C++, der eine einzelne Struktur über einen Zeiger aufruft, Änderungen in der Struktur vornimmt und dann beendet wird.
Abfragen und Abrufen von Listen
Sie können Listen von auf Suchkriterien basierenden Datensätzen aufgrund einer Einschränkung hinsichtlich der JD Edwards OneWorld-Geschäftsfunktionsarchitektur nicht mithilfe von Microsoft BizTalk-Adapter für JD Edwards OneWorld abfragen und abrufen.
In JD Edwards OneWorld wird die Datenbankverbindung mithilfe einer Reihe proprietärer (und komplexer) interner Funktionsaufrufe bereitgestellt. Diese Aufrufe maskieren die zugrunde liegende Datenbankversion, indem sehr explizite Aufrufe auf niedriger Ebene angefordert werden, um abzurufende oder zu aktualisierende Listen von Spalten und spezialisierte Strukturen zum Sortieren oder Auswählen zu erstellen. Die API-Sätze werden nicht über die Java-Verbindungsmethode (oder über eine andere) verfügbar gemacht. Daher können Datensatzgruppen nicht über Geschäftsfunktionen behandelt werden.
Innerhalb des JD Edwards OneWorld-Toolsets können Sie Geschäftsfunktionen erstellen, die einen einzelnen Datensatz behandeln oder eine Gruppe von Datensätzen bearbeiten. Der Zugriff auf Listen von Elementen außerhalb der JD Edwards OneWorld-Tools gestaltet sich jedoch schwieriger.
Sie können eine benutzerdefinierte Geschäftsfunktion erstellen, die eine Liste von Datensatzschlüsseln zurückgibt, die auf einer Abfrage basieren, um dieses Problem zu umgehen. Sie müssen die Listen segmentieren, da JDENET (die interne, proprietäre Nachrichten-API von JD Edwards OneWorld) über eine Einschränkung hinsichtlich der Nachrichtenpuffergröße zum Verwalten großer oder ungebundener Resultsets verfügt. Der Clientcode muss aufeinander folgende Aufrufe von Geschäftsfunktionen durchlaufen (Schleife), bis ein Indikator zurückgegeben wird, der die Vollständigkeit der Liste vermeldet.
Steuern der Iteration
Alle Aufrufe von JD Edwards OneWorld-Geschäftsfunktionen sind statusfrei. Daher kann die Geschäftsfunktion keinen geöffneten Cursor verwalten und bei Bedarf weitere Zeilen zurückgeben. Positionierungsinformationen müssen bei jedem Aufruf an die JD Edwards OneWorld XE-Geschäftsfunktion übergeben werden.
Nachfolgend finden Sie eine Liste der Verfahren zum Steuern der Iteration:
Schreiben Sie auf der JD Edwards OneWorld-Seite das Resultset in eine temporäre Speicherdatei, die eine ID zurückgibt (z. B. einen Dateinamen oder eine Auftragsnummer), die bei aufeinander folgenden Aufrufen zusammen mit der Datensatznummer weitergegeben werden kann, um den Cursor zu positionieren. Alle aufeinander folgenden Aufrufe werden innerhalb der Liste auf Grundlage der übergebenen Datensatznummer positioniert.
Hinweis
Für Aufrufe über den BizTalk-Adapter für JD Edwards OneWorld kann ein Lastenausgleich erfolgen. Sie werden jedoch schließlich von einem einzelnen Anwendungsserver auf Grundlage der Anmeldeinformationen und der aufgerufenen Geschäftsfunktion bedient. Deshalb werden weitere Aufrufe von demselben Server bedient, wenn ein Aufruf eine temporäre Datei auf einem Server erstellt. Weitere Informationen finden Sie unter „Object Configuration Mapping“ in den JD Edwards OneWorld CNC-Anleitungen.
Positionsinformationen (z. B. ein Primärschlüsselwert) können beim zweiten und bei nachfolgenden Aufrufen zurückgegeben werden, und die Abfrage kann auf Grundlage des Schlüssels als zusätzlichen Parameter erneut ausgeführt werden. Diese Methode wird im Code zum Durchsuchen des Repositorys für BizTalk Adapter für JD Edwards OneWorld verwendet.
Hinweis
Von den ersten beiden Verfahren ist die Verwendung der Primärschlüsselwerte und die erneute Ausführung der Abfrage die empfohlene Methode. Diese Methode erfordert die geringste Codemenge und überlässt die Optimierung und Zwischenspeicherung der Datenbank.
Die aufrufende Anwendung kann eine Liste mit Primärschlüsseln (z. B. ein Querverweis) speichern. Wenn z. B. ein CRM-System (Customer Relationship Management) einen Kundendatensatz erstellt und diesen dann mithilfe eines Geschäftsfunktionsaufrufs zu JD Edwards OneWorld hinzufügt, legt die Geschäftsfunktion, die den Recordset hinzufügt, den Wert für das Feld AN8 (kurze Adresse) fest und wird im Rückgabepuffer angezeigt. Diese Adresse kann dann in ein auf den ursprünglichen Kundendatensatz verweisendes Verweisfeld geschrieben oder in einer benutzerdefinierten Querverweistabelle gespeichert werden.
Der größte Teil aller Masterdatensätze in JD Edwards OneWorld verfügt über ein Konzept für einen Suchvorgang oder einen Alternativschlüssel. Mithilfe dieses Schlüssels können die Schlüsselinformationen des aufrufenden Systems gespeichert werden. Geschäftsfunktionen können die Suche auf der JD Edwards OneWorld-Seite ausführen. Wenn Parameter an die Geschäftsfunktion übergeben werden, um einen Benutzerdatensatz zu erstellen, dann wird der lange Schlüsselwert festgelegt.
Weitere Informationen zu diesen Konzepten finden Sie unter dem Thema „Interoperability“ im JD Edwards OneWorld-Hilfesystem.