XML-Daten in ABAP-Datum umwandeln und Dauerzeit im XML-Format berechnen

FA

Jun 11, 2024Von FIRAT ASAN

Converting XML Date to Abap Date and Calculating Duration Time as XML Format

Haben Sie jemals XML-Daten in ein ABAP-Datum umwandeln müssen? Keine Sorge, es ist einfacher als Sie denken. SAP bietet uns Werkzeuge, um diese Aufgabe zu meistern.

Orginal Blog Link: https://community.sap.com/t5/technology-blogs-by-members/converting-xml-date-to-abap-date-and-calculating-duration-time-as-xml/ba-p/13722152

Beginnen wir mit dem XML-Datum. Normalerweise sieht ein XML-Datum so aus: YYYY-MM-DD. In ABAP verwenden wir das Format YYYYMMDD. Daher müssen wir das XML-Datum umformatieren.

Hier ist ein einfaches Beispiel, wie Sie das machen können:


DATA: xml_date TYPE string VALUE '2023-10-01',
      abap_date TYPE sy-datum.

REPLACE ALL OCCURRENCES OF '-' IN xml_date WITH ''.
abap_date = xml_date.
code example

Dauerzeit im XML-Format berechnen

Jetzt kommen wir zur Berechnung der Dauerzeit im XML-Format. Stellen Sie sich vor, Sie haben zwei Zeitstempel und möchten die Differenz berechnen. Auch hier hilft uns ABAP weiter.

Angenommen, Sie haben zwei Zeitstempel im Format HH:MM:SS. Sie können diese Zeitstempel in Sekunden umrechnen und dann die Differenz berechnen.

Hier ist ein Beispiel:


DATA: start_time TYPE string VALUE '12:30:45',
      end_time TYPE string VALUE '14:45:30',
      start_seconds TYPE i,
      end_seconds TYPE i,
      duration_seconds TYPE i.

CONVERT TIME start_time INTO SECONDS start_seconds.
CONVERT TIME end_time INTO SECONDS end_seconds.

duration_seconds = end_seconds - start_seconds.
time calculation

Ergebnisse im XML-Format zurückgeben

Nachdem Sie die Dauerzeit berechnet haben, möchten Sie das Ergebnis möglicherweise im XML-Format zurückgeben. Das ist ebenfalls einfach umsetzbar.

Sie können die berechneten Sekunden wieder in das Format HH:MM:SS umwandeln und dann in eine XML-Struktur einfügen.

Hier ist ein Beispiel, wie das geht:


DATA: duration TYPE string.

CONVERT SECONDS duration_seconds INTO TIME duration.
WRITE: / 'Dauerzeit:', duration.
xml format

Probieren Sie es aus und sehen Sie selbst, wie einfach es sein kann. Und wenn Sie Fragen haben, stehen wir Ihnen gerne zur Verfügung. Viel Erfolg!