Über die Nutzung von Includes ist es möglich beliebigen Code im SAP abzulegen und darauf zuzugreifen. Folgende Schritte sind notwendig:
- SE80 -> neues INCLUDE anlegen (Bsp.: ZCSSINCLUDE)
- CSS-Code im INCLUDE eintragen
- Aktvieren! (Ja, das funktioniert.)
- CSS-Code (INCLUDE) im ABAP-Code lesen
* Name des INCLUDEs mit dem CSS-Code
CONSTANTS: co_cssinclude TYPE char12 VALUE 'ZCSSINCLUDE'.
* String für CSS-Daten
DATA: lv_css TYPE string.
* Prüfen, ob INCLUDE im System (TADIR) aktiv vorhanden
SELECT SINGLE obj_name
INTO @DATA(lv_obj_name)
FROM tadir
WHERE obj_name = @co_w3css
AND pgmid = 'R3TR'
AND object = 'PROG'.
IF sy-subrc = 0.
* Stringtab für Code
DATA: it_incl_code TYPE stringtab.
* Code des INCLUDEs lesen
READ REPORT co_w3css INTO it_incl_code.
IF sy-subrc = 0.
* String-Tabelle mit CSS-Code in String wandeln, Trennzeichen ist CRLF
lv_css = REDUCE string( INIT s = ||
FOR <s> IN it_incl_code
NEXT s = COND #( WHEN s IS INITIAL THEN |{ <s> }| ELSE |{ s }{ cl_abap_char_utilities=>cr_lf }{ <s> }| ) ).
ENDIF.
ENDIF.
* HTML mit CSS-INCLUDE
DATA(lv_html) = '<!DOCTYPE html>' &&
'<html>' &&
'<title>Lagermaterialkatalog</title>' &&
'<meta name="viewport" content="width=device-width, initial-scale=1">' &&
'<style>' && lv_css && '</style>' &&
'<body>' &&
'</body>' &&
'</html>'.