1 2 3 Previous Next

SAP CRM: Marketing

34 Posts

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:


survey repository1.jpg

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:

survey repository2.jpg


  • 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:cat server admin.jpg

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:

cat server transforermfactory.jpg


As mentioned 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:


857535 - internal CATServer: Setup Instructions


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:


bee xml2.jpg

bee xml error.jpg

This error should be solved by implementing the following SAP notes:


1817152 - Migration to THTMLB framework for BSP scenarios

1842704 - Error: <bsp:bee>: (BEE XML) BSP extension <:*> is unknown


There may be various layout issues. The style sheet is not considered or issues with allignment of radio buttons.


Those issues should be solved with the following SAP notes - the solution includes 2 steps:


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:


1835143 - Delivery of report CRM_GENERATE_SURVEYS

As a general recommendation for any survey issues happening in the WEB UI I would suggest to search for the latest notes correcting any XSLT file. There are some known issues, since most of them are related to the XSLT file the issue may be solved with the latest corrections.


I want to share some ideas and a brief overview about how the locking mechanism for the BPS Planning is supposed to work, how this may be analyzed and how to tackle possible locking conflicts. Solutions for known issues are labeled with . This blog is related to locking conflicts only so the BPS planning integration to CRM should already be set up properly.


The BPS Planning is integrated in CRM Marketing as key figure planning application. This provides a planning functionality that allows to measure the performance of an organization, a department, a project, or other by setting plan values for important business key figures. The planning is happens in the BW system using BPS Planning.


Whenever the CRM Marketing object such as marketing plans, campaigns or trade promotions are edited, the planning cube in BW sets a lock based on the defined characteristics selection. The idea of this blog post is to provide an overview about the locking mechanism.


The locking of the planning cube is required when either accessing the planning layout or at the time of saving the marketing plan object. Once the CRM Marketing Object is edited the lock on the planning is set immediately. If the planning in BW cannot be locked, the CRM Marketing object cannot be locked either. This design is to protect data integrity.


When accessing the planning layout this is opened in edit mode per default:


doc bps lock edit mode.jpg


Once the planning layout is opened, the planning cube is locked based on the selected characteristics. If any other user tries to access the same object, the planning layout is opened in display mode – hence no synchronization happens. The user is informed with the following error message:


Planning object is locked in BI; changes cannot be saved [CRM_KFP 009]


doc bps lock msg1.jpg

doc bps lock msg2.jpg


The lock entries are created for the characteristic selection only. When a user edits the planning layout for marketing object A, another user should be able to edit the planning for marketing object B.


There is a known error in BPS with BW Release 7.40. If a user wants to plan data for an info cube, no other user can access the same cube. This is caused by the fact that the system locks the entire cube, ignoring the characteristics selection. This locking conflict affects SAP_BW 7.40 from Support Package 2 to Support Package 5 inclusively. The locking conflict is solved either with SP 6 or with implementing the following SAP note:

