The purpose of this page is to provide the main steps to identify and resolve issues caused by wrong or missing character conversion during item transfer from catalog. The article is relevant for SRM 7.0 and higher releases.
Generally there are two kinds of errors related to special characters:
- Item is transferred but special characters are not appearing correctly (e.g. character # is shown instead)
- Portal Runtime Error occurs because of missing conversion of HTML tags
In some cases it is necessary to configure a codepage in the Webservice customizing. This information is sent to the catalog and used later for the character conversion. The transaction to configure the Webservices can be found at following path:
SPRO - SAP Implementation Guide - SAP Supplier Relationship Management - SRM Server - Master Data - Content Management - Define External Web Services
Select the relevant catalog, click on Details button and maintain the codepage in the "Codepage of Service" field in the Technical settings part.
The call structure parameter HTTP_CONTENT_CHARSET is not being used anymore.
Which codepage should be maintained?
Check with transaction SNLS which is the "Codepage of Front End" (e.g. 4110). If the description is not shown here, you can check the description with transaction SCP (e.g. 4110 -> UTF-8). You have to maintain the name of the codepage in the customizing as described above.
Generally one of these codepages has to be maintained in the customizing: UTF-8, ISO-8859-1, Windows-1252, utf-16be, utf-16le, ascii, big5, ...
For the full list of valid codepage entries to be put in the "Codepage of Service" field, query table TCP00A in transaction SE16 with criteria CPATTRKIND = "H"; valid entries are those int the CPATTR column.
Introduction of the inbound handler
As of SRM 7.0 the inbound handler is responsible for the correct character conversion and handling of HTML tags. If you have codepage conversion issues of Portal Runtime Error occurs when transferring items with special characters or HTML tags, check if the inbound handler has not been deactivated by setting the call structure parameter 'BYPASS_INB_HANDLER' with value 'X'.
If it is disabled, you can enable it by removing the value 'X' or the whole row from the call structure. Consider that this parameter has only effect if it stays BEFORE the HOOK_URL parameter. The sequence is important.
The main points for the debugging are following:
- Class: /SAPSRM/CL_CH_WD_INBOUND_HDLR / Method: HANDLE_REQUEST (IF_HTTP_EXTENSION) (only if the inbound handler is enabled)
- Class: /SAPSRM/CL_FPM_OCI_RESUMECMD / Method: EXECUTE