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:
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.
- 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)
- browser settings
- 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
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 1870987 contains 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
- a new SAP note 1900772 (available for CRM 7.0 EHP2 and higher) allows to use E-Mail header fields in ERMS rules
- SAP Note 1899896 provide background information on security and application sessions and its timeout parameters which is relevant for CRM IC as here at least two application sessions exist
- KBAs, Notes and Other Stuff for CRM IC summarizes some basics for CRM IC
- new KBA 1846041 has been released which helps to analyze why an ERMS inbound E-Mail is not found in the agent inbox
- SAP notes 1841635, 1911644, 1877120 improve stability in multi-session scenarios
- newly updated note 1013376 summarizes frequently asked questions on transaction launcher function
- starting with CRM 7.0 you can use local host in CRMS_IC_CROSS_SYS to simplify launch transaction set up (1789802)
- user-triggered alerts might reduce network load in NON-CTI scenarios (1822577)
- KBA 1836437 explains which technical preequisites for CRM IC Webclient Roles
- KBA 1770103 helps to set up business transactions in CRM IC
- ERMS push allows combination of inbox mails using handling in ICI (toolbar) and is supported in multi-session scenario (1610752)
- KBA 1757252 provides hints how to identify the root cause in logoff situations
- you can replace a global custom controller to adjust system behavior to your business needs using the runtime framework profile (1822403)
- Client cache: Control Panel: Internet Options -> delete tempory internet files
- Server cache: transaction SMICM -> Goto -> HTTP Server Cache -> Invalidate -> Global in system
- by rating a KBA you can provide feedback on the quality of the KBA (1850330)?
- there is an new tool which allows automated note search which can be started using transaction ANST_SEARCH_TOOL (1818192). Check
Nicolas Busson's blog SAP Automated Note Search Tool: I'm loving it! how to use it to solve bugs in CRM 7.0 EHP2.
My Wish List:
If somebody asks me, "what helps to process a message faster?", I would say
- an example in a Non-Productive system (background: KBA 1576685) and open service connections if possible
- information which system, client, user and business role I have to use.
- steps and detailed information how I am able to replicate the unwanted system behavior
- description which system behavior is expected
- a contact person who can provide background information
- Information if it has been tested with customer enhancement switched off and an Non-IC business role?
What also might help
- background information what has already been checked,
- any finding from a debugging session, e.g. good break point