1926227 - Lock conflicts in BW-BPS from Release 7.40 [https://service.sap.com/sap/support/notes/1926227]



How is the locking mechanism working?



When accessing the CRM Marketing Object CRM calls the BW interface with the OBJECT_ENQUEUE command. Using the RFC call to the BW function module UPX_KPI_API_XML the BW system is accessed:

doc bps lock1.jpg

CRM --> BW

doc bps lock debugging bw.jpg

If the object_enqueue call is successfully locking the characteristics selection in the planning cube the following lock entries are generated. Those can be tracked using the following path in the Easy Access menu in the BW system (transaction SM12):


SAP Menu => Tools => Administration => Monitor => Lock Entries => Header 1


doc bps lock lockentries.jpg


The lock entries are created for the RFC user that is defined in SM59 for the BW remote connection, so this is not necessarily the CRM online user.


There is no locking entry in SM12 but still planning is not possible due to an error – where is this coming from?



There is another known situation, where the user gets the following errors:


RFC error: Planning cannot be performed for real-time InfoCube 0CP_SLSCA; see long text. [CRM_KPI_PLA 205]
Planning Services Error [CRM_KPI_PLA 203]


doc bps lock msg 3.jpg

This is not a locking conflict but is caused by the definition of the InfoCube. The cube is obviously defined as exclusive read cube – once the cube is in read mode planning cannot be performed. The cube needs to be in write mode so planning can be performed. This is further documented in the following SAP note:

555849 - Definition of exclusive read cube [https://service.sap.com/sap/support/notes/555849]


This is one of the weakness in the design of the CRM planning integration, caused by the very way BPS handles locking. The locks set by BPS will prevent to lock the same data in another BPS, or BW-IP session. Locks set by BPS will not prevent locking or updating of the data by core BW processes. For example, nothing prevents a BW administrator to change the mode of the InfoCube from Planning to Loading, while a user locks the same data by editing the Marketing Object.



There is a locking happening due to a data slice – what does this mean?



When accessing the planning layout the user gets the following errors:


RFC error: Data record is locked by data slice. [CRM_KPI_PLA 205]
Planning Services Error [CRM_KPI_PLA 203]

doc pbs lock data slice.jpg


The data slice is defined to the planning area, and is used to protect data of the InfoCube against changes. If the data slice overlap with the characteristic selection of the CRM Marketing Object planning cannot be performed. In general Data Slices are not supported from CRM planning integration perspective.


doc bps lock  data slice2.jpg


Further information about data slices can be found in the online.help:



If the data slice overlaps with the planning selection there is no other way than deactivating the same to enable BPS planning for the CRM Marketing object.

What if you could target each and every customer individually?


„Marketing today is working totally different compared to the last years“. Those were the opening words from Karina Herrmann on the SAP stage at CeBIT 2014. The SAP product manager outlined the challenge very nicely: “Many companies today have millions of customers. Capturing all interactions can lead to billions of records”. (source)


SAP’s answer for the future marketing is Customer Engagement Intelligence, a real-time solution that enables companies to instantly unlock sentiment and contact insights from both social media channels and company-internal sources to better target and influence prospects and customers in a variety of ways. With SAP Customer Engagement Intelligence you can analyse those billions of records in seconds and gain powerful insights into the customer’s behaviour.


Let’s have a look at a concrete example. A marketing manager wants to feel the pulse of the market regarding a new idea discussed over lunch with a colleague: a hybrid SUV. By using SAP Social Contact Intelligence, our marketing manager can drill down on the interests of millions of contacts, being customers, prospects or even anonymous contacts. Filters can be applied to limit the scope of the analysis to the US market, for example, and to the automotive industry only.


Segment-of-one Marketing Image1.png


The interests of all selected contacts are nicely displayed as a tag cloud (s. above figure). By selecting “SUV” and “Hybrid Car” we can focus our analysis only on those interests. The end result is a tailored target group that could be used in further marketing activities, like an email campaign. But we can go even further. By switching to the Sentiment Engagement tool, we can have a deep-drill on the qualitative dimension. We can understand what those people were doing on the social networks and on the company-owned forums. The solution allows our marketing manager to answer questions like: what is the overall sentiment on hybrid SUVs? what are people saying about hybrid cars? And the loop can be closed right here: you can pick individual posts and instantly react to them.


Segment-of-one Marketing Image2.png


But it is not only about the possibility of instantly reacting to a post.  SAP Customer Engagement Intelligence offers all the required information in order to know how to react. You can have a deep insight into each and every contact before engaging with them. Information such as contact level, company, role, activities and interests can be accessed directly within the tool.


Segment-of-one Marketing Image3.png


And it can become even more interesting: build-in predictive analytics algorithms can compute the buying propensity and assert how a target group will react to a particular product. The analysis can be run by marketing employees directly, without any support from IT.


If you want to learn more about SAP Customer Engagement Intelligence you can check out the solution overview page here or you can start a free cloud trial here.


Marketers are already familiar with dividing customers into target groups. Now it’s time for unique and individualized targeting.

Welcome to the future of marketing!

The Big Data Visualization Conundrum

This glorious age of big data is creating incredible opportunities for businesses to glean deeper and faster insights for more accurate and timely decision-making, thereby leading to improved customer experience and greater innovation.


Concomitant with this are several challenges. Organisations are overwhelmed by the volume, variety, and velocity (do check out Doug Laney’s original research note on the 3Vs of big data) of the data pouring into and across their operations. Businesses are barely able to store big data, leave alone understand it, or present it meaningfully. Traditional reporting-based BI tools are insufficient to unlock the value that big data represents, partly because they were never designed to analyse semi-structured or unstructured data in the first place.


Data visualization enables organisations to assimilate raw data and present it in a way that generates the most value. I'm proposing 3Cs that good data visualization should empower viewers with - coherence, context, and cognition. (Consequently, I hope that someday I'll be as famous as Doug Laney! I also thought about correlation and causation, but there seems to be a raging debate regarding the relevance of those two). Pairing big data with data visualization discovery tools empowers business users to be self-reliant and not depend on enterprise IT to mine data, perform ad-hoc analysis, or create one-off reports, for them. Going ahead, this democratisation of BI will serve real-time insights to business users directly, leveraging the growing abundance of mobile devices, and bypassing the conventional batch-processed-reporting route.


For those interested in knowing more about making big data more meaningful, I would recommend these articles on Wired and Forbes magazines.

Introducing Pixelplots

Pixelplots, a data visualization technique, are high-density multivariate landscapes of big data that empower the discovery of insights, without any aggregation of data. Simple analytics (bar and pie charts) are easy-to-use (as long as one isn't using a 3-dimensional pie chart, for example, or using a format that is incongruous to the objective of the presentation) but present highly aggregated data, with a limited number of data values. Pixelplots do have a learning curve (just like Treemaps), but are invaluable when it comes to visualizing the big picture without forfeiting granularity - almost like a multi-focal lens. Their fundamental premise is to represent as many data objects as possible on an electronic display at the same time, by mapping each data object to a pixel. The number of pixels mapped is therefore the number of data objects being considered. Key attributes of a data object can be mapped to its corresponding pixel’s colour, or horizontal and vertical axis ordering.


There has been some academic interest in pixel-oriented visualization techniques in the past, but I am yet to hear about an actual implementation of a Pixelplot in any commercially available data visualization / BI discovery tool. The reason for my fervent interest in this is twofold. Firstly, being a data visualization buff, I am fascinated by how much the Pixelplot actually accomplishes by visualizing a huge set - while simultaneously representing multiple attributes - of data objects. Secondly, I believe that Pixelplots perfectly complement SAP HANA, and they address big data’s “volume” problem more effectively than any other visualization technique in existence today. Keep in mind that almost all analytics on conventional dashboards aggregate, sample, or sort and selectively pick out the data they represent, and never represent the entire data set on a single screen.


Moreover, Pixelplots leverage the ever-increasing pixel densities of modern electronic displays. Apple’s “Retina displays”, for example, already pack up to 5 million pixels into a 15” laptop screen. On regular desktop displays, a Pixelplot measuring just 960 x 600 pixels can represent 576,000 unique data objects. Mobile device pixel densities are typically even higher than desktops, and by this virtue, the Pixelplot is mobile-ready. I am hoping that you are sensing my excitement!


Visualizing Consumer Engagement

To understand Pixeplots better, let's meet our primary user persona, Cari Smith. Cari is an Online Marketer with a consumer electronics company called Cool Electronics (fictitious). Do note that this use-case for the Pixelplot focusses on Marketing within CRM - based on the choice of KPIs, they can be used in any industry or line of business.


The Consumer Life Cycle

Nate Elliot from Forrester authored this magnificent blog post on the “Marketing RaDaR” , where he presents a powerful alternative to Elias St. Elmo Lewis’ AIDA (Awareness - Interest - Desire - Action) funnel model, which has been used for years as a tool to structure an organisation's sales. He proposes a model based on a four-stage consumer life cycle (rather than a funnel) – consumers first discover a product or service, then explore it greater detail; next they buy the product or service, and after purchase they engage the company from which they bought, as well as with other consumers. Based on my own interactions with Marketing Analysts (through user interviews while working on a next generation consumer engagement innovations powered by SAP HANA), this resonates perfectly with their mental model and their abstracted perception of their consumer base.


The Top Marketing KPIs

What are the KPIs that are of interest to Cari Smith (our primary persona, just clarifying as I've been bandying around several names in this post)? While there are several interesting articles talking about the most important marketing KPIs, Avinash Kaushik’s article lists out a ladder of marketing metrics, with Customer Lifetime Value at the very top. By definition, CLV is the amount of revenue or profit a consumer generates over his or her entire lifetime. To be truly insightful, CLV should not be merely historical (summing up revenue earned from a consumer till date), but be predictive (project how much revenue can be realised from a consumer over their lifetime). As consumers become more digitally networked and businesses move towards a single system of record for all consumer data, another (orthogonal) metric that could add tremendous value is an aggregated social activity score, something like the Klout Score. Another important dimension could be the time spent – how much time have consumers been in a certain lifecycle stage?


Based on all that has been discussed above, here is (finally!) a mock-up of a Pixelplot:



  • At the highest level, Cari sees how many consumers are in each of the four life cycle stages. Note that these life cycle stages are customizable - this could be substituted with stages of a customer loyalty program, for example, or need not be a progression at all (simple categories).

  • Every pixel represents a unique consumer, and every consumer at any given point is in some stage of the life cycle.


  • The colour of every pixel lies along a monotonic (blue) range of shades, and represents Customer Lifetime Value. The darker the shade, the higher the CLV.


  • The pixel x-ordering maps to the time spent by consumers in that particular life cycle stage. The farther they are to the right, the longer time they have spent.


  • The pixel y-ordering maps to the social score of the consumers - the higher they are, the more social activity they've recorded.


  • A compact Frequency Distribution of the Customer Lifetime Value (click on a bar in the stacked chart to filter) is available at the top, and the Conversion Rate from one life cycle stage to the other (over a default interval which can be altered) is displayed below the Pixelplot.


  • This is a mock-up created using Adobe Illustrator - the Pixelplot may not look this "artistic" actually!

At a glance, Cari can view her entire consumer base and see how they are divided into life cycle stages - this is the big picture. She can instantly identify consumer clusters, for example, those who have a high lifetime value and are more engaged socially - now this is all about pattern recognition, a task we homosapiens naturally excel at (although the machines are catching up!). This kind of insight is very relevant for businesses to satisfy the digitally connected and socially networked consumers of today.


Here is an example of an insight that Cari might astutely glean from the Pixelplot:

"Aha! Here is a large group of consumers who have a high Customer Lifetime Value, are significantly engaged socially, and have been in the Explore phase for a while. I should create a Facebook or Twitter promotion to get them to buy!"


Focus & Context

We talked about the big picture, but the USP of the Pixeplot is that it visualizes data at the atomic level (sans aggregation), in this case, value-by-value, at the individual consumer level. Cari can click on an individual pixel (since this would test anybody's psycho-motor coordination, as pixels are fast becoming invisible in modern displays, I am proposing a focus+context interaction that converts the cursor into a zoomed-in matrix of 9 x 9 pixels) to go into the details of specific consumers. Our old friend Tom Whitman (from the Teched Demo we ran in 2013) makes a reappearance in the screen below. This ability to instantly drill-down to the atomic level helps Cari plan and run 1:1 marketing campaigns, or simply to understand who some of her typical consumers are:


Filtering the data in the Pixelplot enables Cari to "thin" information effectively. She can choose what KPIs she wants to visualize, and also restrict the data set based on other attributes (demographics, channels, or loyalty). Altering the filters instantly reveals how many consumers match the filtered criteria:



Visual Segmentation

The idea of the Pixelplot isn't unique, but using it to demarcate market segments through direct manipulation, potentially is! Using algorithms like support vector machines we could automatically discover consumer segments and visualize them graphically, layered atop the Pixelplot. Alternatively, Cari could draw her own segments based on the insights she derives from the Pixelplot, either by using a pointing device or a stylus. Do note that this approach is very different from the traditional (rule-based) methods used to define segments - hence the term "visual segmentation". Cari sees her entire consumer base in one screen and is also able to identify patterns that either automatically emerge (based on the orthogonal metrics that are simultaneously visualized, like in the example above), or are arrived at by slicing and dicing (using the filters we talked about). For every segment (either suggested or defined), we could surface additional details through microcharts, all for better decision making. Cari could edit segments, or add a title/description for those that she wishes to retain. These are still early days - I am confident that the Pixelplot lends itself to several other exciting possibilities!



This was an introduction to Pixelplots and how they could be applied to visualize big consumer data, conduct analysis through slicing and dicing, and to define market segments visually (and directly!). Like I pointed out earlier, this was just one specific illustration and there is a lot more that can be done with them:


  • By incorporating panning and zooming, the Pixelplot can leverage the much-loved design principle of progressive disclosure -  zooming in reveals additional levels of detail about consumers progressively, akin to how online map applications (Google Maps, for example) work.


  • Using linking and brushing, selecting a certain consumer can reveal others who have similar behaviours and attributes - enabling a "look-alike" discovery of target consumers


A parting note - Pixelplots are not easy to implement, as pixels need to be ordered (they are not positioned absolutely as there might be instances of overlapping) in horizontal and vertical axes simultaneously, which needs a robust rendering algorithm to work efficiently behind the scenes. Also there might be performance issues at the UI layer to render such a vast data set. There is a workaround to this that I can think of - populate the pixels that are likely to correspond to higher / important values first. In the example above, this would mean that the darkest blue pixels (the consumers with the highest Customer Lifetime Value) appear first, followed subsequently by the lighter shades.


Thanks for reading, and do share your feedback and comments. I'd love to hear from you!

Dealing with prospects is a real challenge:

  • You often have only fragmented data of them
  • You often don’t know their interests, or you only have a little bit of information that can easily mislead you
  • Nowadays people quickly “run away” when feeling pushed - or even when feeling watched

On the other hand you have a lot of prospect data records available:

  • Prospects show interest on your website
  • They are active on Facebook, Twitter & Co

So certainly you want to reach them with the products of your company and win them as customers.

But how to measure the success of your marketing activities? How to really be able to follow-up on your actions you have taken so that you can improve them further?

First of all I would recommend to get the data of your prospects into SAP CRM

See also some blogs related to this topic:




Now I would like to explain how you can measure your success in a very simple way:

Phase 1: Set up

  1. Make sure that the responses of your prospects are tracked: Use the OData Service CRM_MKT_PROSPECT_ODATA to create
    interactions for your prospects per response.
  2. Make sure that for each of these responses the correct marketing campaign gets referenced in the response: Use the BAdI CRM_MKT_INTERACTION_OBJECT to implement the correct logic for referencing always the right campaign.
  3. Make sure that for each kind of response a score value is defined: Define this score value in Customizing -> Customer Relationship Management -> Master Data -> Business Partner -> Marketing Prospects -> Define Score for Interaction Objects. – Each response will then increase the score of the prospect.
  4. Decide at which score level you want to convert a prospect to an account (BP). - This is the time when you consider a prospect being converted to a customer.
  5. Decide also when you delete (= “give up”) a marketing prospect, for example after which time, after how many or which marketing campaigns at which score level.

Phase 2: Execution

  1. When evaluating the right target groups for your campaigns consider also the interactions (including the ones that reflect the responses). With doing this you can be more specific, and you can address really the right people in the right way. Because you not only consider their  more or less static master data but also their behavior and their reactions to your marketing activities.

Phase 3: Measurement

  1. Analyze based on your campaigns (now with detailed data about the number and kind of responses) and based on the “prospect-to-customer” conversion rate the overall effectiveness.

More details about what is offered in the area of nurturing and targeting of marketing prospects can be found in SAP Note 1896854.

Many companies not only analyze what people talk about their products, but started also engaging in a more interactive way with them. A conversational style has evolved. Even one-to-one interactions with the persons active on the corporate Facebook, Twitter & Co pages become normal, especially in the B2B business.


It is good to ideally have a friendly atmosphere and let your followers and social contacts communicate with you in the more modern pull-mode.


However you should still decide at the right point of time to get the data of your social contacts into SAP CRM. Otherwise you cannot easily track your marketing activities with them, neither you can measure your success.


How should you then be able to decide if your activities with your social contacts have a measurable effect at all?


Of course it doesn’t make sense to upload all social contacts into SAP CRM:

  • Not all of them are relevant for you
  • You are not sure if they are open for being addressed by additional marketing activities


Why not using the principles you already apply on the company’s web site also in the social world?


Let your social contacts decide at what point of time their data gets stored in the SAP CRM system; for example as soon as they show interest in a newsletter, demo or event. When taking this active step they can verify for themselves if they actually want to provide their data to you, and if they accept that a more focused marketing will probably start.


With this you can keep the friendly and interactive communication style you started with.


In any case you can benefit from the following when storing social contact data in SAP CRM: You can connect the activities of your social contacts in the social world with the (internal) data in SAP CRM, and by doing this you can get a more holistic view on them.


Go ahead as follows:

  • Get the data into SAP CRM, including their social user data, for example their Facebook accounts.
Tipp: You can create marketing prospects based on the social contact data, using the OData service CRM_MKT_PROSPECT_ODATA.
  • Get the social user IDs from the respective social network(s). These are technical IDs that identify uniquely your social contacts per network, and can be used to connect data from the social world with the internal CRM world.
Tipp: Use the report CRM_MKT_PROSPECT_SMI_UPDATE to update the social user data in SAP CRM with the IDs from the social network(s).

Recently in a customer project we got the requirement that customer needs the assignment block "Membership Activities" could only be visible for some user under a given period. The authorization for that user must be explicitly assigned by administrator with period clearly defined. For example, the user XXX could only be allowed to see that assignment block between 10:00AM ~ 10:30AM this Friday.


Since the SAP standard authorization concept could only support time based condition, we have to do some custom development:


1. We create a new UI component and put it to a new work center "Authorization Center".


We put this new work center to business role LOY_ADMIN so that only Loyalty administrator could be able to assign / delete time based authorization.



Admin could choose the user via search help and click Assign button to grant authorization.


we use a custom table to store the authorization detail. This is ok since in customer company, normal user could only use webclient UI to access CRM with no SAPGUI installed. The authorization could be deleted by admin at any time if needed.


2. for UI component LOY102H_MSH, we enhance the view controller below, add a post exit on method DETACH_STATIC_OVW_VIEWS to filter the view

CUMSHMA.LOY102H_MSH/MSHMemberActivities by checking the authorization. The technical implementation could be found here.


The current user and current time is compared with authorization detail stored in custom table. If no authorization,

the assignment block will be hidden with a warning message displayed.


This question is very typical, and the decision that needs to be taken is fundamental.


Following you find some hints that hopefully help to take this decision:


A) In case you deal with prospect data that contains only a few attributes, for example the e-mail address only, it is often not allowed to create such prospects as business partners in the CRM system. The CRM system itself can store such data, and it is also possible to configure the data exchange via CRM Middleware in a way that such prospects are not replicated to a connected SAP ERP. But usually organizational guidelines exist that need to be followed for creating a business partner in the CRM system. With an e-mail address only it is often not allowed to create a business partner.

In this case I would recommend to create such prospect data as marketing prospects in SAP CRM.


B) Besides it can make sense to explicitely separate the data of prospects where you don't know at all yet if you can start a real business relation with them; if they are interested at all. They perhaps only registered on the company's web site or talked about the company's products on Facebook or Twitter. But this doesn't mean that they have a quite serious interest in the products, or that they would even buy some of them at some point of time. In many countries the data privacy regulations are quite strict: It is not allowed to store data from persons, with which no business relation exist.

In this case I would recommend to create such prospect data as marketing prospects in SAP CRM, and convert them to business partners as soon as a real business relation starts.


C) In case the company deals with prospects in a very close and extensive way from beginning on, somehow not dealing with prospects that are not considered as being quite serious about their company, creating them as business partners in the CRM system can make more sense. Only business partners can be used in activities, leads, and opportunities, to mention some examples for business transactions that are based on the one-order framework of SAP CRM. So if such business transactions need to be created in SAP CRM for the prospects from beginning on you have to create such prospects as business partners in SAP CRM.


Some final remarks:


If the decision is taken to use marketing prospects for storing prospect data in SAP CRM, be aware of their short life-cycle: Either convert marketing prospects as soon as possible to business partners, or delete them if you can't establish a real business relation with them.

The purpose of marketing prospects is to support you in a very defined and controlled phase of time in your marketing activities.


I would recommend to define exactly what needs to be reached by marketing, how this can be reached, and in which time frame this needs to be reached.

This helps you to always have an overview of the prospects, and the company's success with these prospects.

I regularly present the new SAP HANA based application “SAP Customer Engagement Intelligence” (CEI) to customers
and partners. One application of the CEI suite is called “Audience Discovery and Targeting” (ADT) and used for prospect and customer segmentation.


The question that arises in the audience is typically:


“In which cases do you recommend utilizing the new SAP HANA based application CEI-ADT rather than the High Volume Segmentation capabilities of a SAP CRM on HANA when it comes to large numbers of segmentation objects (i.e. several millions of customer records)?”


Below table should provide you with some insights into the key differentiators of the two solutions to help you deciding the best fitting solution approach for your requirements.



One of the most compelling arguments for HANA based applications is certainly performance related. To get a feel for numbers and the throughput achievable with the new solution, product development group did an E2E performance test with a sample of 15 million customer records.


The process starts with loading the data with SAP SLT from the source system to the HANA DB. Based on that sample a customer segmentation process is
initiated using Country/ City as filter criteria. Next steps are target group creation from the segmentation model and target group member replication to a
connected SAP CRM system.




Impressive, isn't it?

Companies increasingly want to reach ALL their prospects with marketing.

Often they get new prospect data through web site registrations, or increasingly as followers on Twitter & Co, as soon as they enter the social media space more seriously. Such prospect data is usually of quite low data quality. Only a little bit of data – often only the e-mail address - is available.

Many companies hesitate to create business partners in the CRM system based on such low quality data. But still they would like to benefit from that data and reach such prospects with their marketing campaigns.


Starting with CRM 7.0 for EHP3 SP02 functionality is provided that allows to easily get such marketing prospects into SAP CRM, and nurture and target them with marketing campaigns.


With SP03 (available now) additional features are provided.



  • Calculating a score based on the type of response from the prospect   
  • Creating and changing of prospect data from any data source with using an OData service; a duplicate check can be incorporated


Check out SAP Note 1896854 (Social Media Integration in Marketing) for details.

There are 2 different tracking options(++ or ##), tracking via target site and tracking via intermediate site, if you use ## as the tracking option, the actual URL which is found after the first attribute '?' along with attributes and tracking variables will be encoded with escape characters. That is, the sepcial characters in

URL will be replaced with escape characters(like %2F, %26...)). This is the standard way of URL generation.


An URL contains multiple parts.
        a.) Actual URL
        b.) Attributes
        c.) Tracking variables.


You can find the below link (after encoding) as an example for tracking URL generation:

<a href="http://website.xyz.com/site/TEST/tracking?openagent&target=https:%2F%2Fxyz.com%2Fxyz%2Fk2%2Fj.php%3FAT=down%26ED=121273952%26EF=MA%26UUID=1128228232%26SHA2=UUfdo-bx5x0lCEwI3hVlvBJWkkUMGci8K86N76ebMVA%3D%26RT=MiM3
&amp;MIG=6A13EE4A0305E701E1000000C0A80A60&amp;URLGUID=07D1B64AEA6DC167E100000011A80A60" target="_blank">Session


The first part is not encoded. The first variable is added with '?'. The remaining parts of the URL(Actual URL, Variables and Tracking Guids)
are encoded. The first part is not encoded because, when the users click on URL, they will be taken to this site. From this site, the redirection
will happen, which is why all the special characters are replaced with escape characters.


(Just to confirm this, type gmail.com in your browser, you will get a new URL with two parts:

a.) Google default site, where there is no encoding done.

b.) The second part that starts after account. The special characters in the second part will be replaced with encoded values.

This is just an example of how the URL has to be generated. This is the universal standard of URL generation.)

Configuring SAP CRM TFM (Trade Fund Management)

Trade Funds Management enables planning, tracking, accruing and controlling of Trade funds. All trade funds are processed through fund Management via linking between the TF’s (Trade funds) and TP’s(Trade promotions/Trade activities). Funds are used to control trade spends at different level of customer, product and spend type. This helps manufactures to manage distribution and consumption of Funds.

