SAP S/4HANA Service Reporting Framework (RFW)
With SAP S/4HANA Service, several new transactional business objects were introduced in SAP S/4HANA. All these transactions are based on the so-called One Order Model, which is one of the foundations of the VDM layer for Service and Solution Business. In the recent years, we’ve seen a high focus on analytical, reporting, or search capabilities which essentially all have one goal: scan the high volume of transactions in a customer system and extract either aggregated figures or transactions with given attributes. The rise of SAP HANA has emphasized this even more; it is now possible to run transactional and analytical applications on the same data basis and fetch search and analytical data using the new ABAP-based CDS technology that includes all needed features for security and authorization. As a consequence, the Reporting Framework had to be enabled for SAP S/4HANA as Smart and Dynamic Central Search tool for all One-Order Objects in Q2C and ASM
Why You Can’t Use SAP CRM Reporting Framework in SAP S/4HANA Service
Though there are already quite a few apps and features in SAP S/4HANA Service that use the SAP CRM Web Client UI, SAP S/4HANA cannot use the CRM Reporting Framework (RFW) 1:1 for the following main reasons:
- Different Data model between CRM objects and CRM S/4HANA objects
- CRM Master Data are replaced by S/4HANA Master Data
- Not all CRM features of the application processes are supported in SAP S/4HANA.
- Furthermore, some attributes available in SAP CRM data models have been replaced by Sales attributes re-used in SAP S/4HANA Service.
- Likewise, the CRM master data, such as business partner, product (replaced by material), IBASE (replaced by equipment), and functional location have been replaced by SAP S/4HANA’s master data, therefore requiring data extraction to utilize SAP S/4HANA’s master data extractors
- Transaction-related master data is replaced by SAP S/4HANA’s master data objects, such as IBASE, and functional location.
- Database access in SAP S/4HANA is based on the technology SAP ABAP CDS instead of the OPEN SQL statements
- The basic tool for synchronization and distribution of data between different components of an SAP CRM solution, SAP CRM Middleware, is not available in SAP S/4HANA, hence the CRM Bdoc cannot be used any more either.
These technological and conceptual differences mean that if you want to continue using the Reporting Framework functionality in SAP S/4HANA, you need to switch to the new SAP S/4HANA Reporting Framework based on the Core Data Services (CDS) technology.
SAP S/4HANA Reporting Framework: Overview
RFW is a smart and Dynamic Central Search tool for all One-Order Objects in Q2C and ASM with main characteristics:
- All Advanced searches of One-Order WebUI applications use this tool in On-Premise deployment
- Used for data determination by related objects, Product proposals & Where-used list of One-Order objects and Interaction center (IC),..
- Used by Account management and interaction History in On-Premise deployment
- Extensibility of any One-Order application is automatically supported by this tool
- Authorizations of all business users are supported out-of-the-box via reading the user authorization profiles on the fly and include it in SELECT statement
- Archiving Search of all One-Order objects in On-Premise deployment is also supported
From the technical perspective, SAP S/4HANA Service enables the following:
- Take leverage of facilities provided by SAP S/4HANA CDS views
- Reduce database access from two classical steps and merge them into one database access
- Reduce the number of database calls to fetch results
- Run transactional and analytical applications on the same data basis
- Get rid of object-specific locator list classes and make the framework generic to handle all scenarios.
Main Characteristics of the Reporting Framework
Selection Level and Flexibility
Currently, SAP S/4HANA RFW doesn’t support all the features and the flexibility of the SAP CRM RFW. The most important characteristic with regard to the flexibility of the SAP CRM RFW is that the application that calls RFW can explicitly decide about the selection level/focus (header, item) during the creation of an RFW instance. This can be done in two ways:
- By setting an RFW instance parameter IV_ITEM_SELECT, IV_ONLY_MAIN_ITEM
- By setting the suffix “I” after the selection field’s name (like STATUS_I) and by adding an entry in the table CRMC_REPDY. Without the suffix I, the selection semantics will focus on the header level by default by selecting only documents where the status is set on header.
This flexibility is still not supported by the new SAP S/4HANA RFW. The selection focus is currently controlled by the entry in table CRMS4_RF_REPDY based on the value “U” of “CALL FOR WHERE”. For example, if you take the entry of the field STAT_OPEN, the selection semantics will consider the item status by header selection. In this case, the selection will also consider items which are still open. In that case, all header documents will be selected which include any open item. This feature is enabled through the value “U” of “CALL FOR WHERE”. This logic cannot be changed by customers as it is delivered by CRMS4_RF_REPDY as a standard.
Mapping for Result List Structures
A general mapping layer in the object layer of SAP S/4HANA RFW is not available where the application can register their result structure. Also, it’s not possible to map the entities of the application result structure to the entities saved on DB tables and provided by the CDS technology.
In the RFW, this was done inside the object layer API CRM_BSP_OIC_1O_READ_FROM_RF, so that the applications just needed to register the name of the result structure and RFW provided the result structure with the right content and value.
SAP S/4HANA Reporting Framework: Details
Technology and Technical Aspects
- Leverage the performance improvements provided by CDS views: In the SAP S/4HANA RFW, the database access is based on the CDS view technology instead of using Open SQL statements on hard-coded index tables and joining all tables needed for the requested data.
All Customizing based on the SAP CRM Middleware tables is no longer available since the middleware technology is no longer in use by SAP S/4HANA Service and Solution Business. Thus, the corresponding functionality that was based on such tables doesn’t exist anymore. This includes, for example, adding a sorting feature that allowed to add a Customizing entry for sorting (i.e., sorting by a special date field for the IC application), so that the result list was fetched and sorted based on that date field. This feature is currently not available.
Search Functionality: Main Features
- All advanced search features use the new RFW where the DB access is based on ABAP CDS.
- Extensibility is supported via the key user tools (the Custom Fields and Custom Logic apps) for all search ABAP CDS views that are registered for extensibility (transaction SCFD_REGISTRY). All presales and service transactions are supported.
- Authorization (both standard and customer) is also supported out of the box by reading the user authorization profiles on the fly and including the authorization data into a SELECT statement.
In the archive search, the following objects are supported:
- Service order
- Service confirmation
- Service request
- Service contract
- Service quotation
High-Level Architecture and Design of SAP S/4HANA Reporting Framework
To make the Reporting Framework compatible with SAP S/4HANA standards, the following aspects have been considered:
- Access databases only using ABAP CDS
- Reduced number of DB calls to fetch results
- Leverage the advantages of CDS views (DCL, associations, and so on)
- Get rid of object-specific locator list classes and make the framework generic to handle all scenarios
- One-step logic to filter and select data instead of two steps used by SAP CRM RFW (one for Guid selection and one for the result list).
The main goal of the concept and design of SAP S/4HANA RFW is to use a metadata-driven modeling instead of the coding-driven modeling.
To fulfill this goal, the following control tables are designed:
- CRMS4C_RF_CDSV: where a business object is represented by a CDS view
- CRMS4C_RF_REPDY: based on metadata (design time data), the suitable access is generated at runtime.
CDS View Design of Database Access Layer for Service Data
The database access layer for service data has the following CDS view design:
- Main model for the service header search:
- Detailed model of the search at header level:
- Detailed model of the search at item level:
Objects Supported in SAP S/4HANA Reporting Framework
The SAP S/4HANA RFW supports the following business objects and applications:
- Service order
- Service quotation
- Service confirmation
- Service contract
- Solution quotation
- Solution order
- Service request
- Service order template
- Knowledge article
- Inbox search for above objects
- Basic search for business partner account fact sheet and interaction history
All these search features support authorization functionality and custom field extensibility that are based on the SAP S/4HANA extensibility technology using CDS.
Enable Reporting Framework for New Field
Any new field, for which you want to enable the Reporting Framework, should be available in the database table. For example, for service scenarios, the flat database tables CRMS4D_SERV_H and CRMS4D_SERV_I are used. For opportunities, CRMS4D_OPPT_H and CRMS4D_OPPT_I are used.
Once the fields are available in the database, they need to be exposed in the relevant header/item and the association views. For service objects, the views are the following:
These views need to be linked to the BUS object type in the Customizing table CRMS4C_RF_CDSV:
The field should be given the selection logic, and this logic needs to be entered in the Customizing table CRMS4C_RF_REPDY:
Here, the field name should be in the first column and should be unique for this Customizing. The second column should have the exact field name from the CDS view, and the third column is the method name for dynamic access, i.e., the actual select logic.
The dynamic access method will be defined in the Customizing view CRMC_REPDY_DB:
After these steps are done, some coding implementation is still needed in the corresponding dynamic method to enable the Reporting Framework to search for this field. This implementation was not needed by the SAP CRM RFW, it was dynamically generated based on the control entities in the tables above. This feature of codeless enabling of RFW for generic search is currently not supported in the SAP S/4HANA RFW.
The application team should then enable this field in the WebClient UI screens for the object search results.
Status Handling and Reporting in SAP S/4HANA Replaces Status Common Concept in SAP CRM
The Customizing activity Optimize User Status for Queries in SAP S/4HANA describes the status management and user status optimization for reporting. To view the respective documentation, call up the transaction SPRO and go to >> Service>> Transactions>> Basic Settings>> Status Management>> Optimize User Status for Queries:
Enable Reporting Framework for New User Status
If you want to enable SAP S/4HANA RFW for a new user status, perform the following steps:
- Create a new extension field for the user status. The extension field must have type as Text with length1.
- In Customizing, create a user status profile and assign user status records to this profile. To do this, call up the transaction SPRO and go to >> Service>> Transactions>> Basic Settings>> Status Management>> Define User Status for Status Profile.
- Using the transaction SM34, open view CRMS4VC_STAT_LC, create some custom life cycle status value in order to map the user status created in previous step.
- Under User Status mapping for Reporting, add the user status profile and a corresponding user status to the field LCStaValue (custom life cycle status).
- The Customizing setting in the previous step will enable the drop-down list with values for the custom field created in step 1. You need to enable this field in WebClient UI object page, Search and Result list.
- Make sure that the new field is available in the flat DB table and respective views, and that the views are linked to the BUS object in CRMS4C_RF_CDSV.
- Make sure that the dynamic selection logic is available in the Customizing table CRMS4C_RF_REPDY and CRMC_REPDY_DB. If it’s not available, add it.
If you want to know more about the One Order status component, read this blog.
Partner and Partner Function Handling
The Customizing activity Optimize Custom Functions for Queries describes how to optimize the partner and partner function for queries and reporting. You can view the documentation under >> Service>> Basic Functions>> Partner Processing>> Optimize Custom Partner Functions for Queries: