
Klasse CL_BSP_SERVER_SIDE_COOKIE 
Überblick
Die Klasse
CL_BSP_SERVER_SIDE_COOKIE stellt Methoden zum Setzen, Holen, Löschen und Verwalten von Cookies im Server zur Verfügung.Server-seitige Cookies sind persistente Daten, ähnlich wie die üblichen Client-seitigen Cookies. Während jedoch die Größe von Cookies auf dem Client beschränkt ist auf ca. 4 Kilobytes pro Cookie, 300 Cookies insgesamt und 20 per Server oder Domäne, haben die Server-seitigen Cookies im Prinzip keinerlei Mengen- oder Größenbeschränkungen. Ein Server-seitiges Cookie wird auf der Datenbank abgelegt.
Aus Gründen der technischen Realisierung kann ein einzelnes Cookie auf die folgenden Arten abgelegt werden:

Achten Sie beim Holen eines Cookies darauf, dass das Cookie wieder in dieselbe Datenstruktur zurückgeholt wird. Andernfalls gibt es einen Fehler, der mit einer Fehlermethode abgefragt werden kann.
Eine besondere Bemerkung gilt den Parametern
username und session_id. Das Setzen von username auf sy-user ist nicht eindeutig, wenn eine Anwendung entsteht, die über einen anonymen Benutzer, hinterlegt beim Service, gestartet wird. Die Verwendung von session_id würde hier Eindeutigkeit schaffen (siehe Beispiel), da runtime->session_id die Browsersession kennzeichnet.Beim Design einer Anwendung überlegen Sie als Entwickler immer genau, ob die Anwendung stateless sein soll und notwendige Kontextdaten von Seite zu Seite in Cookies gehalten werden (Client- oder Server-seitig) oder ob die Anwendung stateful sein soll. Letzteres ist dann sinnvoll, wenn große Mengen an Kontextdaten anfallen, die im stateless Fall immer wieder über ein Cookie letztlich von der Datenbank gelesen bzw. geschrieben werden müssen und damit die Performance der Anwendung verschlechtern (siehe auch
Stateful oder stateless programmieren?).Das Programm
BSP_SHOW_SERVER_COOKIES liefert eine Übersicht aller im System gesetzten Cookies. Das Programm BSP_CLEAN_UP_SERVER_COOKIES löscht taggenau alle abgelaufenen Cookies.
Das Programm
Die Klasse
CL_BSP_SERVER_SIDE_COOKIE befindet sich im Paket SBSP_RUNTIME.Vererbungshierarchie/Interfacekomposition
Implementiertes Interface
-
Superklasse
-
Attribute
|
Attributname |
Deklarationsart |
Beschreibung |
|
CC_OK |
Konstante |
Die Aktion war erfolgreich. |
|
CC_WRONG_DATA_OBJECT |
Konstante |
Das Datenobjekt des zu lesenden Cookies passt nicht zum Datenobjekt des gesetzten Cookies. |
|
CC_PARAMETER_MISSING |
Konstante |
Aufrufparameter fehlen. |
|
CC_NOT_EXISTS |
Konstante |
Das Cookie existiert nicht. |
Methoden

Alle Methoden liegen im Sichtbarkeitsbereich public section.
Methode get_server_cookie
|
Signatur |
method GET_SERVER_COOKIE |
|
|
Beschreibung |
Diese Methode holt ein Server Cookie. |
|
|
Parameter |
EXPIRY_TIME |
Gültigkeitsdatum (Zeit): bis Zeit |
|
EXPIRY_DATE |
Gültigkeitsdatum (Datum): bis Datum |
|
|
DATA_NAME |
Datenobjektname |
|
|
SESSION_ID |
Session-ID |
|
|
USERNAME |
Name des Benutzers |
|
|
APPLICATION_NAMESPACE |
Namensraum der BSP-Anwendung |
|
|
APPLICATION_NAME |
Name der BSP-Anwendung |
|
|
NAME |
Names des Cookies |
|
|
DATA_VALUE |
Datenobjektinhalt |
|

