As of SAP enhancement package 3 (SP03) for SAP CRM 7.0, the Interaction Center (IC) utilizes ABAP Push Channel (APC) for
detail information on APC refer to blog When the APC is active, the server informs the Web browser about events like an incoming phone call immediately and directly - using a permanent WebSocket connection. This way APC provides an alternative to the polling mechanism of the IC context area.

Example: A communication event like “new phone call is altering” arrives on the CRM server. Now it has to be transferred to the IC Session in the Web browser of the respective agent. In the past, this was done by a polling mechanism (“SAM polling”): the browser polls at regular intervals (typically once per second) to the server and will thus get the information that the new event (alerting phone call) has occurred. With APC there will be no need for polling: the CRM server can directly push the information that there is a new communication event to the Web browser. This way the CRM server, the network and the browser session are freed up from the permanent polling traffic. And also the agent benefits from the better response times: the event (alerting phone call) will - on average - arrive faster on the agent’s UI because the polling interval (e.g. 1 second) is avoided.

It is by the way not only the communication events that benefit from the new push mechanism. Also Alerting and Broadcast Messaging rely on the new push channel as soon as you switch on the APC option in the context area profile.

As prerequisite you need a Web browser that supports WebSockets (e.g. IE10). If temporary network connection problems occur, or if the Web browser used by an agent does not support WebSockets, the system launches the classic polling mechanism instead.

If you are interested, you can activate the APC in the Customizing activity Define Context Area Profile and check out SAP note 1962301 for more technical details.
For further information check the RKT material of SAP enhancement package 3 or the release information.

So far, no direct search for outbound SAPoffice e-mails sent from the Interaction Center (IC) was supported in the agent inbox in IC. Agents could only indirectly search for outbound e-mails by opening business transactions (like interaction records or service requests) the outbound e-mails are linked to.

As of SAP enhancement package 3 (SP03) for SAP CRM 7.0, outbound correspondence (SAP Office e-mail, fax, letter) created in IC can be directly searched for in the agent inbox. This is helpful for example when agents save draft e-mails, search for such e-mails, and finalize and send them out at a later point in time. Additionally, outbound e-mails can be listed in the account factsheet in IC. Also when an agent handles a phone call from a customer the customer might mention having received an e-mail from the call center. In this situation the agent can now search for the sent e-mail in the agent Inbox or fact sheet.
For further information check the RKT material of SAP enhancement package 3 or the release information.

In a world where everyone is mobile, businesses will need to ensure that their customer engagement strategies are using data effectively


“How do I attract more customers?”

It seems such a simple question but this is the quandary at the heart of every business. It doesn’t matter how well-run your operations, how skilled your staff or how superior your product or service is, f no-one buys what you are selling.

This predicament is exacerbated by the proliferation of networking technology. Businesses may have more tools with which to market themselves and more avenues but keeping customers satisfied has become more difficult rather than easier. Consumers have grown used to fast response times and high levels of personalisation. Should they not feel happy with one company’s products, finding another that does the same thing is simply a matter of reaching for their mobile devices and doing an internet search. Worse still, they can take their complaints to social media and reach a potentially limitless audience.

These challenges will only grow over the next few years. East Africa is well on the way to universal mobility. The floodgates have opened and companies’ digital CRM strategies will determine whether they sink or swim.

In the face of this, the question “How do I attract more customers” becomes more complex. Now, companies must ask “How do I keep individuals with their own unique needs happy while determining what the majority want? How can I balance quantity with quality? How do I maintain a 24-hour engagement with customers while running an efficient business that can deliver the products and services they need? How do I serve the needs of local and regional markets while growing outward and exploring whole new markets with whole new needs?

The odds seem impossible yet many companies are achieving far greater levels of customer engagement and retention than they have in the past using customer engagement intelligence and data analytics. By using cutting edge technology to analyse past performance and customer histories, these companies can identify patterns and trends that allow them to create meaningful CRM strategies.

Integrated customer intelligence engagement reaches far deeper than normal marketing research. It gets to the heart of what customers value and allows companies to assess not just of the differences between regions, and age groups, but between individuals, allowing them to target the right products and services to the segment that will respond best to them.

