Eigene Fehlerseiten einrichten
Für jeden der Fehlercodes können Sie eine HTML-Seite anlegen, die dann bei Auftreten dieses Fehlers an den Client geschickt wird. Hier können Sie sowohl statische Seiten (Endung .html) als auch dynamische Seiten (Endung .shtml) hinterlegen.
Zudem können Sie eine Datei ICMERR-EDEFAULT.{html,shtml} im Verzeichnis von icm/HTTP/error_templ_path anlegen, deren Inhalt zurückgegeben wird, wenn es für den Fehler kein anderes Template gibt.
Wenn in den Fehlertemplates externe Ressourcen (z.B. Bilder) verwendet werden, so können diese mit dem File Access Handler vom ICM geliefert werden. Siehe hierzu icm/HTTP/file_access_<xx>.
Um die dynamische Fehlerbehandlung des ICM / Web Dispatchers zu verwenden, müssen Sie den Profilparameter icm/HTTP/error_templ_path auf das Verzeichnis mit den Fehlertemplate-Dateien setzen: z.B.
icm/HTTP/error_templ_path = /usr/sap/B6M/D13/data/icmerror

Falls Sie den Internet Explorer als Web-Browser verwenden, muss die Option Show friendly HTTP messages deaktiviert sein. Dies können Sie über Tools ® Internet Options ® Advanced unter Browsing einstellen.
Legen Sie für die gewünschten Fehlercodes die Dateien ICMERR-<Fehlercode>.(s)html im entsprechenden Verzeichnis an. Sie können statische oder dynamische Fehlerseiten anlegen.
Ist zu einem Fehler eine statische Fehlerseite hinterlegt (Endung .html), so wird diese an den Client zurückgegeben.
Die dynamischen Seiten unterstützen folgende SSI-Kommandos (Serverside Includes, siehe http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html).

Für die dynamischen Ersetzungen muss die gesamte Datei nach den SSI-Tags "<!--" durchsucht werden. Dieser Aufwand ist linear mit der Größe der Datei. Die dynamischen Seiten können auch nicht in den Cache eingelagert werden.
Im folgenden werden die unterstützten SSI-Kommandos erläutert.
<!--#echo var="variable" -->
Die folgenden Variable können eingesetzt werden:
Variablenname |
Bedeutung |
DATE_LOCAL |
Aktuelle Zeit/Datum: Tue Mar 26 17:15:32 2002 |
DATE_GMT
|
Aktuelle GMT Zeit/Datum: Tue Mar 26 17:15:32 2002 |
LAST_MODIFIED |
Letzter Modifikationszeitpunkt der aktuellen Datei |
FILE_SIZE |
Größe der aktuellen Datei in Bytes |
SERVER_SOFTWARE |
SAP Web Application Server 6.30 |
SERVER_NAME |
Name des Servers |
SERVER_PORT |
Port des Servers |
PATH_TRANSLATED |
URL-Pfad (ohne Parameter) |
ICM_SERVER |
Rechnername und Port, mit dem dieser Server erreicht werden kann; z.B. ls3022.wdf.sap-ag.de:1080 |
ICM_INSTANCE |
Instanzname: ls3022_BIN_12 |
ICM_ERR_CODE |
Aufgetretener Fehler (numerisch) |
ICM_ERR_VERSION |
ICM Version |
ICM_ERR_COMPONENT |
Komponente |
ICM_ERR_MODULE |
Modulname |
ICM_ERR_LINE |
Zeile |
ICM_ERR_DETAIL |
Detail zu dem aufgetretenen Fehler |

Nicht alle Felder stehen bei allen Fehlern zur Verfügung.
Beim Fehler ICMEOVERLOAD beispielsweise wurde der Request noch nicht gelesen, daher ist das Feld PATH_TRANSLATED nicht gesetzt.

Sie können zum Beispiel in Ihrer Seite schreiben:
<tr><td>Server:</td><td><!--#echo var="ICM_SERVER" ‑‑></td></tr>
</tr><tr><td background="http://<!--#echo var="ICM_SERVER" ‑‑>/images/graybar_tile.jpg" height="31">
Mit diesem Kommando kann eine andere Datei an dieser Stelle eingefügt werden.
<!--#include
file="Dateiname" -->

Ihre Fehlerseite kann beispielsweise von den beiden INCLUDE-Anweisungen eingerahmt sein:
<!--#include file="header.html" -->
...
<!--#include file="footer.html" -->

Die Datei darf sich nicht selbst inkludieren! Rekursive Inklusion führt zum Abbruch des ICM!
Ein Beispiel für eine dynamische Fehlerseite und die zugehörige .shtml-Datei finden Sie unter Beispiel für eine dynamische Fehlerseite.