How To Create Loyalty Programs In Sap Crm On Demand
For those of you who have already tried to get data out of Loyalty component in SAP CRM, this short document is maybe too late. For those of you just starting, please, keep in mind you are really lucky!
As a short introduction we have to say that for BW consultants used to work with SAP ERP, working with SAP CRM for the first time will require a short period of adjustment. You will have to get used with new objets, new names and a different table structure. The good news for you is: some of us have already walked this path!
This document will describe how to create a SAP CRM Loyalty generic datasource with the main fields necessary to perform key analysis related to loyalty in SAP NetWeaver BW (SAP BW). The goal is to explain step by step how to perform the following activities:
- Create a view based on SAP CRM Loyalty tables;
- Create a generic datasource based on that view;
- Include new fields from other tables in the generic datasource;
- Create an ABAP routine to populate the new fields.
We will use the following SAP CRM Loyalty tables:
May 09, 2017 How To Create Loyalty Programs In Sap Crm Vs Salesforce. The Salesforce cloud is an on-demand customer relationship management (CRM) suite offering applications for small, midsize and enterprise organizations, with a focus. Please note that once you make your selection, it will apply to all future visits to NASDAQ.com.
:
- LOYD_PT_TXN – Loyalty Management Point Account Transaction;
- LOYD_MEM_MEMBER – Loyalty Menagement : Database Table for Member;
- LOYD_MSH_MEMS – Loyalty Membership Table;
- LOYD_MA_SPECATTR – Table for member activity specific attributes;
- LOYD_MA_GENATTR – Table to store member activity generic attributes;
- CGPL_PROJECT – Project Planning: Attribute Table for Project Headers.
Step 1) Create a View based on LOYD_PT_TXN table:
First we must create a view with the main loyalty tables, here we will use only the LOYD_PT_TXN table, which stores main loyalty transactional data, as amount of points, transaction reason, point type, among others. Fields from other tables will be inserted later by the Appended structure.
In the SAP CRM system, go to transaction SE11 to create the view. Select the “View” option and enter a technical name for your view. In this case, our view will be the “ZCRM_LOY_01.” Click Create.
Select the view type. In this case we are creating a database view.
In view maintenance screen, in tab “Table/Join Conditions”, we will include the tables used to do the join and the relationship between them. Once we are using only one table, the relationship will be done through the GUID field.
In “View Fields” tab select the fields you would like to include in the view through the “Table Fields” button. We will select all fields from LOYD_PT_TXN.
Save and activate the view.
Step 2) Create a generic datasource based on view ZCRM_LOY_01:
Go to transaction RSO2, select the “Transaction Data” option and enter the generic datasource technical name. Here we will use the name ZCRM_LOY_TRANS. Click Create.
In the “Create Datasource” screen, click the “Extraction from View” botton, enter the application component in which the datasource will be located, the descriptions and the view that the datasource will be based. Save the datasource.
Select the fields that are visible and which are hidden. Hidden fields are not available for extraction. In our case we will keep all fields from ZCRM_LOY_TRANS datasource visible.
Select the fields that will be available for selection in the InfoPackage during extraction for PSA. Once again, we will select all fields.
Save the datasource.
Now we will include the following fields from other SAP CRM loyalty tables that will be used in the datasource:
In t-code RSO2, enter the datasource name and choose display.
Double-click the extraction structure to view the datasource structure.
We will now add the new fields in this structure. Change to edit mode and click on “Append Structure …”
Enter a name for the Appended Structure and select Continue.
Enter the name of the fields in “Component” column and the component type of each one in the “Component Type” column.
Save the modified structure. Return to the extraction structure and check that the inserted fields now appear in the structure.
How To Create Loyalty Programs In Sap Crm On Demand Examples
Now we need to unhide the fields modified in the extraction structure, otherwise it will not appear on the extraction.
Go to RSA6, locate the ZCRM_LOY_TRANS datasource on the application component hierarchy and choose change datasource.
All fields from ZCRM_LOY_TRANS datasource are displayed. The modified fields have a tick mark in “Hide Field” column. Remove the tick mark in the column so the fields become visible on the extraction. Save the datasource.
Step 3) Populate new fields using a BADI:
Now we will populate the appended fields via BADI.
I recommend that you see SAP Note 691154 which brings information about user exits with BADI interfaces.
The first step is to check if there is already a BADI RSU5_SAPI_BADI definition on your system. To do this, go to SE18 and enter “RSU5_SAPI_BADI” at “BAdI Name” field and choose Display. If the BADI definition already exists you will see the details of the BADI, otherwise you will need to create this definition.
To create the BADI definition, enter “RSU5_SAPI_BADI” at “BAdI Name” field and choose Create.
Enter Implementation Name as ZRSU5_SAP_BADI and choose OK.
Enter a description for the implementation and click activate. Once activated the BADI implementation is created and we will populate the fields.
In t-code SE19, enter the name RSU5_SAP_BADI on “Classic BAdI” and click on display.
To access the methods section, go to the tab “Interfaces” and double-click on the Implementing class name.
In the Methods tab, create a new method with the name of the generic datasource created, in our case ZCRM_LOY_TRANS.
Click the “Parameters” button and enter the parameters as follows:
Returning to methods screen, double click on the method ZCRM_LOY_TRANS to enter the ABAP code:
method ZCRM_LOY_TRANS.
***Declare the structures with the fields of the tables we are using:
types: begin of ty_loyd_mem_member,
GUID type LOYD_MEM_MEMBER–GUID,
MEMB_ID type LOYD_MEM_MEMBER–MEMB_ID,
end of ty_loyd_mem_member.
***Declare an internal table and working area with the above types:
data: tl_loyd_mem_member TYPE STANDARD TABLE OF ty_loyd_mem_member,
wa_loyd_mem_member type ty_loyd_mem_member.
types: begin of ty_loyd_msh_mems,
GUID type LOYD_MSH_MEMS–GUID,
MEMS_TYPE type LOYD_MSH_MEMS–MEMS_TYPE,
STATUS type LOYD_MSH_MEMS–STATUS,
STATUS_REASON type LOYD_MSH_MEMS–STATUS_REASON,
LAST_TXN_DATE type LOYD_MSH_MEMS–LAST_TXN_DATE,
end of ty_loyd_msh_mems.
data: tl_loyd_msh_mems type STANDARD TABLE OF ty_loyd_msh_mems,
wa_loyd_msh_mems type ty_loyd_msh_mems,
t_loyalty type table of ZOXCD00132.
types: begin of ty_loyd_ma_specattr,
REF_GUID type LOYD_MA_SPECATTR–REF_GUID,
PROCESS_TYPE type LOYD_MA_SPECATTR–PROCESS_TYPE,
AMOUNT type LOYD_MA_SPECATTR–AMOUNT,
CURRENCY type LOYD_MA_SPECATTR–CURRENCY,
RETAIL_STORE_ID type LOYD_MA_SPECATTR–RETAIL_STORE_ID,
end of ty_loyd_ma_specattr.
data: tl_loyd_ma_specattr type STANDARD TABLE OF ty_loyd_ma_specattr,
wa_loyd_ma_specattr type ty_loyd_ma_specattr.
types: begin of ty_loyd_ma_genattr,
GUID type LOYD_MA_GENATTR–GUID,
PARTNSHIP_EXT_ID type LOYD_MA_GENATTR–PARTNSHIP_EXT_ID,
ACTIVITY_DATE type LOYD_MA_GENATTR–ACTIVITY_DATE,
PROGRAM_GUID type LOYD_MA_GENATTR–PROGRAM_GUID,
end of ty_loyd_ma_genattr.
data: tl_loyd_ma_genattr type STANDARD TABLE OF ty_loyd_ma_genattr,
wa_loyd_ma_genattr type ty_loyd_ma_genattr.
types: begin of ty_cgpl_project,
GUID type CGPL_PROJECT–GUID,
EXTERNAL_ID type CGPL_PROJECT–EXTERNAL_ID,
OBJECT_TYPE type CGPL_PROJECT–OBJECT_TYPE,
end of ty_cgpl_project.
data: tl_cgpl_project type STANDARD TABLE OF ty_cgpl_project,
wa_cgpl_project type ty_cgpl_project.
FIELD-SYMBOLS: <fs_loyalty> type ZOXCD00132.
***Copy the incoming data into another internal table. C_T_DATA contains all the extracted records.
t_loyalty[] = c_t_data[].
clear: tl_loyd_mem_member, tl_loyd_msh_mems.
if not c_t_data is initial.
***Read the table fields for all t_loyalty entries:
select GUID MEMB_ID
into table tl_loyd_mem_member
from LOYD_MEM_MEMBER
FOR ALL ENTRIES IN t_loyalty
where GUID = t_loyalty–MEMBER_GUID.
sort tl_loyd_mem_member by GUID.
select GUID MEMS_TYPE STATUS STATUS_REASON LAST_TXN_DATE
into table tl_loyd_msh_mems
from LOYD_MSH_MEMS
FOR ALL ENTRIES IN t_loyalty
where GUID = t_loyalty–MEMBERSHIP_GUID.
sort tl_loyd_msh_mems by GUID.
select REF_GUID PROCESS_TYPE AMOUNT CURRENCY RETAIL_STORE_ID
into table tl_loyd_ma_specattr
from LOYD_MA_SPECATTR
FOR ALL ENTRIES IN t_loyalty
where REF_GUID = t_loyalty–ACTIVITY_GUID.
sort tl_loyd_ma_specattr by REF_GUID.
select GUID PARTNSHIP_EXT_ID ACTIVITY_DATE PROGRAM_GUID
into table tl_loyd_ma_genattr
FROM LOYD_MA_GENATTR
FOR ALL ENTRIES IN t_loyalty
where GUID = t_loyalty–ACTIVITY_GUID.
sort tl_loyd_ma_genattr by GUID.
if not tl_loyd_ma_genattr[] is initial.
select GUID EXTERNAL_ID OBJECT_TYPE
into table tl_cgpl_project
from CGPL_PROJECT
for all entries in tl_loyd_ma_genattr
where GUID = tl_loyd_ma_genattr–PROGRAM_GUID.
endif.
***Once the new fields are populated, associate them again to c_t_data, which will be passed on to BW system.
sort tl_cgpl_project by GUID.
loop at c_t_data ASSIGNING <fs_loyalty>.
read table tl_loyd_mem_member into wa_loyd_mem_member
with key GUID = <fs_loyalty>–MEMBER_GUID BINARY SEARCH.
if sy–subrc = 0.
<fs_loyalty>–MEMB_ID = wa_loyd_mem_member–MEMB_ID.
endif.
read table tl_loyd_msh_mems into wa_loyd_msh_mems
with key GUID = <fs_loyalty>–MEMBERSHIP_GUID BINARY SEARCH.
if sy–subrc = 0.
<fs_loyalty>–MEMS_TYPE = wa_loyd_msh_mems–MEMS_TYPE.
<fs_loyalty>–STATUS = wa_loyd_msh_mems–STATUS.
<fs_loyalty>–STATUS_REASON = wa_loyd_msh_mems–STATUS_REASON.
<fs_loyalty>–LAST_TXN_DATE = wa_loyd_msh_mems–LAST_TXN_DATE.
endif.
read table tl_loyd_ma_specattr into wa_loyd_ma_specattr
with key REF_GUID = <fs_loyalty>–ACTIVITY_GUID BINARY SEARCH.
if sy–subrc = 0.
<fs_loyalty>–PROCESS_TYPE = wa_loyd_ma_specattr–PROCESS_TYPE.
<fs_loyalty>–TICKET_NUMBER = wa_loyd_ma_specattr–TRAN_SEQ_NUM.
<fs_loyalty>–AMOUNT = wa_loyd_ma_specattr–AMOUNT.
<fs_loyalty>–CURRENCY = wa_loyd_ma_specattr–CURRENCY.
<fs_loyalty>–RETAIL_STORE_ID = wa_loyd_ma_specattr–RETAIL_STORE_ID.
endif.
read table tl_loyd_ma_genattr into wa_loyd_ma_genattr
with key GUID = <fs_loyalty>–ACTIVITY_GUID BINARY SEARCH.
if sy–subrc = 0.
<fs_loyalty>–PARTNSHIP_EXT_ID = wa_loyd_ma_genattr–PARTNSHIP_EXT_ID.
<fs_loyalty>–ACTIVITY_DATE = wa_loyd_ma_genattr–ACTIVITY_DATE.
<fs_loyalty>–PROGRAM_GUID = wa_loyd_ma_genattr–PROGRAM_GUID.
endif.
read table tl_cgpl_project into wa_cgpl_project
with key GUID = <fs_loyalty>–PROGRAM_GUID.
if sy–subrc = 0.
<fs_loyalty>–PROGRAM_ID = wa_cgpl_project–EXTERNAL_ID.
<fs_loyalty>–PROGRAM_TYPE = wa_cgpl_project–OBJECT_TYPE.
endif.
endloop.
endif.
endmethod.
Save the code. The ABAP code in the above method will be executed when we run the infopackage to load the data from the datasource.
You can now test the extraction at transaction RSA3 and see if everything is working accordingly.
New SaaS and Social CRM Solution Provides Gateway to the Cloud for SAP Install Base
SAP today announced its Sales OnDemand is Generally Available. Sales OnDemand is the newest software as a service offering, and in contrast to SAP's history of delivering broad business suites, this on-demand product is laser focused on sales people and their need for a social injection to sales force automation (SFA).
SAP made its cloud debut last year with Business ByDesign—a broad software as a service ERP suite—and like that much delayed initial release, Sales OnDemand has seen its false starts and re-starts. The social sales solution was initially developed on the Frictionless Commerce platform, however, migrated to the Business ByDesign framework late in the game. While a costly move that delayed product launch, the technology switch looks like a smart move as many of the future line of business On Demand solutions will inherit ByDesigns broad suite of business processes, SDK, improved NetWeaver architectural support and facilitated integration with SAP Business Suite 7. The Frictionless platform will continue to support e-sourcing but not anything else.
Sales OnDemand is targeted at the software company's on-premises ERP install base—those customers who aren't ready for a wholesale transition to the cloud, but are looking to extend their solutions with a cloud option that lowers cost and increases flexibility with a hybrid delivery model. Inching into the cloud, steadily adopting increased cloud services over time and coexisting on-premise and on-demand business apps is a trend that will push SAP and its customers into cloud adoption pursuant to a systemic plan; while at the same slow cloud CRM pure plays such as Salesforce.com from further penetrating SAP's customer base.
A Social User Experience
In addition to a new product in a new delivery model, Sales OnDemand brings some much needed creative thinking from SAP. The company says this solution is part of its new 'people centric' applications strategy. While I think Microsoft already coined that phrase years ago, one look at the product reveals a big shift from anything SAP has done before. In typical social fashion, the user interface (UI) sports consumer-like concepts such as live feeds and social streams integration which correlate to sales activities to highlight relevant information and simplify content consumption. This design may finally deliver the ease of use that counters the all too frequent sales adoption challenges.
The UI is far more interactive than any SAP page past or present – with horizontal navbar menus extending across the top, vertically stacked icons with quick-access functions extending down the left column pane and vertical menus with hover-over pop-out displays extending down the right column pane. The dynamic left and right side panes use slider controls which further permit users to drag and drop objects (such as employees, products and tags) into the body area for quick insertion. Overall, the UI minimizes the number of screens necessary to complete sales processes, however, does require up front training.
The social adaptation is impressive – and takes several lessons from Facebook, Twitter and other popular social networks. For example, the Feed view is predominantly displayed and acts as a subscription based messaging system to push relevant updates to extended groups. Virtual teams can subscribe to feeds based on the context of CRM objects such as accounts and opportunities as well as follow people and groups. Text entry within the Feed window is social-like, for instance, to enter a customer name into a Feed update, simply precede the customer name with the @ sign and then select the auto-complete feature. The customer name then displays as a hyperlink which permits either a hover-over display of salient information or drill-down to the account profile. To direct message a colleague within the Feed tool, precede the employee name with the * symbol, and select the auto-complete listing.
Feed settings permit users to configure behaviors such as to automatically accept follow requests, designate the types of events or updates to trigger feed messages (i.e. inform me of new customer activities, but don't inform me of customer address changes) or receive end of day email feed summaries. This is helpful in filtering out noise that otherwise clouds more important messaging. Another social feature is custom tagging – or folksonomies. Tags are easy to insert and link keywords to accounts or other CRM objects to group or categorize items for retrieval. Individual feed records can be Flagged for future recall, Stared as Favorites or reposted (think retweet) in order to push a Feed message to followers. A few mash-ups such as integration with location based services like maps are also present.
In future releases, I hope we'll see more advanced social capabilities such as social monitoring, integration with social networks, and integration with data services to append sales contacts with behavioral and preferences data from the social web. I'd also like to see some ability to rate or rank content in order to deliver the most useful content first.
Analytics are simple and few, but include the basics of (closed) revenues, sales pipelines and win/loss analysis. Reports permit semi-flexible configuration, including designating rows and columns, filtering by key fields and choosing sort selections. Re-configured reports can be saved with a new name and added to personal dashboards. Like other views, the Report Explorer dashboard allows users to drag and drop the reports they want to see on to the canvas.
Mobile CRM is supported on iPhone, iPad and Blackberry devices. Notably absent is Windows mobile. Mobile device text entry is accelerated with features such as drag and drop placement, symbols preceding names, auto-fill and type-ahead capabilities.
Outlook integration includes updates to accounts, contacts, activities and appointments from either the desktop browser or mobile device. Interestingly, the Outlook integration includes a new pane which displays Contacts, Feeds and Shelf data (favorites, flagged items, etc.) From within the Outlook Contacts view, SAP delivers additional information such as Opportunities, Leads and Activities. The fairly complete data snapshot eliminates a lot of the toggling back and forth between Outlook and the OnDemand SFA app. It also acts as a convenient offline tool.
Overall, functionality is quite good for an initial release. Key capabilities missing at this early stage include more advanced SFA or CRM features such as workflow automation; more sophisticated capabilities such as quota/compensation management, quoting and sales order processing by sales staff; analytics which include OLAP, data mining and predictive modeling; and API's to better support mixed (and non-SAP) environments.
Sales OnDemand Not For Most
Despite the SFA product's strength, Sales OnDemand is limited to the existing SAP ERP install base. To use Sales On Demand, you must also be using SAP ERP—an on premise solution—in order to support key back-office integration with customer files, customer (contract) pricing, inventory/products, quotes and sale orders. Despite Sales OnDemand being developed on the Business ByDesign framework, the app does not integrate with ByDesign—and therefore Sales OnDemand cannot be used in an all-cloud environment. This rather surprising limitation holds back Sales OnDemand from growing outside the SAP ERP install base.
While innovative, the on demand app also carries the limitations of a first version release. For example, conversation threading resembles more of a bulletin board system than a multi-tiered online social network conversation and the overall process scope is quite small. Nonetheless, melding consumer technologies into mission critical business applications is an iterative process that takes some time.
Pricing is based on a named user subscription pricing model, and in the range of $40 to $80 USD per user per month depending on the number of users and length of contract. The next set of On Demand line of business apps will include Career OnDemand and Travel OnDemand among others.
Look for Sales OnDemand to accomplish two key goals for SAP. First, it will slow the predatory tier 2 and SaaS CRM players such as Salesforce.com from making continued inroads to its install base and second, it will provide the existing SAP ERP install base a gateway solution to the cloud, and in doing so seed a path to evolve its customers into hybrid (private/public) delivery models.
Concluding Remarks
While the product is really an extension or at best a point solution, Sales OnDemand actually earns the often touted but seldom earned moniker of being a disruptive technology release. This is not an SFA or sales tool with social features; it is a built from the ground up social selling productivity engine. It is designed to maximize sales team collaboration, benefit the sales person more so than the sales manager, intelligently integrate social streams as part of each sales pros working processes, operate on mobile and tablet form factors, and leverage simple analytics.
But to achieve these goals the company will have to execute in five areas. First, with the cloud market SAP needs to show more innovation. Sales OnDemand is a good start, but in reality, SAP hasn't introduced anything not already pioneered by others. Second, continue to improve the user experience. I personally think Silverlight should be abandoned as it provides no advantages over HTML5 and several disadvantages associated with browser heavy plug-ins and downloads. Further, the promise of Silverlight to deliver ubiquitous browser and device support appears unlikely. Third, increase integration with the broader ByDesign suite. Sales OnDemand is hamstrung to SAP ERP and deserves to be part of a total cloud solution. Fourth, the company must show meaningful updates in frequent (preferably quarterly or no more than semi-annual) iterative releases. Customer expectations for first version releases are reasonable; they become less so with maturity. Lastly, expand the scope of the product footprint and continue to enhance the Studio SDK in order to accelerate the ISV/developer ecosystem. A robust ecosystem is essential to scale customer acquisitions and achieve market success.
Categories:Sales
Tags: SAP
Permalink: www.crmsearch.com/sap-sales-ondemand.php
Author: Chuck Schaeffer
Share:
Comments (6) | — Comments for this page are closed — |
Jeff Whitman |
Your point that SAP must show some innovation is on the money. It's understandable although not justifiable that the company originally trash talked the entire software as a service movement in a transparent attempt to protect their cash cow software licensing business. Once they realized they couldn't downplay or spread SAAS FUD they ultimately came around to play in this market, however, are merely following the innovation delivered by start-ups years ago. I recall then CEO Kagermann telling a reporter that SAP intends to change the on demand marketplace. In reality, the on demand marketplace changed SAP. Sales On Demand sounds interesting, but even with this product release they are boldly going where a large number of SAAS vendors have already gone. They need to show they're not an old dog incapable of learning new tricks. |
TylerT |
We use SAP's Business Suite and after the investment we've made there is more likelihood that our politicians will extinguish our massive debt than my company will switch business systems. We're now investigating sales on demand and so far like what we see. This type of solution allows us to protect our investment and still leverage the cloud where it makes sense. |
Rob Chapman |
I'm glad to see SAP has gotten with the cloud/saas/social media program. It's hard for these big companies to get out of their comfort zone and take on new technologies but SAP is a great company and once they jump in, they generally slog their way to a leadership position. |
Harold McGladrey |
I think the recession accelerated a systems procurement trend that was well underway. Companies are tired and increasingly less willing to continue with their money sucking rip and replace software projects. SAP recognizes that IT purchases are now more incremental, and that offering a cloud extension lowers barriers. It's a good strategy. |
Frank James |
Your perspective that sales on demand looks good but is limited in scope is a complete role reversal for SAP, whose history is to build business software which does everything but is breathtakingly complex. If all this is true, this software must come from SAP's not-so-evil twin brother. Looking forward to checking it out. |
Chris Nichols |
At the 2011 CeBIT technology conference in Germany, I got to hear SAP co-chairman Jim Hagemann Snabe describe Sales OnDemand as 'Facebook for the enterprise'. IMHO, after hearing him speak, I think he understands the need to simplify business applications, and in fact cited Apple as a prime example. But describing Sales OnDemand as Facebook for the enterprise is an odd statement that doesn't do the new app any favors and clearly shows that he's not well schooled in the social arena. He made another statement that caught my attention, which was 'Within three to four years, 80% of usage of business applications will be on mobile devices.' He commented, 'I have a tablet and I rarely use a PC myself today.' I agree that mobile is clearly on the way up, but largely for CRM and front office applications, and not as much for ERP. I think SAP has underestimated the cloud while possibly overestimating mobile. |