Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
FrankRiesner
Product and Topic Expert
Product and Topic Expert

Dear Data Warehouse enthusiasts,
SAP ABAP Core Data Services (CDS) is a core technology for data modeling in SAP S/4HANA. Due to the fact, that SAP S/4HANA cloud edition does not provide the classic ABAP extractors (aka DataSources) for consumption, the clear requirement to set up new extraction options based on this concept has emerged in the last years. As you can see in the numbers below, this area has received tremendous innovation recently.

Number of released CDS extractors in SAP S/4HANA on premise
(Note: the cloud edition reflects the similar evolution with probably even more objects)
- release 2019: ~500 extractors (about 10% delta capable)
- release 2020: ~1100 extractors
(about 10% delta capable)
- release 2021: ~1800 extractors
(about 15% delta capable)
- release 2022: ~2400 extractors (about 18% delta capable)
- release 2023: ~2800 extractors (about 20% delta capable)

Based on these numbers, one simple question arises from a BW or Data Warehouse Cloud perspective: Where can I find a list of available CDS Extractors delivered by SAP?

Well, this is why I authored this blog post: Simply because there is no simple answer to this question. If there would be a comprehensive and complete documentation in help.sap.com or similar, this question could be answered easily. So in a nutshell, the purpose of this blog post is to provide possible solution approaches.

To start with, finally there is some useful documentation in the help portal at SAP S/4HANA > Virtual Data Model and CDS Views > CDS Views. There is a list of the different LoBs or Industries providing information  of the core views for extraction as well. Here is the URL for SAP S/4HANA Cloud and for SAP S/4HANA on premise. It is not complete and does not go much into detail, but still a great starting point.

To get started seriously, you need access to an SAP S/4HANA system to analyze the CDS objects; to be precise you require

    • access to SAP S/4HANA via SAP GUI and authorizations for Tr. SE16 and SE11 (steps 1-3, not applicable for S/4HANA Cloud),
    • access to SAP S/4HANA Fiori Launchpad and the app “View Browser” (e.g. via role SAP_BR_Analytics_Specialist) (step 4), and
    • access to SAP S/4HANA via Eclipse/ABAP Development Tools (ADT) and the authorization to view ABAP development objects (step 5).

Before explaining these steps, I would like to highlight one important detail: The CDS object name in the ADT design time environment is not the name of the final technical object which is used for consumption. During activation, ABAP DDIC views are generated which can easily be accessed their evaluation (steps 1-3), and they are also the name of the ODP Provider from a extraction perspective. However, these ABAP DDIC views normally have a different technical name as the CDS object. So, make sure you know this name when working with them.


Step 1
There is a high-level list of all CDS extractors in each SAP S/4HANA system starting from releases in 2020. It is based on CDS View I_DataExtractionEnabledView and you can easily call it in the Data Browser (SE16) based on its ABAP DDIC name IXTRCTNENBLDVW. It lists all CDS extractors with two filter options:

  • Is the object released or not? We recommend sticking to the released ones, they are stable and there is no risk they will behave differently after an upgrade. See also this blog post.
  • Is the object CDC enabled or not? This means it is a delta enabled extractor based on the sophisticated Change Data Capturing concept. See also SAP note 2991278.

In my example, I focus on an potential alternative to the classic LIS DataSource 2LIS_02_ITM (MM Purchase Order Items): C_PurchaseOrderItemDEX is a released delta-enabled CDS extractor.
Note1: Column 1, the extractor name, is case sensitive!! But in SE16 your search pattern might be converted to capital letters by default which will filter out valid results. Better work with the capital letters at the beginning in your search pattern, e.g. C_S* . Or switch off the conversion if you know how.
Note2: As an alternative you can also use DHCDCVCDSEXTRE in SE16 which contains more or less the same information.


Step 2
After you identified some helpful objects, you need to find their ABAP DDIC name to consume them. This mapping is available in table RSODPABAPCDSVIEW (SE16).
In my example, the ABAP DDIC name is CMMPOITMDX.


Step 3
Now, you can proceed and analyze the runtime object CMMPOITMDX in the ABAP Dictionary Browser (SE11). You can easily see which fields are provided and there is an option to call the data definition as well. So access to the full coding including all annotations is provided here.
Finally, don´t forget the known data preview option here (or in tr. SE16).
In my example, you can see the extractor delivers transactional data (dataCategory: #FACT), and the delta mechanism is based on purchase order items (table ekpo, fields ebeln/ebelp) and the purchase order headers (table ekko, field ebeln) as well.


Hint: The annotations for all CDS objects are also listed in table DDHEADANNO (DD: Header Annotations) for header details, and in table DDCDS_ELMNT_ANNO (DD: CDS Element Annotations ) for the items. 


Step 4
If you are lucky and you can reach the SAP S/4HANA Fiori Launchpad (/n/UI2/FLP), you can leverage the View Browser app to look through all CDS Views and filter them on those which are extraction-enabled. You should receive the same number of objects as in step 2, but there are more details provided like application component, data category, package and what source objects the extractor refers to ("cross reference"). It is worth to filter properly as described in the image below and then download the list to excel for further evaluation.

Step 5
A well-hidden feature - but providing a great value-added - is accessible in the ABAP Development Tools (ADT). As I said in the beginning, you need a local SAP HANA Studio or Eclipse installation to work these tools, so it is probably only available for developers. Here, where you maintain all CDS objects, you can easily search for one object and open it with the so-called Dependency Analyzer: This function disassembles the whole data model and provides an easy-to-understand overview of it, i.e. you see clearly from which source SAP S/4HANA tables the CDS extractor takes the data.
In my example, you see that the CMMPOITMDX reads through up to four layers of CDS views and finally reads from MM purchase order tables EKKO, EKPO, as well as general tables T001 and TKA02.

Summary
CDS-based SAP S/4HANA extraction keeps evolving as more and more SAP systems are migrated to SAP S/4HANA. I hope this blog post provides a useful guide how to evaluate SAP delivered CDS extractors which might be the proper interface for your SAP BW or SAP Data Warehouse Cloud applications now and in future.

Helpful additional Sources


Appendix I
In a recent customer workshop, we discussed differences between S-API extraction and CDS extraction from a tool perspective. I know this could fill a separate blog post at least, but maybe it is helpful to start with on little overview comparing both worlds:FR_BLOG_CDSEXTRACTION_7.PNG

Appendix II
Are you aware that there is a growing number of SAP BW/4HANA content which relies on the new SAP CDS extractors? Here is a good overview and additional links to the documentation as well:

S/4HANA Sales&Distribution
S/4HANA Service
S/4HANA Plant Maintenance, see also SAP notes 2299213 --> 3029450
S/4HANA Finance&Controlling
S/4HANA Transportation Management
S/4HANA Global Trade Service
all other areas
SAP note 2433354 Missing Business Content DataSources or TRFN when using ODP framework


Additional CDS Extractors are available for following areas (S/4HANA oP 2023), but without content data flows in SAP BW/4HANA:

  • Purchasing (MM-PUR)
  • Bill of Materials (BOM)
  • Product Lifecycle Mgmt (PLM)
  • Sustainability Management (SUS)
  • Industry Oil&Gas (IS-OIL)
  • Industry Defense Forces&Public Security (IS-DFS)
34 Comments
BALAMURUGANG
Participant
0 Kudos
Well documented.
DenizOsoy
Product and Topic Expert
Product and Topic Expert
0 Kudos
Helpful! Thank you Frank!
former_member449597
Discoverer
0 Kudos
Thanks for the insights Frank, Appreciate it.

Do we have a method to identify CDS based on the tables i.e. as per your example can we go from ekko/ekpo to CDS view CMMPOITMDX?

 

- Madhur
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Madhur,
I am not aware of any tool which supports the approach you describe.
It is rather the name of the object or the application component it relates to which indicate roughly the type of data the CDS extractor provides.

KR Frank
0 Kudos
Very good blog ! Thanks Frank.

When moving from ERP to S4/HANA, what has to be considered regarding S-API extractors aka CDS extractors. In which S/4HANA is S-API not or no longer available ?

Regards

Stephan
FrankRiesner
Product and Topic Expert
Product and Topic Expert
Hi Stephan,
the difference lies in the deployment option/edition of SAP S/4HANA:

  • In SAP S/4HANA cloud edition (public cloud, quarterly releases): There are no SAPI extractors available, only the new CDS extractors can be used for ETL processes to BW, BW/4HANA or Data Warehouse Cloud via ODP.

  • In SAP S/4HANA on premise (or private cloud, yearly releases): You have the choice between SAPI and CDS. Consider that not all SAPI extractors are released, so check this in SAP note 2500202 first. And consider also, that the number of CDS extractors is still evolving as described in my blog. So for this scenario, the general recommendation is to go for CDS if possible and use SAPI where CDS is not available (yet).


Regards - Frank
Manos
Participant
0 Kudos
Great blog, thank you Frank!!
DirkO
Participant
Hi Frank,

thanks for this great blog, awesome.

No marketing, pure facts, like a good espresso! 🙂

Best regards,

Dirk

 
former_member197665
Participant
0 Kudos
Hi Frank,

great blog post, that was very helpful for me! I still wonder wether the SAPI extractors are available in S/4HANA private cloud because we have a project case where this question came up. Is private cloud the same as on premise in the perspective of BW extraction? Are there any official SAP documents on this topic?

Thanks in advance for any answer, from other users as well!

Kind regards,

Simon
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Simon, glad that you found this publication helpful.

From a extraction perspective, there is no difference between S/4HANA on premise ad S/4HANA private cloud edition (PCE). SAPI extractors are available in both.

KR Frank
gunakowshikk
Discoverer
Hi , You can use DD26S table.
In the column, tab name: provide EKKO(or any other table) and execute. Result will contain SQL views of all the CDS views built on that table. Copy the sql view and go to DDLDEPENDENCY table and fetch CDS view name.

Thanks,

Koushik G
freder1k_han
Explorer
0 Kudos
Hi frank.riesner1

Thank you for a great blog. However, it is not entirely clear to me what the prerequisites are for making my own abap cds extraction view with CDC enabled. Are there any limitation or can I make any S4HANA table into a CDC enabled extraction view with the correct annotations and keys specified?

 

Thank you in advance!
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Frederik!
The only hard technical limitation is the S/4HANA release. As stated in this blog by my colleague Simon Kranig "...starting with SAP S/4HANA Cloud 1905 and SAP S/4HANA 1909 FPS01 (on-premise) an additional delta capability facilitating database triggers can be used...."

So you can actually define your own CDC enabled extractors based on the corresponding annotations.

Maybe it is worth mentioning, that CDC is based on triggers and these triggers consume some system resources as well. So if you go for large scale CDC extraction, the S/4HANA system should be scaled accordingly. So dont use CDC for each and every extraction blindly as a default... use it only where it really makes sense. E.g. full extraction for most master data is normally still ok.

KR Frank
freder1k_han
Explorer
0 Kudos
Hi Frank

Thanks a lot for your quick reply and also thanks for mentioning the performance impact. Honestly, I had thought of using this CDC functionality with real-time replica to DWC also for big transactional tables - but as I understand you, you would even advise against that?

 
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Frederik,

I advise not to use CDC for each and every kind of extraction without checking the real value-added. If it is justified by business requirements, then of course IT should serve that...

I assume your source is SAP S/4HANA on premise. Then there is a corresponding connection in DWC and there is also the option to leverage real-time replication which is based on CDC.

KR Frank

 
guna91
Explorer
Hi frank.riesner1 ,

thanks a lot for detailed blog...!

Once we find a released CDS(standard), can we import it into Data Services as an ODP(ABAP-CDS) object? Are there any pre-requisites/system requirements before importing? Please advise.

thanks,

Koushik Guna
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Koushik,

well, I am not an expert in SAP DS. However, I assume the following might help:
-If the CDS Views are extraction enabled then you should be able to consume them via ODP in SAP DS as well. The ODP Queue (tr. ODQMON) serves then as interface.
-You can also use the generated SQL View of the CDS entity and import that one as a conventional ABAP DDIC view into SAP DS as source object. For this scenario, you bypass ODP and the CDS view does not have to be extraction enabled.

KR Frank
guna91
Explorer
0 Kudos
Hi @frank.riesner1, thanks a lot for your response.

  • I tried the first case; I have following error. could you please have a look at it?


Issue while importing CDS view as ODP object into SAP BODS? | SAP Community

  • Yes, that's exactly what we are doing as an interim solution.


thanks,

Koushik Guna

 

 

 
PhilMad
Participant
0 Kudos
Hi Frank, thanks for the effort,  kind regards
0 Kudos

Hi Frank

Thanks for a great blog,

What about for enhance a CDS ?  In SAPI extractors we can enhance 2LIS in LBWE appending new availables fields in MCVBAK/MCVBAP/MCVBUK structures without create a Z append.

If we want to append a new field in C_SalesDocumentItemDEX without change the standard CDS, (i.e: new field from a table from a VDM model), what options we have ? only using ADT and copy a Z version of CDS or there´s something standard method to enhace the CDS (F1866A Custom CDS View app or similar ) ?

Thanks

FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear Gabriel,
Thanks for your feedback.

There is a whole framework around extending objects in SAP S/4HANA and keeping the core clean. So extending standard CDS Views is also possible of course. You do this based on new CDS views of type "Extend View", which refer to the original one and enhance it correspondingly according to the customer requirements. This is described step-by-step in #5 of this comprehensive blog post.

Please also consider these sources regarding the C_SalesDocumentItemDEX CDS extractor:
SAP note 2832702: Additional Information about SAP BW/4HANA Content for SD-Sales
SAP note 2796370: Additional Information about SAP BW/4HANA Content for SD-Billing
SAP note 3070845: Use new CDS-Views for SAP S/4HANA SD and Billing (1)
SAP note 3077184: Use new CDS-Views for SAP S/4HANA SD and Billing (2)

KR Frank



 

 
dgallegog
Explorer
0 Kudos
Great blog, thank you Frank!!

David G
naseemvp007
Participant
0 Kudos
Hi Frank,

Thanks for the blog.
I have tried to access the CDS view I_DataExtractionEnabledView . But unfortunately it is not available on my system which is S/4HANA 1909. I have found that this is available from version 2020. Do you have any alternatives for me to see the data extraction enabled CDS views?

Best regards,
Naseem
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Naseem,
please request access to the S/4 Fiori Launchpad and there to the app called "View Browser". There you can select for all objects which have the extraction.enabled annotation. See step 4 and related details in my blog above.

KR Frank
naseemvp007
Participant
0 Kudos
Thanks Frank.
pravin_patil12
Explorer
0 Kudos
frank.riesner1 Thank you very much for keeping this up to date. Apologies for very open ended and wide question.

in 2023 release we were expecting CDS Viewes blue color to cover lot more areas, but it seems only Procurement is added. Assuming this is because 2023 is major architectural change and possibly foundation for future major changes? Do you know if Rest of the Finance are will get built in CDS Views as well and possibility of completing Sales and Distribution?
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Pravin, not sure what you mean with "blue color"
I have no insight in the precise future roadmap of CDS Extractors, it lies in the responsibility of each LoB. KR Frank
pravin_patil12
Explorer
0 Kudos
Hi Frank,

 

thank you for your reply, at the end of the blog you have a picture showing different legends, Light Blue  color is for ABAP CDS Views. Assuming that one of the goal is to reduce Orange (ABAP DataSources) and increase either ABAP CDS Views or oData APIs as a long term strategy.

 

so difference between pre 2023 and post is Procurement has partly received some built-in ABAP CDS Views
bygineben
Explorer
0 Kudos
Thanks for the valuable information. One question I am having is : From AS ABAP 7.57, Define View template will be obsolete. And instead we have to use the Define View Entity.

In Define View entity, there is no need of SQL View Name. So when we create ODP based extraction via ABAP CDS, what needs to be passed?

Thanks
FrankRiesner
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Bygine,
I think it still makes sense to define the sqlviewname via the annotation.
As I stated above, there is difference of no of characters you can use for both (DDIC 16, CDS up to 30). The system will most likely generate a technical DDIC name if the 16 chars limit is hit, and then maintenance for the ODP connection might be more difficult. For sure a DDIC name is required for the ODP provider which connects to an ODP DataSource in BW.

Regards - Frank
sapbwbi_07
Explorer
0 Kudos

Hello @FrankRiesner ,

I encountered a case where it is desired to use 0UC_SALES_STATS_02 in SAP DATASPHERE, the problem is that I cannot do replication because it has mandatory BUDAT as a selection field. Do you have any idea how I could proceed in this case? Does the 0UC_SALES_STATS_02 extractor have an equivalent in CDS VIEW? Any suggestion is welcome! 

PS: the sap note recommends remove the selection field BUDAT, but being a standard extractor it doesn't allow me.

Regards,

SAP Datasphere 

 

FrankRiesner
Product and Topic Expert
Product and Topic Expert

Hi sapbwbi_07,

I am not aware of any ISU CDS Views which could be used instead.
Why dont you try to copy the standard object into your own one and then remove the mandatory selection on field BUDAT?

KR Frank

sapbwbi_07
Explorer
0 Kudos

Hello @FrankRiesner ,

Thanks for the reply, but I wanted to avoid modifying the extractor by copying, but I will consider it.


I have one more question, I hope I don't bother you too much, I identified a cds view for example: I_UTILITIESINVOICINGDOCUMENT, from the checks performed, it was developed to allow data extraction, but the annotation that enables data extraction is missing. The question is: how is it recommended to add this annotation, can the standard cds be modified directly in eclipse and then activated or is there another procedure to modify the standard cds to enable data extraction. (I tried to find an answer but I found information only for custom cds).

Thank you once again for your time.

SAP Datasphere 

FrankRiesner
Product and Topic Expert
Product and Topic Expert

Hi sapbwbi_07,

the concept for extending CDS Views is called "extension View".
Here is a blog which might help explaining this concept.
https://community.sap.com/t5/technology-blogs-by-members/how-to-extend-abap-cds-view-entity-core-dat...

If I_UTILITIESINVOICINGDOCUMENT is not extraction enabled, then this is maybe on purpose. Consider this. But of course it is worth a test with a customer cds view which reads from this cds views and which is extraction enabled. This would be a FULL load.

KR Frank