Every customer interaction, every past purchase, every bit of personal information becomes a data point from which companies can build a meaningful relationship with them. Crucially, this allows for highly targeted marketing campaigns that cut straight to the heart of what individual customers are looking for or might not even realise they need. Sales teams are better able to collaborate to identify and follow up on opportunities for upselling and cross-selling.

The result of all of this is that companies better able to invest their capital wisely in order to maximise sales and build an incredible amount of customer loyalty, all while pursuing new segments. If a customer must choose between two companies that offer the same services, they will inevitably stick with the company that understands them, listens to them, and offers them incentives they actually want.

It’s time to ask a new question: “What should my customer intelligence strategy be and which analytics should I use to determine it?”

Recently I am helping customer to measure the performance of APIs in function group CRM_ORDER_API and find this trace tool.


1. use tcode CRMD_TRACE_SET to activate the trace mode:


2. run the one order scenario under trace mode. In my case I execute the program( source code attached to this blog). Once finished, go to tcode CRMD_TRACE_EVAL:


double click on the highlighted cell and it will lead to parameter detail screen:


it is also possible to see the callstack where the function module is called.


How is it implemented


1. There is an include CRM_TRACE_PART_ONE which does the following jobs:

  a. evaluate the trace mode enablement

  b. collect the timestamp, work process id, callstack information etc


The include looks strange for me( as an ABAP OO developer) at the first glance:


2. There is another include CRM_TRACE_PART_TWO which persists the collected trace information to table INDX. 


By using where used list on these includes, you can know what APIs could support the trace function.


You can also set user parameter "CRM_DEBUG_CODE" if you would not like to activate it explicitly. It will be evaluated by function module CRM_ORDER_DEBUG_CODE which is called by include CRM_TRACE_PART_TWO.


You can also explore the package CRM_TOOLS:



Customer Engagement is a white-hot topic.  Everybody is talking about it, but there is a big difference between those who can "walk the walk and those who "talk the talk".


The best way to create Customer Engagement is to have a personal experience with your customer and make sure that they know you care about them. Integrating your Contact Center with instant access to everything you know about your customer (both ERP and CRM data) is key. Agents are empowered with knowledge of the:

  • History of the customer relationship (and how valuable they are to your company)
  • Customer's buying history (including their credit and payment history)
  • Context of why the customer may be calling - what happened during their last transaction?


Simplifying information feeds with a single, centralized database for your Contact Center, ERP and CRM systems and presenting a single screen for agents eliminates the need to toggle between multiple screens of data, a costly waste of the customers time. Shorter transaction times and greater efficiency is key in delivering best-in-class performance.



The Aberdeen Group's Agent Desktop Optimization:  Agents Can Finally Focus on the Customer analyzed characteristics of the top 20% performers. In 43% of those, "...the building block of top performers agent desktop management initiatives focused on simplification and integration." Too many agent screens is also a waste of money.  26% of agents time was spent looking for relevant data across different systems and the cost of each additional screen is $1,400 per agent, per year.


Recently we held a webinar that featured how Wacker Neuson used Personalized Customer Engagement as a strategic initiative. If you were unable to attend our webinar on February 27, you can click on this link to access this webinar and still listen to it.

I tried to use them to perform the search and I expected only the attachment instances belonging to the given product I specified in INSTID are returned.


To my surprise, the query result includes not only the attachments for the given product, but also returns lots of attachments belonging to other products created by me.


Through debugging, I found the parameter CATID, TYPEID and INSTID is not passed into main search function module in line 61, which means they are not considered during search at all.


Instead the search result are filtered by the three parameters in post processing, according to the attribute value "CRM_SEARCH_VISIBILITY" of each attachment instance:


In Attachment Property UI, we can assign three kinds of value for "Visible in Search":



It is defined as instance attribute in Document model workbench:


according to the filtering logic in code below, the attribute would work as below in CMAdvDocumentFinder implementation:


No Restriction: the attachments with such attribute will not be filtered.

1 - In Business Objects of the Same Object Type Only: the attachments whose host business object type not equal to search parameter TYPEID will be filtered out.

2- Only in the Same Business Object: the attachments whose host business object instance not equal to the instance specified by search parameter TYPEID and INSTID will be filtered out.


1. Objective

This blog describes how to add additional fields to Business Agreements (BUAG) in releases SAP CRM 2007 and SAP CRM 7.0 (i.e. Customer-specific fields).

2. Prerequisites

    • SAP CRM 2007 or SAP CRM 7.0
    • For release SAP IS-U 4.72 or lower: Implementation of SAP note 718234
    • Implementation of SAP note 1280914

3. Instructions

In order to store additional fields in the database, it’s recommended to use the append technique (two alternatives).

If one way doesn’t work for you, try another one.

There are two alternatives:

A) Append a field to table CRMM_BUAG_H (special data of business agreements)
Fields of the same name and in the same sequence (very important!) has to be appended to each of the following structures:

  • CRMT_BUAGS_EI_SPEC_DATA_X (both in SAP CRM and in R/3 or ERP (Plug-In))
  • BAPI_TE_FKKVKP (in R73 or ERP (Plug-In))

For the fields to be added to structures BAPIBUS1006130_SPEC_DATA_X and CRMT_BUAGS_EI_SPEC_DATA_X, choose field type BAPIUPDATE.


B) Append a field to table CRMM_BABR_H (general data of business agreements)

Fields of the same name and in the same sequence (very important!) has to be appended to each of the following structures:

  • CRMT_BUAGS_EI_GNRL_DATA (both in CRM and in R/3 or ERP (Plug-In))
  • CRMT_BUAGS_EI_GNRL_DATA_X (both in CRM and in R/3 or ERP (Plug-In))

For the field to be added to structures BAPIBUS1006130_GNRL_DATA_X and


4. Validations

If necessary, for the BAPI, use method DATA_CHECK_BAPI of business add-in CRM_MDBP_BUAG.

5. IC-Webclient UI enhancements

New fields are automatically available at BOL (Business Object Layer) level.

You need just add them to existing nodes and view configuration tab.

Use transaction BSP_WD_CMPWB (BSP WD Workbench) and enhancement sets to maintain the enhancement of views. 
Otherwise, in WEB UI you can use AET (Application Enhancement tool) for the same purpose.

If you want to show new fields (by BSP WD Workbench or AET in WEB UI) then the following views are relevant (views that show some information about object Business Agreement):




IC Agent

































Utilities Sales






there a lot's of things ongoing in the new Desktop Connection development. Actually we are working on a "Professional Edition" which will be available soon. This version will cover quite a bunch of functionality to support sales people in their daily work. This version will still be license free for SAP CRM customers, so it is very simpe to try it out and leverage the power.

To improve our development and gather feedback a Wiki Page is available:


Here you can find some collaterals (roll out slide deck as well as some scenarios) and also FAQs.


To collect all of the postings a tag was introduced "desktop_connection". If this is used is fairly simple to get an overview.

An Object tagging is a great feature that allows you to tag an instance of an object (Ex. An Order) and share the tags with the community.

As per EhP1 of SAP CRM 7.0 the “Object Tagging” has been made available. With Object Tagging or Tag Cloud, you can easily put all kinds of tags on most of the objects across Sales, Service and Marketing area.

Screen Shot 1.png

The tag cloud function has to be activated using PARAMETERS profile and Personalization, check details how to  - Tag Clouds - Generic User Interface Functions - SAP Library


  • Tag Clouds is created for usability purposes but it is also a powerful tool for search optimization.
  • Since user link tags are textual and keyword-rich, a tag cloud is more advantageous to use in terms of Search Optimization against traditional navigation bar.
  • Favorites are a collection of direct links to predefined objects which are stored in your favorites list.
  • You can easily create and manage your favorites as well as share them across the community.
Tagging an object (eg. an order)
Tagging an object is easy. In the overview screen of an order (or another object within CRM) you can click on the tag button to tag the order. This tag button you can find in the upper-right corner of the WebUI(below screen shot). Once this button is clicked, a Tag Object Dialog box is opened.
Tags in the “Assigned Tags” area are tags that you already had added to this specific object. These tags can be deleted by clicking on the trash can button. The “Suggested Tags” are tags that have been attached to this specific object by other users and can be selected by clicking the tag.

In the field “Add tag” you can add several tag names by using commas or add only one tag name for one single tag.

