Skip to Content
Technical Articles
Author's profile photo Priya Ratan

SAP Fiori Elements : CDS And Overview Page-Part 1

  • There are many SAP blogs discussing about the functionality of CDS Views and SAP Fiori Elements but my motivation to write this blog was to give a brief idea on the end to end architecture of SAP S/4 Hana Embedded analytics and create a blog which acts as a roadmap from creating CDS Views to the development of a SAP Fiori Element ..
  • In this blog , i will be using Overview Page and type of card will be an Analytical card to give a brief idea on the basics of the development of end to end S/4 Hana analytical application.
  • Part 1 – CDS Views and Odata services activation.
  • Part 2 – Development of Overview page with 1 Analytical cards with navigation to Multidimensional query (SAP Fiori Elements : CDS And Overview Page-Part 2).
  • Part 3 – Development of Overview page with multiple analytical with navigation to Multidimensional query (Yet to be published).
  • Part 4 – Creation of a Global filter for a SAP Fiori Element ( here an Overview Page) and linking the global filter with multiple cards in Overview page.(Yet to be published).


Introduction about the Blog:

In this series of blogs , I will try to cover up end to end development using SAP S/4 Hana Embedded Analytics using CDS(Core data services-> and a SAP front end UI solution i.e SAP Fiori Elements..

The blog series will be helpful for people seeking help in :

  1. Developing analytical reports using CDS Views.
  2. Activation of OData services
  3. Development of Overview Pages (Analytical Cards) using Business application studio 
  4. Development of Overview Pages using parameters and with Intent Based navigation( i.e Navigation to Multidimensional queries, Webdynpro apps, URLs etc )

SAP S/4 Hana Embedded Analytics provides seamless features where data analytics can be visualized and can be showcased to help the business analyze in one go. Since, SAP S/4 Hana Embedded Analytics provides a functionality of analyzing real time data , SAP has come up with a way to reduce the effort and time to develop front end UIs and providing different SAP standard floorplans to that meet up as per the user expectiations.

Let’s Start:

Please follow the below steps for the creation of an analytical card in Overview page.

Step 1 : Publishing oData service in CDS View

Note : Before starting an end to end development, you should know :

  1. Type of card in Overview page, ( For more info ->  Types of Card )
  2. Type of chart in analytical card. ( For more info ->  Types of charts in Analytical card )
  3. Number of dimensions needed in X-Axis
  4. Number of measures needed in Y-Axis .
  • Create Basic CDS View. Using a dimension (GJAHR) will act as an X-axis and measure (amount_baltrscccry) as a Y-axis.
  • Composite CDS View(Cube View):
  • Expose the consumption view with annotation @OData.publish : true (Hover over warning message beside odata.publish annotataion and it shows OData service name -> ZOVP_DEMO3_CDS) and @analytics.query:true.(For analytical queries) . Insert the relevant annotations as required as shown below.

Remember : It should be an analytical query . Analytical queries are always created on top of CUBE view.

Step 2: Activation of Odata Service 

  • Goto tcode /IWFND/MAINT_SERVICE and click ‘Add Service’ button as shown below. Always remember that after exposing the Odata in CDS View, we have to Add Service first (one time activity)  .Once the same is activated , OData service will be available to be used accross any application.
  • Choose relevant System Alias and pass the OData service name(CDSVIEWNAME_CDS)  we copied from CDS view to ‘External Service Name’. Hit Enter.  Select the Service and click ‘Add Selected Services’.
  • Note: External service name is CDSViewname_CDS. Hence , in our case, the external service name will be  ZOVP_DEMO3_CDS
  • Now choose the correct ‘package’ .In my case , I am capturing the changes in Local($TMP) package .
  • Hit ‘Continue’;
  • Service is now created and you will get a pop saying Service and it’s metadata was loaded successfully.
  • To check if Service is registered, go back to the main screen and filter on the same OData service.
  • Filter on the above activated OData service( ZOVP_DEMO3_CDS ) as below:
  • You will be able to see the OData service. Now to check if the OData request has been received and processed successfully by a data service , click on ‘SAP Gateway Client‘ :
  • A new window will open like below . Click on ‘Add URI Option’ and select Metadata to check the successfully registered service and metadata ..
  • Click on ‘Execute’. Also the below highlighted /sap/opu/odata/sap is the service path for the odata service ZOVP_DEMO3_CDS..
  • You can see that the status code is ‘200‘ which means odata request has been received and processed successfully by a data service .Also,to view the data response from the service, click on “Response in Browser” .
  • To develop an analytical application in Business application studio, we should know the Entity type and Entity Set (Detailed explanation -> ) . Below you can see the Enitity type and Entity set for the analytical query we have built.
  • Add System Alias to OData service ( Know more about System alias ->
  • Click on f4 help and add the system ailas to your OData service :
  • Check if the SICF Node is activated . You can check the same either checking if the status is green as below or you can click on ‘ICF Node‘ and click on ‘Configure (SICF)‘ which will redirect you to the TCode ‘SICF‘. Ensure that the service is activated in ICF node , else it will throw an error later in FIORI.
  • Below is the path which was discussed above while checking the metadata . In SICF, you can view the service path . Here the service is already activated in SICF.

Congratulations  🙂 . You have :

  1. Created a basic analytical report using CDS Views.
  2. Published OData service
  3. Activated OData service using /iwfnd/maint_service TCode.


Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Joseph BERTHE
      Joseph BERTHE


      Thanks for you blog, but I would suggest some modifications :

      • The naming convention are not respected. Here is in the SAP Help the CDS conventions you should follow : Naming Conventions in the Virtual Data Model
      • If you are in embedded infrastructure (Front-End and Backend system in the same server) then you can do a Co-deployed. The Alias is useless in that configuration


      Author's profile photo Akshay Kora
      Akshay Kora

      Thanks for sharing the knowledge. Waiting for the upcoming blog.

      Author's profile photo bharathithasan P
      bharathithasan P

      Thanks for sharing a detailed blog , Can you please share the complete logic for the consumption CDS view?

      Author's profile photo Priya Ratan
      Priya Ratan
      Blog Post Author

      Here you go 🙂

      @AbapCatalog.sqlViewName: 'ZOVPDEM3'
      @AbapCatalog.compiler.compareFilter: true
      @AbapCatalog.preserveKey: true
      @EndUserText.label: 'ODemo OVP Consumption'
      @VDM.viewType: #CONSUMPTION @Analytics.query: true
      @OData.publish: true
      define view ZOVP_DEMO3 as select from ZOVP_DEMO2
      @AnalyticsDetails.query.axis: #FREE
      @Consumption.filter.mandatory: false
      @Consumption.filter.multipleSelections: true key Rldnr,
      @AnalyticsDetails.query.axis: #ROWS
      @UI.selectionField: [{ position: 10 }]
      key Rbukrs,
      @UI.selectionField: [{ position:20 }]
      @AnalyticsDetails.query.axis: #ROWS
      @Consumption.filter.mandatory: true
      @Consumption.filter.multipleSelections: true
      key Gjahr,
      @UI.selectionField: [{ position:30 }]
      @AnalyticsDetails.query.axis: #FREE
      @Consumption.filter.multipleSelections: true
      @AnalyticsDetails.query.axis: #FREE
      @Consumption.filter.defaultValue: 'EUR'
      @UI.selectionField: [{ position:40 }]
      @Consumption.filter.mandatory: true
      @Consumption.defaultValue: 'EUR'
      @AnalyticsDetails.query.axis: #FREE