[ABAP] OpenSQL: NULL-Indicator zum Anzeigen von leeren Rückgabemengen

* in OpenSQL ist es ab Rel. 7.55 möglich einen NULL-Indikators anzugeben
* somit ist es möglich, bei SELECTS Spalten zu kennzeichnen, deren Ergebnismenge NULL enthält
* alternativ siehe auch SQL-Expression COALESCE

SELECT FROM scarr
  LEFT OUTER JOIN spfli ON scarr~carrid = spfli~carrid
FIELDS scarr~carrid,
       spfli~distid
INTO TABLE @DATA(it_res) INDICATORS NULL STRUCTURE null_ind.

* Hier Objekte für die Ausgabe hinzufügen
cl_demo_output=>write_data( it_res ).

* HTML-Code vom Demo-Output holen
DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
cl_abap_browser=>show_html( EXPORTING title       = 'Daten'
                                      html_string = lv_html
                                      container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
WRITE: space.

Links

[ABAP] OpenSQL: Coalesce – Fehlende SQL-Werte (NULL) ersetzen

* DEMO_SQL_EXPR_COALESCE

* Null-Werte (Nicht vorhandene Email-Adressen), die sich aus dem LEFT OUTER JOIN ergeben, werden durch den String '<leer>' ersetzt
CONSTANTS: co_no_email TYPE ad_smtpadr VALUE '<leer>'.

SELECT u~bname,
       u~persnumber,
       u~addrnumber,
       COALESCE( a~smtp_addr, @co_no_email ) AS email
  INTO TABLE @DATA(it_usr)
  FROM usr21 AS u
  LEFT OUTER JOIN adr6 AS a ON a~persnumber = u~persnumber AND a~addrnumber = u~addrnumber.

IF sy-subrc = 0.
  cl_demo_output=>display( it_usr ).
ENDIF.

Links