[ABAP] Externes Datum in internes Datum wandeln

Variante 1 (cl_abap_datfm)

DATA: lv_int TYPE sy-datum.
DATA: lv_ext_datum TYPE string VALUE '01.01.2017'.

TRY.
    cl_abap_datfm=>conv_date_ext_to_int(
      EXPORTING
        im_datext   = lv_ext_datum
        im_datfmdes = cl_abap_datfm=>get_datfm( ) " Default Datumsformat holen
      IMPORTING
        ex_datint   = lv_int ).
  CATCH cx_abap_datfm_no_date .
  CATCH cx_abap_datfm_invalid_date .
  CATCH cx_abap_datfm_format_unknown .
  CATCH cx_abap_datfm_ambiguous .
ENDTRY.

WRITE: / lv_int.

Variante 2 (CONVERT_DATE_TO_INTERNAL)

DATA: lv_date TYPE d.

CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
  EXPORTING
    date_external            = '20.02.2020'
  IMPORTING
    date_internal            = lv_date
  EXCEPTIONS
    date_external_is_invalid = 1.

WRITE: / lv_date.

Links

[ABAP] Prüfen, ob string eine Zahl (numerisch) ist

* erlaubte Zeichen für numerischen String
CONSTANTS: c_numeric TYPE string VALUE '-., 0123456789'.

DATA: val_in TYPE string VALUE '    -123.2'.

* funktioniert nicht mit strings wie '0.0.1' usw.
* CO -> contains only
IF val_in CO c_numeric.
  WRITE: / |String "{ val_in }" ist numerisch.|.
ELSE.
  WRITE: / |String "{ val_in }" ist nicht numerisch.|.
ENDIF.

[ABAP] Interne Tabelle nach XML exportieren

DATA: ti_t100 TYPE STANDARD TABLE OF t100.
DATA: lv_xml TYPE string.

* Daten abfragen
SELECT * FROM t100 INTO TABLE ti_t100 UP TO 10 ROWS.

* interne Tabelle in XML-String wandeln
CALL TRANSFORMATION id SOURCE data_node = ti_t100 RESULT XML lv_xml.

* Versionsinfo wegschneiden, damit in Excel die Spalte "Version" nicht erscheint
REPLACE FIRST OCCURRENCE OF | version="1.0">| IN ls_xml WITH '>'.

* XML-String in XML-Document wandeln
DATA(lo_xml_doc) = NEW cl_xml_document( ).
lo_xml_doc->parse_string( lv_xml ).

* XML-Document als Datei speichern
lo_xml_doc->export_to_file( 'c:\temp\test.xml' ).

WRITE: / |XML-Datei exportiert.|.

[ABAP] JSON (trex) -> itab

DATA: json type string VALUE '[{name: "Horst", title: "Herr", age: "30 "}, {name: "Jutta", title: "Frau", age: "35 "}, {name: "Ingo", title: "Herr", age: "31 "}]'.

TYPES: BEGIN OF s_person,
         name  TYPE string,
         title TYPE string,
         age   TYPE i,
       END OF s_person.

TYPES: t_person TYPE STANDARD TABLE OF s_person WITH DEFAULT KEY.

DATA(it_persons) = VALUE t_person( ).

* JSON (trex) -> ABAP (iTab)
DATA(o_trex) = NEW cl_trex_json_deserializer( ).
o_trex->deserialize( EXPORTING json = json
                     IMPORTING abap = it_persons ).

IF lines( it_persons ) > 0.
  WRITE: / it_persons[ 1 ]-name.
ENDIF.