Learn how to view SAP BW data directly in mySAP CRM without running manual queries. This technique, which involves Easy Enhancement Workbench and Analysis Process Designer (APD), allows you to view supplementary customer information (e.g., how much revenue a particular customer generates for your company) within a mySAP CRM dialog screen.
Key Concept
Easy Enhancement Workbench, a standard development tool, allows you to add data to mySAP CRM in a step-by-step wizard approach (no ABAP programming needed). Easy Enhancement Workbench automatically creates databank tables, screens, and application logic to enhance mySAP CRM data from sources you specify, such as SAP BW.
You probably already know how to load data from your CRM system into SAP Business Information Warehouse (BW) with the help of generic or SAP-based extractors. BW consolidates, enriches, and stores that data into InfoProviders such as InfoCubes and ODS objects. But did you know that you can set up your mySAP CRM system to show SAP BW data automatically?
For example, imagine your call center. A customer calls and an Interaction Center agent takes the call. Your company uses telephone integration, which provides a dialog in CRM, so the agent can see all of the activities for this customer. In addition to business partner master data, you want the system to shows sales volume data from SAP R/3 Sales and Distribution (SD) so the agent can see how much revenue the customer generates for the company. Normally you would have to run a BW query in either Microsoft Excel (Business Explorer [BEx]) or a Web portal report to view these SD results. Wouldn’t it be great to implement the SD data into your CRM dialogs without conducting a manual query?
I will explain the two-step process to set up mySAP CRM and SAP BW to share data so you can add SAP BW information to your CRM dialogs — without running a specific report. With this technique, BW data automatically fills tables you set up on the CRM side. When you add this process to your process chain, you completely automate your retraction. The system flushes tables on the CRM side and refills them with fresh data every time your process starts.
The first step involves integrating tables to directly receive BW data into CRM with Easy Enhancement Workbench, a standard tool within mySAP CRM. In the second step, I will show you how to populate CRM tables with SAP BW data using Analysis Process Designer (APD). You perform this two-step process for all new areas of BW that you would like to transfer to CRM. Once you understand the setup it only takes a few minutes each time you want to transfer data. This example involves mySAP CRM 4.0 and SAP BW 3.x and assumes that you work with the data in Web- or Excel-based reports.
Step 1. The CRM Task
Log on to your CRM system and enter transaction code EEWB to enter the Easy Enhancement Workbench dialog (Figure 1). The system displays the main screen with a default project folder. All tasks in transaction EEWB are called projects. To create a new project to populate tables, right-click on the project folder and select Create Project.

Figure 1
Create a project in Easy Enhancement Workbench
The system brings up the Create Project screen (Figure 2) in which you enter the Project Name, Description (keep it close to the purpose of the task), and the Package for the data transport. When you click on the OK icon
, the system prompts you to specify a Workbench transport request (SC2K900859) and a Customizing transport request (SC2K900861), as shown in Figure 3. You use the transport later in the process to share data between mySAP CRM and SAP BW. It is very important to enter the transport request for both systems; otherwise, you cannot transport your items correctly into test or production systems.

Figure 2
Enter information about your project

Figure 3
Enter a Request/Task for both Workbench and Customizing
Now I’d like to show you how to create tables in mySAP CRM that SAP BW can fill automatically. I will create a project and add my enhancements to mySAP CRM. In CRM terms this is called an extension. Right-click on the project you created and select Create Extension (Figure 4). In the following screen, enter a technical name and description for your extension. For Business Object and Extension Type, enter analytical data storage (ADS
) for both fields (Figure 5).

Figure 4
Create an extension for your CRM project

Figure 5
Enter the details for the CRM extension (enhancement)
The CRM Retraction Target Wizard, a standard CRM tool, starts automatically when you click on the OK icon in Figure 5. This tool guides you through the rest of the process. Follow the dialog steps in the wizard. In step 2 of the wizard (Figure 6), the system asks you for a Scenario Name. This scenario name becomes the name of the table where the system stores your data. A five-digit limitation does not leave much space for naming conventions. I always call my BW_ZBW01 extensions ZBWn (where “n” stands for an incremental number).

Figure 6
Define the scenario in step 2 of the CRM Retraction Target Wizard
Note
SAP uses the word retraction to signal that the process is not an extraction from mySAP CRM to SAP BW, but the other way around (SAP BW to mySAP CRM).
Next, the wizard prompts you for the BW system from which you would like to retract (extract) data. Select your connected BW system from the drop-down menu. The systems communicate and exchange information without further dialogs. After you complete this step, you have to define the table fields in CRM (Figure 7). Unlike a regular table definition, you define the CRM table using BW InfoObjects. (Remember, you are retracting data from BW.) In my example, I’ll keep it simple by retracting data from the SD InfoCube. I selected the query to extract (Z_OSD_CO3_MON_OVERVIEW) and specified the characteristics and key figures to extract as shown in Figure 7.

Figure 7
Retract data to CRM from the SD InfoCube
In my CRM dialog, I’d like to see the net values and quantities generated by each business partner. Additionally, I am interested in who the sold-to party is for my business partner. I add these InfoObjects by typing in their names (such as 0SOLD_TO) or using the drop-down function (F4) in the next screen of the wizard by clicking the last part of the input field. The choose from pick list icon next to 0QUANT_B appears. After I select it, the system shows all available InfoObjects. In the last screen in this section of the wizard, confirm your settings by clicking on the Complete button (Figure 8).

Figure 8
Click on the Complete button to generate the table ZBW01
After completing the wizard, the system generates the tables in CRM. In addition to table ZBW01, the system generates a shadow table ZBW01_S. BW uses this table to store the data while it flushes the defined table. After generating the tables, the system indicates the success status in the Status field (Figure 9). When Completed Successfully appears, you have finished your work on the CRM side and have tables waiting for data.

Figure 9
Check the table generation status under the Header Information tab
If you have trouble creating the tables, you may have run into a known bug. For more information about this issue, see the sidebar, “Known Bugs with Certain BW Updates” below.
Step 2. The BW Task
In this step I will show you how to populate the mySAP CRM tables with the BW APD process. Log on to your BW system and enter transaction RSANWB. Alternatively, you can navigate to this area by clicking on Data Mining>Analysis Process Designer. APD Workbench contains several folders. I will use the first folder, Fill CRM Attributes, because this is a default folder available in all systems. Right-click on the folder and select Create (Figure 10).

Figure 10
Create a new APD process
This creates a new APD process in the right pane. Now you can choose to extract data for the CRM table from an InfoProvider (such as an InfoCube or a DataStore object) or from queries. In my example, I use a query to provide data. Move the query icon by dragging it from the Data Sources area and dropping it into the right process pane. Select the query you’d like to use for retraction and provide a description (Figure 11). In this case I named my query Z_OSD_CO3_MON_OVERVIEW. I always use the technical query name as the description to keep things simple.

Figure 11
Drag and drop the query icon into the process area and name your query
After dragging the query icon to the design area, a screen appears. In the Extended Settings tab in this screen (Figure 12), you can create a packaged data retraction to partition the extraction load by a selected characteristic (e.g., 0SOLD_TO). This is a great enhancement that allows you to partition the amount of data to extract. In the case of a query with a large number of rows (there is no 64K row restriction as in Excel), this process prevents you from extracting everything into memory at once and stalling your system memory. Instead, the system extracts chunks of data serially. To save each individual step, I save whenever I create a bit of the APD process.

Figure 12
Partition the extraction load by characteristic
When saving the first time, you have to provide a description and technical name for your APD process (Figure 13). Enter a description for the APD task in the Description field and click on the save icon in the APD menu bar. The system prompts you for a technical name. Enter a technical name (e.g., Z_CRM_SD_EXTRACTION
) and save the process.

Figure 13
Description field and technical name for APD process
In this example, CRM used the business partner InfoObject 0BPARTNER by default instead of the customer InfoObject 0CUSTOMER from SD. Therefore, you must create a join to switch from business partner to customer. This is a simple task using APD’s join functionality.
First drag the data source icon
for the characteristics and enter the InfoObject 0BPARTNER
in the screen that appears. Click on the OK icon. Then drag the join condition icon
to your APD process. Your process should look like the one in Figure 14. Connect the objects by clicking on the red triangle on the data source icon. Keeping your mouse button down, draw a connection into the upper input arrow of the join. Repeat this with your query object into the lower input arrow. Now create the join condition by double-clicking on the join object and maintaining the join condition as shown in Figure 15. Select all the InfoObjects you would like to see at the CRM side.

Figure 14
Create the join by drawing a connection from the InfoObject to the connection icon

Figure 15
Select the InfoObjects you want to see in CRM
Finish the process design by adding the CRM system to the process. Move the CRM icon
from the data targets to your process. The system asks you for your CRM system. Provide that information, then log in to the CRM system (you need a valid CRM user name) into which you would like to retract the data (from step 1). After completing automatic realignment (where BW retrieves the tables available for APD processes), select the settings in Figure 16. Data Target represents the analytical storage. For Subobject, I enter the name of the table I created in step 1, ZBWO1
. Click on the Attributes tab and move the fields you want BW to populate from right to left (Figure 17).

Figure 16
Enter the information for the data target ZBW01

Figure 17
Select the attributes you want BW to populate in CRM
Now connect your join condition with the CRM object as you did in the previous step by dragging a connection line from the join to the CRM data target and double-clicking on the field assignment icon
. This allows you to map BW InfoObjects to your destination table objects (Figure 18).

Figure 18
Map BW InfoObjects to ZBW01
You’re done! Activate the APD process by clicking on the activate icon
, then clicking on the execute icon
in the APD toolbar. Alternatively, you can schedule the APD process by clicking on the schedule icon
.
Known Bugs with Certain BW Updates
For certain BW Service Package updates, the InfoObject that stores key figures does not translate correctly into the CRM table. For example, instead of generating a decimal 17 precision 2 field, the system generates a decimal 9 precision 2 field and CRM does not indicate this. When you start to populate the table from BW, you receive errors. To correct this bug, follow the instructions in SAP note 865097.
In other cases you may run into a bug when transporting the project. SAP is still working on this issue. After transporting data into the CRM production server, you may not see the project as shown in Figure 9. In this case, the system generates the tables and the transport activates all the necessary items, but you do not see anything, although the process completed successfully. In this case, you can view the generated tables by going to transaction SE16.
Joerg Boeke
Joerg Boeke is an SAP NetWeaver BW solution architect and senior consultant working with BIAnalyst GmbH & Co.KG, with 19 years experience in SAP NetWeaver BW, having worked on it since SAP BW 1.2A. He offers significant expertise in the SAP NetWeaver BW reporting area, including design, data integration, data visualization, performance optimization, and the cleanup of existing SAP NetWeaver BW systems. He is the author of SAP BW 7.x Reporting - Visualize your data.
You may contact the author at Joerg.boeke@bianalyst.de.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.