In diesem Blogbeitrag möchten wir Ihnen eine interessante Herausforderung bei der Umstellung von oDSOs zu aDSOs vorstellen. Im Zuge unserer Umstellungen haben wir festgestellt, dass die RequestID-InfoObjekte durch die bisherige Logik in den aDSOs nicht wie bisher befüllt wurden. Unser Ziel mit diesem Artikel ist es, unsere Erkenntnisse und die Lösung, die wir für dieses Problem gefunden haben, mit Ihnen zu teilen.
Im nachfolgenden Coding sehen Sie, wie die Requestnummern bislang über eine spezielle Methode abgerufen und an die InfoObjekte übergeben wurden. Dies ist ein Ausschnitt des entsprechenden Codes:
CALL METHOD p_r_request->get_requid
RECEIVING
r_requid = gv_requid.
Zunächst haben wir versucht, dasselbe Coding auch bei der Befüllung von aDSOs zu nutzen. Während des Debuggens im Dialogmodus konnten wir feststellen, dass die Requestnummern erfolgreich abgerufen und die InfoObjekte korrekt befüllt wurden. Allerdings traten Schwierigkeiten auf, als das Programm im Batch-Modus verwendet wurde. Es erfolgte keine Übergabe von Daten durch die genannte Methode an die InfoObjekte.
Vermutlich lag die Ursache des Problems in den unterschiedlichen Ausführungsumgebungen. Daher entschieden wir uns für eine alternative Debugging-Methode. Mithilfe einer Endlosschleife und dem Debuggen des laufenden Programms über die Transaktion "SM50" (Prozessverzeichnis) im Batch-Modus konnten wir feststellen, dass im Batch-Modus tatsächlich keine Daten an die InfoObjekte übergeben wurden. Allerdings bemerkten wir, dass dieselbe Methode auch andere Parameter liefert, mithilfe welcher die Requestnummern in einer anderen Form übergeben werden können.
Der Grund dieses Problems liegt in der Art und Länge der in den aDSOs verwendeten Requestnummer. Diese besteht nicht nur aus einer numerischen Zahlenfolge, sondern auch aus einem Timestamp, welcher Datum und Uhrzeit enthält.
Basierend auf diesen Erkenntnissen haben wir die Methode angepasst und alternative Parameter verwendet, um das Problem zu lösen. Hier ist ein Ausschnitt des entsprechenden Codes:
CALL METHOD p_r_request->get_requid
IMPORTING
e_request_id = gv_request_ID
Mit der erfolgreichen Behebung dieses Problems können die Datentöpfe nun ordnungsgemäß befüllt werden. Unsere Erfahrungen zeigen, dass das Debuggen im Batch-Modus wertvolle Erkenntnisse liefert, um spezifische Probleme zu lösen, die in anderen Ausführungsumgebungen möglicherweise nicht auftreten.
Haben Sie Fragen zu diesem oder anderen Themen? Versuchen Sie das nötige Know-How in Ihrer Abteilung aufzubauen oder benötigen Sie Unterstützung bei einer konkreten Fragestellung? Wir helfen Ihnen gerne dabei. NextLytics steht Ihnen stets als erfahrener Projektpartner zur Seite.