Funds Management is tightly integrated with other modules like

1.       TFM- Set up Funds plans and Funds

2.       TPM- Create TP’s with valid fund plans

3.       ERP Integration- Processing of orders against TP’s

4.       FI posting – Accrual run and accrual integration back to TP through Check book

5.       Claims Integration – All types of claim process

Funds Plan:- It’s a framework for the funds setup and defines Validity period, currency and other attributes that all funds have in common.  You can create Funds Plan as shown below through web UI.



SPRO->CRM-> Funds Management->Funds Plans and Funds ->Define Funds plan types



Assign Fund types as below:-



Define Fund Transaction type as below.



Fund:- A fund is an object that allocates budgets for a specific customer-product-sales org(Expense type combination)

A fund is identified by: Funds Plan, Fund Type and Attributes (Account, product, individual hierarchies and territory).



Budget: It represents an initial fund amount which can use or consumer by TP’s.

Budget Distribution is done via Budget posting, budget update or budget transfer.

You can update the budget as using the transaction type: Budget update



Budget Posting is done with status – Approved. Otherwise it won’t appear in the Funds checkbook.





Similarly you can do Budget Transfer to exchange budget between funds.

Generally these funds are created on Business partner/ Business partner hierarchy / Product / Product Hierarchy which can be consumed in the relevant TP’s. This will be determined by fund attributes which are assigned to Fund type in the configurations.

For example: Fund type- Off Invoice, Fund attributes are Account and product category.



Finally you can link Fund plan to Trade promotion.


Saying the right things,  in the right places, is how to make an impact at every stage of the customer lifecycle

Content marketing has taken the world by storm and nine out of 10 organisations now use it.

So it’s time to take your content strategy one step further by tailoring it all to the the different stages of the customer lifecycle.

Not only that but your content needs a lifecycle of its own, according to the Content Marketing Institute, which has come up with four ways to rethink your content execution and take advantage of the new content life cycle:

  1. Structuring your content marketing strategy as a holistic system that allows you to engage more effectively with stakeholders across different social networking sites.
  2. Opening up content contribution to more employees in the business to provide more opportunities to connect with customers in social media, and extend your online reach.
  3. Delivering fresh, compelling and timely content that engages users and keeps visitors returning to your company website and social media spaces.
  4. Listening to what your target audience are saying online and optimising your content and content strategy based on the insights you gather from them.

Once you’ve got these processes in place for your content you can then look at what the key stages of the customer lifecycle are and what content you should be providing for each.

Content at Key Stages of the Customer Lifecycle

The key stages of the customer lifecycle vary depending on what model you look at but whatever they call them, they all mean pretty much the same thing.

Stage 1 - Unaware

At this stage you have to get your prospects to notice you, so you need to provide content that they perceive to add value and you need to provide it in the places they want to see it. Nowadays that’s mainly online and social media now produces twice the number of leads that tradeshows, telemarketing, direct mail or PPC do.

What should the content do?

It should start conversations and prompt people to want to find out more about you, so make sure that you have the content pathways in place to lead them where you want them to go; and the processes in place to capture their details for your marketing lists.

What type of content should I use?

Blogs, social media updates and shares.

Stage 2 - Interested

They’ve noticed you and they’re starting to engage with you, so what now? You need to take the content to the next level and show how you understand their business pains, know ways to solve them and are an active member of online communities focused on improving this issue.

What should the content do?

It should convince prospects that you are a trustworthy company interested in building a relationship with them in order to make their life better/easier; not just to sell your products and services. 78% of people believe that organisations that provide good content are interested in doing just that.

The type of content you should use:

Blogs, social media updates and shares, webinars, product and service reviews, email campaigns.

Stage 3 - First-time customers

They converted! You won them over with your great content and they made their first purchase. Time to move on and find more new customers - wrong! Too many businesses focus all of their efforts on winning new customers at the detriment of the ones they have already got. Now’s the time to show them that you weren’t just interested in making that sale but really do want to help them do their job better.

What should the content do?

Now’s the time that the content needs to focus on showing them they were right to choose you. Deliver more value-adding educational content that can help them and that starts to position you as a thought leader in their minds, so that you begin to become the first company they think of when needing your products and services. 

The type of content you should use :

Blogs, social media updates and shares, webinars, product and service reviews, email campaigns, videos.

Stage 4 - Regular customers

They’re convinced and are now buying and engaging regularly and generally appearing on your marketing radar often. Time to up the ante and deliver content that they’ll not be able to keep to themselves as they’ll be so impressed with how well you’ve understood their needs.

What should the content do?

Make everything personalised and relevant to deepen their trust in your brand even further. You’ve already shown them you understand what they needed and have the products and services that can deliver it, so now your content should cross-sell and upsell. Combine everything you’ve learnt from them in the first three stages about what they are interested in using everything you know about the industry and your business, to create content that convinces them you are the only company to trust to help them meet their needs.

The type of content you should use:

Blogs, social media updates and shares, webinars, product and service reviews, email campaigns, videos, company website, case studies, slideshares, roundtable events.

Stage 5 - Brand advocates

You’ve done it - you’ve reached the holy grail of marketing! You've delivered the right content in the right place at the right time and turned this customer into a loyal fan that spreads the word about your brand for you.

Your social media updates are being liked, shared and retweeted. Your blogs are being linked to and discussed. Your products and services are being voluntarily reviewed and recommended to others. So now use your analytics and see which has the most reach and gets the most engagement and create more of the same.

What should the content do?

Reinforce the great opinion that these customers have of you and be fun, educational and oh so sharable.

The type of content you should use:

Blogs, social media updates and shares, webinars, product and service reviews, email campaigns, videos, company website, case studies, newsletters, communities.


These are just a few things to consider when it comes to lifecycle marketing. These and other practical ideas are summarised in the free Eguide What is lifecycle marketing. http://bit.ly/1gmvI52



Some time we need company image to be display on survey.

So below given are few steps to add image in survey.


Steps to add  image into survey:-


  1. Go to transaction CRM_SURVEY_SUITE.
  2. Select the required application (Marketing in this case) as :-


3) After selection of required survey from application, click on Maintain Survey Attributes button.


4) After click on this button following window will appear.


5) Now we have to copy the standard function module CRM_MKTCA_SURVEY_MKT_PBO to our Z FM so that we can make required changes into it.


Add following code into this Z (PBO) FM.

CONSTANTS: lc_link_to_picture TYPE string

   DATA: lt_javascript   TYPE survy_t_javascript,
ls_javascript   TYPE survy_s_javascript,
lt_svy_on_event TYPE survy_t_on_event,
ls_svy_on_event TYPE survy_s_on_event.

* <Create and insert JavaScript>
   ls_javascript-name     = 'insertImage'. "#EC NOTEXT
   ls_javascript-language = 'JavaScript1.3'. "#EC NOTEXT
   ls_javascript-script   = 'function insertImage() {'. "#EC NOTEXT
   CONCATENATE ls_javascript-script
  'var nodeDiv = document.createElement(''div'');'
  'nodeDiv.setAttribute("align", "center");'
  'var nodeImg = document.createElement(''img'');'
INTO ls_javascript-script. "#EC NOTEXT

   CONCATENATE ls_javascript-script
  'nodeImg.setAttribute("src", "' lc_link_to_picture '");'
  'nodeImg.setAttribute("alt", "");'
INTO ls_javascript-script. "#EC NOTEXT

   CONCATENATE ls_javascript-script
  '(nodeDiv, document.getElementsByTagName(''body'')[0].firstChild);}'
INTO ls_javascript-script. "#EC NOTEXT

   APPEND ls_javascript TO lt_javascript.

   CALL METHOD ir_survey_values->javascript_add
       it_script = lt_javascript.


  ls_svy_on_event-question_id   = 'html'.                       "#EC NOTEXT
  ls_svy_on_event-answer_id     = 'body'.                       "#EC NOTEXT
  ls_svy_on_event-name          = 'onLoad'.                     "#EC NOTEXT

  CONCATENATE ls_javascript-name '()' INTO ls_svy_on_event-call_function."#EC NOTEXT

  APPEND ls_svy_on_event TO lt_svy_on_event.

  CALL METHOD ir_survey_values->on_event_add
      it_on_event = lt_svy_on_event.

6) Assign your Z FM to Callback PBO as:-


Function Module CRM_SVY_EXAMPLE_DYNAMIC_PBO has code example for this.

And also contains some other code examples.

Hope it will help...



Harish Kumar

I noticed that still several customers use marketing attributes to store opt-in / opt-out information they receive from their customers.

Consider to use marketing permissions instead.

This functionality is available in CRM 2007, and higher.

The advantage is that segmentation and campaign execution consider marketing permissions in standard.

Besides you can define opt-in / opt-in regulations per country, region, and even per communication channel, for example e-mail. This is done in Customizing.

Check out SAP Note 1574230 for details.


Filter Blog

By author:
By date:
By tag: