Let me share some of my tricks I use when supporting CRM Interaction Center. Some of it is not specific to CRM IC but helps me a lot.
Often helpful, when I have to logon to CRM WebUI using a webdispatcher and my external breakpoints do not stop:
transaction SRDEBUG (note 1004248) to activate external breakpoints across systems
If I have no clear idea where to set a breakpoint, I use Conditional Breakpoints (KBA 1849381). It is quite simple:
activate checkpoint group CRMUIF_CONDITIONAL_BREAKPOINTS in transaction SAAB
start the CRM WebUI using CRM_UI_DBG (CRM 7.0),WUI_DBG (CRM 7.0 EHP1 and later) or transaction START_BSP with
BSP Application: CRM_UI_FRAME for CRM 2007, CRM_UI_START for higher releases
External Debugging on
on CRM WebUI use ALT+F2 to define your conditional breakpoints.
and the debugger stops:
Also see SAP Note 2094150 Conditional breakpoints for IC events which introduces new conditional breakpoints specific for CRM IC.
Checking involvement of an enhancement
In general only one enhancement set is assigned to a client (table BSPWD_EHSET_ASGN). If F2 shows a different enhancement set, I check if there is a customer specific implementation of BADI component_loading for choosing another enhancement set for certain scenarios.
To get an overview on customer enhancements on a system, checking view cluster BSPWDVC_CMP_EXT (SM34) helps. Here all enhancement sets are listed and I get an overview of components/view which have been enhanced.
With regard to enhancement, also user parameter WCF_IGNORE_ENHANCEMT with value "A" helps a lot. It disables all customer enhancements and allows testing of the system behavior using SAP standard coding (note 1311966). If the problem is not replicable when setting parameter WCF_IGNORE_ENHANCEMT to 'A', there might be
a bug in the customer specific coding
or a support package or note has been implemented which improved the SAP standard coding but the corrections are missing in the Z enhancement
Instead of switching off the whole enhancement, it is also possible to disable the enhancement of a certain view by help of debugging as described by Corrine Guan.
In these cases transaction WCF_CC helps a lot to compare SAP standard and an enhanced component (notes 1570869, 1244321).
when enhancing a component using the component workbench, the runtime repository gets copied to the Z-component,
when enhancing a view controller, the view layout gets copied to the Z-component, here corrections might be missing in layout part (html),
when redefining a method in an class not calling the SAP standard coding, corrections might be missing in the Z-class.
Just to mention some examples:
entries in the runtime repository of the enhanced component might be missing
a page attribute might be missing for an enhanced view: BSP Exception CX_BSP_INV_ATTR_NAME (KBA 1615938)
the enhanced component is inactive in SICF
Not replicable with every user, situation, system... - the real tricky ones
What's really hard to identify is the root cause of not replicable, unwanted system behavior (note 9). Here sometimes the only chance is to ask the users, to carefully observe the system behavior and collect as much information as possible, e.g. if there are any differences in
browser versions (check if preconditions for used browser versions given? (Product Availibility Matrix -> Technical Release Information -> Web Browser Platforms: Scope and additional information)
business role, especially replicable with CRM IC and CRM Webclient business role -> customizing of business role?
users using the same business role -> personalization?
routing to different application servers -> different settings on application servers?
are any specific steps cause different system behavior, e.g. opening another browser session
To get insight in what the specific user did before the problem happened, you can activate CRM_ICI_TRACELEVEL parameter so that XXXXX is used. If SAP Note 2167770 is implemented, you will see then which events have been triggered by the IC agent
Additionally checking if there are any short dumps (ST22), entries in traces (SM21), CRM_ICI_TRACE for CTI, httpwatch traces might provide additional information.
Some possible root causes:
If the view configuration has been changed and user personalizations for the same view are available, then the new configuration might not be shown for those users who have personalized the view. Table BSPC_DL_PERSSTOR tells if there is a personalization for a user. In general, user personalization can be deleted by switching to "Default" version on UI personalization popup by the user himself or by the administrator using report BSP_DLC_DELETE_PERSONALIZATION (note 1376763).
If there is any other difference in system behavior between quality and productive system after transporting new changes, usage of shared memory in the productive system might be an explanation. When transporting changes, it might be that the changes are not active in the productive system immediately. Instead of using the newly transported coding/configuration, the data from shared memory might be used. The new changes are taken into account if the lifetime of the area expires or if the area is invalidated manually. SAP KBA 1870987contains further information. Examples: genil, configuration and design layer Areas: CL_CRM_GENIL_MODEL_SHM_AREA, CL_BSP_WD_SHM_AREA (transaction SHMM, note 1281896, 1042618)
Different settings on different elements of the involved system landscape (e.g. for timeout on different application servers, webdispatcher: KBA 1757252).
My Magic F2 Helps - Help for the UI runtime analysis
I love the Key F2 - it is not only involved to start conditional breakpoints, but also in other key combinations (note 1248803)
F2: technical information on a field, on which configuration has been found, the UI object, design layer,...
F2+Alt+Ctrl: a system information dialog box containing user and system data and a table of all installed software components
F2+Alt+Shift: a view hierarchy dialog box for analyzing the current UI configuration .
F2+Alt+Shift+Ctrl: an information dialog box for key combinations supported by the framework
F2+Alt: conditional breakpoints
What is the correct component to search for notes/KBAs?
Also here, my friend F2 help supports me. Using F2 on a field, I am told to which application component is in charge of the field/button which is similar to check to which application component a package is assigned to.
This can be used as a first starting point for searching notes/KBA. Sometimes it is more complex - especially if more components are involved (interface), e.g. when integrating UIU views for business transaction in CRM Interaction Center (KBA 1823428).
Did you know that
There is a new report introduced by SAP Note 2161288 which helps SAP support to analyze business role customizing more quickly? Implement it before opening a new incident?
New SAP Note 2204431 improves timeout behavior in CRM Interaction Center
Layout of Timeout Popup harmonized with other CRM WebClient Business Role types - now it is also possible to restart, access offline
Timeout of an CRM IC Interaction Center does not affect other CRM UI sessions in the same browser context
No relogin is required after CRM IC session timeout, this is especially helpful in Portal Integration
SAP Note 2094150 introduces new Conditional breakpoints for IC events in CRM Interaction Center.