data: sorders type sales_orders,
edate type d,
etime type t,
usr type string.
clear
sorders.call
method cl_bsp_server_side_cookie=>get_server_cookieMethode delete_server_cookie
|
Signatur |
method DELETE_SERVER_COOKIE |
|
|
Beschreibung |
Diese Methode löscht ein Server-Cookie. |
|
|
Parameter |
NAME |
Names des Cookies |
|
APPLICATION_NAME |
Name der BSP-Anwendung |
|
|
APPLICATION_NAMESPACE |
Namensraum der BSP-Anwendung |
|
|
USERNAME |
Name des Benutzers |
|
|
SESSION_ID |
Session-ID |
|

data: usr type string.
call
method cl_bsp_server_side_cookie=>delete_server_cookieMethode set_server_cookie
|
Signatur |
method SET_SERVER_COOKIE |
|
|
Beschreibung |
Diese Methode setzt ein Server Cookie. |
|
|
Parameter |
DATA_VALUE |
Datenobjektinhalt |
|
EXPIRY_DATE_ABS |
Gültig bis Datum |
|
|
EXPIRY_TIME_ABS |
Absolute Gültigkeitsdauer
Wenn Sie hier keinen Wert angeben, wird ab SAP Web Application Server 6.20 die absolute Verfallszeit automatisch auf 23:59 Uhr gesetzt. |
|
|
DATA_NAME |
Datenobjektname |
|
|
SESSION_ID |
Session-ID, wenn gewünscht |
|
|
USERNAME |
Name des Benutzers; auch E-Mail-Adresse |
|
|
EXPIRY_TIME_REL |
Relative Gültigkeitsdauer in Sekunden
Wenn Sie hier keinen Wert angeben, wird ab SAP Web Application Server 6.20 die relative Verfallszeit automatisch auf eine Stunde gesetzt. |
|
|
EXPIRY_DATE_REL |
Gültigkeitsdauer in Tagen |
|
|
APPLICATION_NAMESPACE |
Namensraum der BSP-Anwendung |
|
|
APPLICATION_NAME |
Name der BSP-Anwendung |
|
|
NAME |
Names des Cookies |
|

data: sorders type sales_orders,
call
function 'BAPI_SALESORDER_GETLIST' destination 'ABC'edate = sy-datum.
add 1 to
edate. "gültig für einen Tagcall
method cl_bsp_server_side_cookie=>set_server_cookieMethode get_last_error
|
Signatur |
method GET_LAST_ERROR |
|
|
Beschreibung |
Diese Methode liefert den Returncode des letzten Calls. |
|
|
Parameter |
RC |
Returncode |

data:
rc type i,rc = cl_bsp_server_side_cookie=>get_last_error( ).
Methode get_last_error_name
|
Signatur |
method GET_LAST_ERROR_NAME |
|
|
Beschreibung |
Diese Methode liefert den internen Namen der Ausnahme des letzten Calls. |
|
|
Parameter |
NAME |
Interner Fehlertext |

data: rc type i,
rc =
cl_bsp_server_side_cookie=>get_last_error( ).if
rc ne 0.txt = cl_bsp_server_side_cookie=>get_last_error_name( ).
endif.
Methode get_server_cookie_info
|
Signatur |
method GET_SERVER_COOKIE_INFO |
|
|
Beschreibung |
Diese Methode liefert Informationen über Server-Cookies. |
|
|
Parameter |
COOCIES |
Liste aller Cookies. |
|
APPLICATION_NAMESPACE |
Namensraum der BSP-Anwendung |
|
|
SESSION_ID |
Session-ID |
|
|
USERNAME |
Name des Benutzers |
|
|
NAME |
Names des Cookies |
|
|
APPLICATION_NAME |
Name der BSP-Anwendung |
|

data: usr type string,
call
method cl_bsp_server_side_cookie=>get_server_cookie_info