You can select any tag and navigate to a result list page where objects are grouped by Object Types. If multiple objects are linked to your tag you will navigate to a results list page, otherwise you will navigate directly to the overview page if only a single object is linked to the tag.


Available actions in the assignment block “Tag”

In your homepage, your tags should be visible in the assignment block “Tag”.
Here you can choose the following actions to display your tags:

  • My Cloud
  • Community Cloud
  • Search for Tags
  • Search for objects
  • Popular Tags
  • My Recent Tags

How to enable this new feature


Requisite - To enable this new feature, you have to assign a Functional Profile “Parameter” to a Business Role .
1. First you should create a Parameter (Refer UIF_PROF as value) with the right settings for the tag cloud. You can do this by adding the correct Parameter Assignment to the profile.

Screen Shot 2.png

2. Assign a new functional profile for the tag cloud, you assign this to your Business Role.


3. After assigning the Business role to the right user, it is possible that you have to make some personal settings in the Web UI (Home - Personalize - Settings).
After that you can assign tags to all the objects across Sales, Service and Marketing area.

Personalized customer engagement is not an event, it is a process. Once the appropriate infrastructure is in place, the journey can begin….

Companies are looking to provide world class service as a way to meet the challenges from increasingly demanding customers that are knowledgeable about their alternatives.


“…Technology is changing the game, and customers are changing the rules. Yet these are more than just trends; we are witnessing a profound paradigm shift in how companies engage with customers. Today’s customers are digitally connected, socially networked, and always on, and with technologies like smartphones, social networks, and mobile apps, they are more empowered than ever.” says Volker Hildebrand, SAP’s Global Vice President, Customer Engagement Solutions.


Facing these challenges may seem daunting, even overwhelming. Once the commitment is made to deliver personalized customer engagement, start where the biggest impact can be made, your Contact Center. This is the “face” you present to your customers and where you interact with them.

One of the challenges is the unpredictable nature of the communications. Your customers decide when, if and how they are going to communicate with you. Your challenge is how to appropriately respond in the communications mode your customers choose, and as quickly as possible.

Another challenge is that the customer dialogue is not a series of discrete, unique experiences, it is part of an ongoing relationship. Customers expect you to know about them and acknowledged them, and to be treated with dignity, and not kept waiting. Violating this relationship can have profound consequences. When musician Dave Carroll was unhappy with how United Airlines handled his concerns and treated him he created a music video “United Breaks Guitars” video that has been seen by more than 13 million viewers.

Companies like Wacker Neuson made a strategic decision to begin their journey to provide personalized customer engagement. They wanted to make sure that the agent could really help callers with their problems by being as knowledgeable as possible when customer called in. To do so, they wanted to arm their Contact Center agents with everything they knew about their customers and have all of the tools available. With a 360-degree view of the customer, agents will instantaneously obtain customer information from multiple systems that typically exist in separate silos. Financial and transactional information from SAP ERP systems where in one place and the sales histories from SAP CRM systems were in another. Seamlessly integrating these systems with the SAP BCM Contact Center gives the agents’ comprehensive information without the time consuming toggling between multiple screens.

Creating a new paradigm for world class customer service with personalized customer engagement is not an event, it is a process. Once the appropriate infrastructure is in place, the journey can begin and the goals of increased customer loyalty and greater long term profits achieved.

Business Analyst Sandy Reisenauer from Wacker Neuson loves sharing the tale of her organization’s experiences on this journey. Hear what she has to say.


This blog originally appeared on and SAP Business Innovations

Yesterday I faced a very common issue with some CRM business transactions: the document flow was showing ECC objects for which no navigation was possible (despite the identification number rendered as hyperlink):


So, as I couldn't find any source on SCN to solve it, I decided to post a quick note on one possible solution to overcome this problem (which I found by debugging the system as of method PREPARE_COL_FOR_NAVIGATE_BOR from class CL_CRM_UIU_BT_NAVIGATE). First, check table BSPDLCV_OBJ_TYPE: it is most likely that you won't find any entry delivered by SAP with "BOR object Type" = "BCONTACT". So you'll have to create such entry in table BSPDLCVC_OBJ_TYP (which is exactly the same as BSPDLCV_OBJ_TYPE, but for customers only):


