Survey Rendering in CRM WEB UI
There are some known issues related to survey transformation. This blog post should give an idea about how the transformation is working and contains a collection of common issues together with documented solutions. Any known issues are highlighted with the alert icon ( ❗ ), whereas each solution is highlighted with the information icon ( ℹ).
The main settings and the related XML and XSLT files can be found in the survey repository in SAP GUI. This can be accessed in from the survey suite (transaction CRM_SURVEY_SUITE) only, using the survey repository button:
The survey repository contains the files for the style sheets (cascading style sheets), the static survey XSLTs, the parameter files (XML), as well as layout XMLs for the survey print function:
- Cascading Style Sheets (CSS): defines survey format – colors, background, style, etc
- Static Survey XSLTs: required for rendering the survey from the survey XML to the HTML
- Parameter XMLs: contain parameters for URL scenario
- Layout XMLs: contains layouts for print scenario
For the survey rendering the CSS style sheets and the Static Survey XSLTs are required. The transformation works the following way. The survey is stored as an XML. While presenting the survey, XML goes through the XSLT transformation as a result of which the survey HTML gets generated – this is happens in 2 steps:
- Survey preparation (Build Time): the preparation step is done once for every survey. The first stylesheet (GenerateValues), extracts the default values from the survey and stores them in the survey vales template file. The second stylesheet (GenerateTemplate) generates the survey template.
- Survey Execution (Run Time): The Survey Template processes the Survey Values Templates and generates the Survey HTML with the default values.
The rendering happens with the so called CATServer. The CATServer is responsible for transforming the survey XMLs to the HTML using the XSLT files. The CATServer is to be maintained in the Survey Repository:
There are two versions of the CATServer available in the system – the active one is highlighted in the CATServer administration:
- Internal CATServer(ABAP Based): This version makes use of the ABAP XSLT processor. Therefore, this version of the CATServer has some limitations with respect to functionality, performance and resource consumption (especially memory). Hence the JTS is the recommended CATServer with the performance point of view, however since the ABAP based CATServer is much more stable always recommend this one.
- JTS: Java Based Version of the CATServer JTS is Java based and provides the same functional scope than the external Java version. This requires no external installation. In addition, it is low in resource consumption and shows a much better performance than the internal ABAP-based CATServer.
Switching between the ABAP and the JTS CATServer can be done at runtime, there is no system restart required.
❗ There are some known issues related to the CATServer used. If the survey can’t be activated or can’t be displayed due to the following error message raised in SAPGUI, this is usually a CATServer issues:
❗ There is the following error raised:
Business Server Page Error
Message E 00 001 connot be processed in plugin mode HTTP
Exception Class: CX_SY_Message_IN_PLUGIN_MODE
ℹThose issues are related to the CATServer used. In that case switching to the ABAP based CATServer should solve the issue. The ABAP based CATServer is much more stable, therefore the ABAP based CATServer is definitly the one to recommend.
To understand how to switch between the CATServer versions consider the following SAP note:
Using class CL_SURVEY_CATSERVER you can either execute the method SET_CATSERVER_ABAP or SET_CATSERVER_JTS. The parameter user must be left empty.
There was a change done to the framework recently. The BSP scenario is now migrated to the THTMLB framework.
❗ There may be some survey transformation issues. When accessing the survey at runtime you may get the following error:
1842704 – Error: <bsp:bee>: (BEE XML) BSP extension <:*> is unknown
ℹFor all corrections that affect the XSLT file it is required to generate the affected survey again. This can either be manually or by using report CRM_GENERATE_SURVEYS. The report is delivered with the following SAP note:
Further the cache needs to be cleared:
- CAT server cache: Start the Survey Suite (CRM_SURVEY_SUITE) and delete the CAT server cache.
/ncrm_survey_suite -> Survey Repository -> CAT Server -> Administer -> Select RFC Destination -> Clear Cache.
- Server cache: The server cache can be cleared by executing the transaction SMICM and by following the menu path Goto->HTTP Plug-In -> Server Cache -> Invalidate Globally
(The regular “clear cache” funtion in the Internet Option does not clear cache for favorite sites by default.)
Please be sure to clear both local and server cache in SMICM and Clear the cache of all intermediate servers/proxys found in your network
❗ Issues related to list boxes (drop down lists) in surveys
ℹThis should be solved with the following SAP notes:
❗ Issues related to radio buttons and check boxes.
There are issues related to survey values, such as values are not saved, and layout issues, such as the allignment of radio buttons.
ℹIssues related to survey values:
ℹLayout related issues:
❗ Layout issues in surveys
ℹ There is the following design:
The survey layout is defined in the CSS Style Sheet used in the survey.
The defined CSS Style Sheet is used in various different scenarios other than the 1Order scenario. 1Order business transaction uses the BSP framework – so each survey used in a business transaction uses the htmlb_style.css from the BSP application ICCMP_SURVEY. Survey in 1Order will therefore not follow the CSS Style Sheet definition from the survey attributes but will follow the UI framework skins.
This design is also documented in the following KBA:
2216420 Survey does not consider CSS Stylesheet
After switching to the THTMLB framework the old HTMLB tags won’t work anymore, but the htmlb_style.css needs to be modified. This is done with the following notes:
1817152 Migration to THTMLB framework for BSP scenarios
1955121 SVY: CSS file htmlb_style_css is not working for THTMLB tags
ℹKnown issues are solved with the following SAP notes:
❗ Issues with surveys used in the IC script scenario
ℹThis should be solved with the following SAP notes:
❗ Survey values are not saved
❗ Survey values are not displayed
❗ Survey values disappear after re-entering the survey
There may be various reasons for survey values not being saved.
ℹMake sure to have the correct PAI module assigned to the survey. Depending on the survey scenario the PAI module is responsible to calculate the rating and link the survey to the 1order transaction. The PAI module is to be assiged in the survey attributes (the following example is taken from the service application):
ℹAdditionally make sure to have the following notes implemented – again this is depending on the scenario:
ℹA known saving issue within the complaints application is solved with the following note:
❗ Survey views are not displayed
ℹMandatory SICF services for Survey Processing:
crm_svy_public BSP http Survey Server Public
crm_svy_server BSP http Survey Server
iccmp_survey ICWC Survey Component
You can check the same in SICF using the filter for the related service:
Then make sure that the service is activated:
Having any of those services deactivated may result in the following error:
‘Service cannot be reached’
❗ Survey not displayed together with message: Cannot get questionnaire HTML string
There may be various reasons for the issue:
ℹAnother reason may be the following notes missing in the system: The notes need to be implemented in exactly that sequence – please consider any manual and automatic implementation steps:
❗ Survey not accessable with error msg related to unfilled questionnaire
You may receive the following error message raised, when trying to access a survey:
It is not possible to view an unfilled questionnaire [CRM_IC_LEAD 013]
ℹThis is no error but related to the design of the survey application. If a survey is linked to any business transaction and there is no value version created yet, so if the survey is not filled out yet, the same can’t be accessed in display mode. The survey needs to be edited first:
Once a version of the survey is submitted the survey can be accessed in display and in edit mode:
❗ Issues with mandatory fields in surveys
Different answers can be defined as mandatory. The answer is then highlighed with a red frame:
On submitting the survey the validation for unfilled answers happens on XSLT level. The user is informed accordingly:
ℹMandatory field check is supported for the following answer categories:
- Input Field
- Input Field for Date
- Input Field for Time
- Input Field for Number
The mandatory field check is not supported for the following answer categories:
- Radio Button
Those have the ‘required field entry’ flag enabled:
Unsupported answer categories have the ‘required field entry’ flag disabled:
ℹKnown issues regarding mandatory field check should be solved with the following SAP notes:
❗ Issues with XML import and export function for surveys
ℹThis should be solved with the following notes:
In the XML import scenario the name of the XML file must not be similar to the name of any existing survey. In that case the import is failing.
❗ On submitting a survey a BSP error occures regarding ‘unexpected end-of-file’:
ℹThis issue should be solved with the following note: