Learn how to develop an end-to-end process to synchronize market data foreign exchange (FX) rates in SAP Insurance Analyzer from SAP ERP Central Component (ECC) using the Data Load Layer (DLL).
Key Concept
Data Load Layer (DLL) is the new strategic framework to update market data, such as exchange rates and interest rates, the Source Data Layer (SDL), and the Result Data Layer (RDL), in SAP Insurance Analyzer. DLL is a technology based on SAP Business Warehouse (SAP BW) that provides standard Business Application Programming Interfaces (BAPIs) to export data from a set of SAP BW DataStore objects (DSOs). Though updating each target object in SAP Insurance Analyzer requires a different BAPI, the fundamental architecture is similar. This article is focused on using DLL to update foreign exchange rates.
SAP Insurance Analyzer is a relatively new module for which I found very few available implementation materials. During my recent SAP Insurance Analyzer implementation for a customer, I designed and developed a Data Load Layer (DLL) process to sync up foreign exchange (FX) rates from SAP ERP Central Component (ECC) to SAP Insurance Analyzer. Having encountered numerous confusions and challenges, I decided to share my knowledge and experience from a technical perspective.
Note
The same DLL framework that I describe in this article would also work for SAP Bank Analyzer.
Currency conversion is a key requirement during an accounting implementation. As an accounting subledger, SAP Insurance Analyzer needs to have its own FX rate table updated from the source system ECC, where FX rates are maintained, to allow the local-to-group currency conversion. Because the FX rate table is client dependent, to synchronize FX rates across different SAP clients becomes a challenging task. There is no standard BAPI between the ECC client and SAP Insurance Analyzer client. Instead of creating a custom program, we found that the DLL framework provides preconfigured objects (InfoObjects, DataStore objects [DSOs], and BAPIs) to accomplish this.
What is the DLL framework and how does it fit in the overall architecture? DLL is an SAP BW-based middleware used for loading data from another SAP or non-SAP system into SAP Insurance Analyzer. DLL was originally designed for SAP Bank Analyzer. SAP Insurance Analyzer inherits this technology from SAP Bank Analyzer as its own primary and strategic data provisioning method. DLL provides preconfigured business content to expedite the development.
The core components of DLL include several out-of-the-box DSOs and standard BAPIs. Each DSO maps to a target structure in SAP Insurance Analyzer and provides input to a corresponding BAPI. The BAPI is called inside the SAP BW transformation to create entries in the Change Notification Service (CNS) in SAP Insurance Analyzer. CNS is used to collect data entries and then update the target all at once.
The architecture and data flow to synchronize market data FX rates from ECC to SAP Insurance Analyzer using the DLL framework are illustrated in Figure 1.

Figure 1
End-to-end architecture to synchronize market data FX rates from ECC
There are different ways to load data from TCURR and TCURF tables into SAP BW (Landing DSO in Figure 1). Because SAP Insurance Analyzer has its own exchange rate source tables in ECC (with the prefix /BA1/) and these tables also include additional market-data-specific fields, SAP has provided standard programs on the ECC side to sync up exchange rates and rate factors as well as market data fields for SAP Insurance Analyzer.
For this reason, the approach outlined in this article has followed the best practice. A custom SAP BW extractor is required to extract data from the SAP Insurance Analyzer exchange rate source tables. FX rates flow through the extractor and land in the staging DSO in SAP BW. An enhanced DSO cloned from the landing DSO is created with its own transformation and Data Transfer Process (DTP). Within the transformation, a standard BAPI is called to create change pointer entries in the CNS in SAP Insurance Analyzer. Data Load Function, which is an important step in DLL, is then executed to read new entries from CNS and create a mass update in the market data exchange rate target.
Because this process involves multiple SAP clients, one of the confusing points is in which client each configuration and development is done. I have summarized the configuration, development, and implementation tasks by client in Figure 2. Step-by-step details come next.

Figure 2
Configuration and development key tasks by the SAP client
Step 1. Execute program GLE_AL_BA1_F4_FX_RATES_COPY in transaction code SE38 to copy FX rates from table TCURR to /BA1/F4_FXRATES. This program can be scheduled to run based on a company-defined frequency (daily or monthly).
Step 2. Execute program GLE_AL_BA1_F4_FX_CUST_COPY in transaction code SE38 to copy exchange rate factors from TCURF to /BA1/TF4_FXCVFCT. Execution of this program is a one-time job.
Step 3. A generic SAP BW DataSource needs to be created from transaction code RSO2. Figure 3 shows that this DataSource is extracting data from table /BA1/F4_FXRATES.

Figure 3
Create a custom data source from transaction code RSO2
Step 4. The two Exchange Rate Factor fields reside in a different table, /BA1/TF4_FXCVFCT. Both fields need to be appended to the same extractor from transaction code SE11 (Figure 4). To populate these two fields during data extraction, a user exit should be customized from transaction code CMOD. The customization logic should look up a corresponding exchange rate factor for each exchange rate and populate it on the same record.

Figure 4
Append exchange rate factors to the new SAP BW extractor
Step 5. Keeping a staging layer with pre-transformed data is part of SAP BW best practices. You need to create a copy of DSO /BA1C/DMDFXR (Figure 5). Make the new DSO as the landing DSO and /BA1C/DMDFXR as the target DSO to store transformed data. The trick is that the out-of-box object mapping for /BA1C/DMDFXR in the SAP Insurance Analyzer client can remain the same. To improve load performance, both DSOs should be defined as write-optimized.

Figure 5
Clone the preconfigured DSO
Step 6. Create a transformation with straight mapping, an InfoPackage, and a Data Transfer Process (DTP) to update the landing DSO.
Step 7. Create a transformation and DTP to load from the landing DSO to the enhanced DSO. In the end routine of the transformation, the BAPI’s import parameters are mapped to the SAP BW objects. A BAPI is called to create change pointers in CNS in SAP Insurance Analyzer. A sample code in the end routine is shown in Figure 6.

Figure 6
End routine in the transformation to call standard BAPI
Step 8. Create a process chain in transaction code RSPC to automate the data load (Figure 7).

Figure 7
Create an SAP BW process chain to automate the DSO upload
Step 9. In the landscape definition screen, the column of DLL target needs to be flagged for the SAP Insurance Analyzer client. Follow menu path Financial Services > Insurance Analyzer > Basic Settings > Global Settings > Define System Landscape for Bank Analyzer (Figure 8). In my example, client 100 is the SAP BW client and client 200 is the SAP Insurance Analyzer client. The DLL target is flagged for the SAP Insurance Analyzer client. When the BAPI is executed from the SAP BW client, it reads this system landscape table to determine in which target client to create change pointers.

Figure 8
Define the system landscape with the DLL Target marked
Mapping the BAPI interface to a DSO at the field level is preconfigured in the SAP Insurance Analyzer client. No additional mapping is required unless you need to add new fields. Use transaction code SPRO and navigate to Financial Services > Insurance Analyzer > Infrastructure > Data Load > Default Mapping to configure custom mappings, if required.
Step 10. Use Data Load Function to read from CNS and DSO to update market data FX rates in SAP Insurance Analyzer. Follow menu path Financial Services > Insurance Analyzer > Infrastructure-> Data Load > Data Load Processes > Define Loading Process In BI (Figure 9). This step allows users to create a process chain in SAP Insurance Analyzer client to automate the loading process. The look and feel is the same as creating an SAP BW process chain except that a new process type FS Data Load Function should be added in the process chain to update the FX market data.

Figure 9
Create a process chain in SAP Insurance Analyzer to use the Data Load Function
When a new FS Data Load Function step is created in the process chain, parameters need to be filled in (Figure 10). Export Object Type should always be FX. Under the Objects tab, the Mkt Data Area and Exch. Rate Cat. fields can be populated in order to filter the data extraction.

Figure 10
Enter the exchange rate variant inside the Data Load Function
Yan Zhu
Yan Zhu is a senior consultant at MSG Global Solutions, Inc. She specializes in SAP Business Warehouse (SAP BW) and SAP Insurance Analyzer. She is a functional and technical lead with numerous implementation experiences. She is also certified in SAP HANA.
You may contact the author at yan.zhu@msg-global.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.