It's important to use "BOL Object Name" = "ICBORWrapper", because SAP will use this name to determine a "mapping class" stored in table CRMV_UI_OBJ_MAPS (or CRMV_UI_OBJ_MAP if you want to overwrite this customizing with your own values):


This class will in turn create a BOL entity dedicated to BOR objects that will store the BOR type, ID and logical system (i.e. those three pieces of information you need to navigate to the right system, on the right screen). Also, make sure that you name your UI object type WRAPPED_<BOR TYPE> in table BSPDLCVC_BJP_TYP. Now we just need to create a Launch Transaction (tcode CRMC_UI_ACTIONWZ):


And we also need to enable navigation for this WRAPPED_BCONTACT UI object type created above in the corresponding navigation bar (tcode CRMC_UI_NBLINKS):



Everything is setup. If you click on the link corresponding to BCONTACT object type in the Document Flow assignment block, the system will automatically navigate to the corresponding screen in the backend (provided the launch transaction is customized correctly, and the backend system is defined in tcode CRMS_IC_CROSS_SYS). In case you're facing any issue, the following documents by Hasan Zubairi might help:

Almost Everything About Transaction Launcher - Part I

Almost Everything About Transaction Launcher - Part II

Imaging your Sales Force can fulfil their job using well known native tools
to administer own contacts, share information and collaborate with their teams.
Combine the power of SAP CRM with the familarity of Microsoft Outlook.



SAP’s Desktop Connection is the tool which helps you achieving this goal. Now it moved out of restricted Ramp-Up and is available to all customers.


The current version 2.0 (generally available February 14th, 2014) covers synchronization of accounts, contacts and appointments between MS Outlook and SAP CRM. Collaborating and information sharing is just one click away using native MS Outlook look and feel, ensuring everyone is working with the most up to date information.


Desktop Connection tailored your needs and was designed with flexibility and ease of use in mind. With the CRM server customization package you can not only define what gets synchronized but also extend the synchronized objects with your own fields, or even define your own objects to be synchronized.


Get started now, extend in the future. Together with invisibleCRM® we are already working on the next releases. Our professional edition, available in Q2 2014, will additionally synchronize e-mails and personal tasks. The enterprise edition, available later this year, will offer even more synchronized objects such as leads and opportunities, as well as a number of other improvements.


Further information can be found here.

In previous blog we have finished the creation for web service PROD_WS, and ABAP consumer proxy class ZZCO_PROD_WS. Before it can be used in ABAP program to consume the web service we created, a logical port is needed.


Create a new Logical Port in SOAMANAGER

1. Go back to SOAMANAGER and search PROD_WS again, this time the ABAP consumer proxy ZZCO_PROD_WS is also visible in search result list.


2. Click consumer proxy class and click button Create->WSDL Based Configuration:


3. Specify Logical Port name:


Specify the WSDL link of new binding for service definition created in previous step. Specify a valid user and password for WSDL access.




Click finish button to finish logical port creation. Click Ping button and ensure it works successfully.


Consume the web service in ABAP program


Use the following source code to consume the query and read service operation. Pass the logical port name LP__TEST1 in constructor of consumer class. The data type and method signature could be easily found in class builder for consumer proxy class ZZCO_PROD_WS.




DATA: lo     TYPE REF TO zzco_prod_ws,

           input  TYPE zzcrmost__pro001prodadvsea01,

           output TYPE zzcrmost__pro001prodadvsea00.



    logical_port_name = 'LP_TEST1'.


input-input-searchforproducts-created_by-sign = 'I'.

input-input-searchforproducts-created_by-option = 'EQ'.

input-input-searchforproducts-created_by-low = 'WANGJER'.




        input                   = input


        output                  =  output ).

  CATCH cx_root INTO DATA(lv_text).

    DATA(ls) = lv_text->get_text( ).

    WRITE:/ ls.



DATA: ls_read_input  TYPE zzcrmost__prod_ws_read,

           ls_read_result TYPE zzcrmost__prod_ws_read_respo.


    ls_read_input-input-prod_ws-product_id = 'ARNO_TEST004'.



          input  = ls_read_input


          output = ls_read_result ).

  CATCH cx_root INTO lv_text.

    ls = lv_text->get_text( ).

    WRITE:/ ls.


program execution result: 100 results found with CREATED_BY = WANGJER:


The result is exactly the same as when we manually run the advanced search in GENIL_BOL_BROWSER:


And the result for read operation consumption:


In this blog I will create a web service which is exposed via Genil model PROD in CRM web client UI and consume it via a simple ABAP program.


Create web service in CRM Webclient UI


1. log on CRM Web ui with business role SERVICEPRO, work center Service Operation, Create a new Web service:


Choose Material as Business Object, choose Product/Individual Product as Component, Product as Root object.

Mark check box Read, Create and Change.


Click the new button to also create a webservice operation which is implemented via the query object of Genil model


Click new button:


2. in step2 of the creation wizard, simply click select all to ensure all attributes in Genil model PROD are involved in the web service.


click Confirm Selection to continue.


3. in step3, it is allowed to specify certain fields as read only.


4. In final step of wizard, we can specify the security profile of created web service. The differences of the two can be found in the chapter when we talk about how to consume the web service. In this blog I choose BASIC as security profile.


Click Activate button and then click Productive button in toolbar. Now we have finished the creation and the webservice PROD_WS is ready to be consumed.


Create new binding for Service Definition PROD_WS


use tcode SOAMANAGER, click Web Service Configuration.


Search by object name = PROD_WS:


Select search result and click Create Service button:


Specify Service name and Binding name:


Select SSL as Transport Level Security


If you select SECURE as security profile in web service creation step, the Authentication Level will be Strong instead of Basic, and the checkbox "User ID/Password" will be disabled, which means in that case, only X.509 SSL Client Certificate or Single Sign On are allowed.


In this blog, since both the creation of web service and service consumption are done in AG3, I mark "Make Local Call" as Local System Call.


Click Finish button, click the icon "Open Binding WSDL Generation",


write down the WSDL link:


Create the service consumer proxy in ABAP backend



1. tcode SE80, choose tab "Enterprise Services Browser", right click on Objects, choose "Create new Object",


Choose Service Consumer and click continue:




Specify a prefix:


Lots of proxy objects for runtime usage will be created:


Finally the ABAP consumer proxy class ZZCO_PROD_WS has been generated, which would be used in the ABAP program to consume the web service.


Now the consumer proxy class is ready for use. We can find all its available methods and signature in class builder.


In part 2 of this blog, we will discuss how to use this proxy class to consume web service in ABAP program.

Less face a fact, the world of customer relationship management is no more just a traditional automatic Happy new year campaign email or a after service survey. Since the beginning of 2012 we have seen a revolution in CRM systems around the world. The focus today is not just about the customers but also on the ease of usability and features to the employees.


Phew ! Our systems are very friendly but wait ... did we hear "features" ? Yes features in terms of an applications is a collection of addons which makes the experience more interactive or fun to work with.


How great would it feel if my SAP CRM system plans my day automatically after reading my calendar, making a note of my important meetings, missed alerts, closing opportunities, creates a day-wise agenda and mails me the same every morning at 8 AM. Wooohoo !!! " My employees would love this and I can pay anything for such a great feature " , would be the words of a customer. Friends, there are many apps which are providing such features ! Traditional features are considered just a baseline these days.


The second thing which a lot of us ( CRM experts ) must have seen now a days are a set of silly kind of requirements ( sounds to us ) like I want to see a list of users in my organizational position who are using the CRM system or online ! ( Trust me, I had this encounter ). " Why do you need this feature ? you have office lync or GTalk for this feature " , were my words to him. "I need to know who I can transfer my service cases for the fastest response and if it's not possible in CRM please let us know as this is very important for us and Sales-force already has a plugin for this" , was his response.


Seems legit , isn't it ? Yes it is , at first it sounded useless but the explanation along with the comparison of another product was good enough for me to help him solve this.


Every time we tend to refuse for a requirement, just because we have no idea of how it can be done kills the trust ! Still there are situations which cant be implemented at all. One of my customers asked for providing him an auto-complete features in text boxes on CRM Web-UI, which simply was not possible due to the data throughput it will put on the system but we let him know about a work around which was accepted by him. Bottom line : "We just should not close an impossible requirement with a NO, provide an alternate solution". Trust me when you talk in business terms with the customer, the relation builds stronger and the trust grows.


Filter Blog

By author:
By date:
By tag: