Skip to Content
Author's profile photo Horst Keller

CDS – One Concept, Two Flavors

If you search the web or SCN for CDS, SAP’s Core Data Services, you can easily find statements like Core data services (CDS) is an infrastructure for defining and consuming semantically rich data models in SAP HANA.”. On the other hand, there also seems to be something called ABAP CDS in ABAP Dictionary. How are they connected? Let’s have a look from the ABAP (and even ABAP CDS) docu writer’s worm’s eye view.

ABAP Dictionary

In order to develop (business) applications, you need something to model your data. In the ABAP world, meaning on the ABAP application server, for this purpose you used the ABAP Dictionary or tools like the data modeler for years. The ABAP Dictionary was and is the platform independent metadata repository for database tables and database views that can be accessed in ABAP using Open SQL. The definition of the database entities is done in the form based ABAP Dictionary tool on the application server and  the according DDL is passed to the database via the DBI (Database Interface). You can examine that by looking at the “Database Object” in SE11. E.g., for a view, you see the according DDL statement CREATE VIEW.  For an ABAP program, the entities defined in the ABAP Dictionary act like global types, making it simple to declare ABAP data objects as targets or sources for DML statements in Open SQL.

HANA CDS

With the dawn of SAP HANA and the possiblity to develop applications directly on the database, not using an application server any more, the need arised, to create a meta model repository directly on the database. As with the ABAP Dictionary on the application server, there should be more in the box for you than using native SQL’s CREATE TABLE or CREATE VIEW. Especially regarding the need of enriching pure technical definitions wih semantics. And that’s one of the main reasons for SAP’s Core Data Services.

Core Data Services provide a specification for an SQL-based DDL that is enriched with further possibilities like annotations or associations that generally can be implemented on different platforms. On SAP HANA, CDS provides the possibility “to define the artifacts that make up the data-persistence model.” The DDL of CDS allows you  to define database tables, database views, data types by wrapping the according native HANA SQL statements and enriching them with semantical properties. From an ABAP programmer’s point of view, one might say: Well, OK, there’s a source code based dictionary tool directly on the HANA database. But that would be too shirt-sighted.

ABAP CDS

From the beginning, CDS was not designed for HANA alone. Also the ABAP application server should be able to benefit from the enhanced capabilities that are offered by the DDL of CDS compared to the form based ABAP Dictionary tool. Since the ABAP Dictionary with its capabilty of defining tables, views and data types was already there, the natural way of introducing CDS on the ABAP application server was to add it to the ABAP Dictionary. An ADT based source code editor allows you to create DDL sources. On activation,  the CDS entities defined in such a DDL source become full citizen ABAP Dictionary objects. They work as ABAP types that can be named after a TYPE addition and they can be accessed in Open SQL. As a first step, the advanced view building capabilities of CDS have been implemented in ABAP CDS. With many, many tables already defined in the ABAP Dictionary, the DEFINE VIEW statement of ABAP CDS makes the full wealth of the CDS universe readily available to existing ABAP data models. You can either define sophisticated new views or simply wrap an existing table in a CDS view in order to enrich it semantically. For example, ABAP CDS offers a new authorization concept based on roles defined wih DEFINE ROLE (partly released wth 7.40, SP10 and fully released with ABAP 7.50) in a DCL source code. In order to let an existing table participate in the new authorization concept, you can simply create a CDS view for that table that is connected to a role. Other examples are advanced joining of tables with associations or using specific annotations in order to connect existing tables to new technologies like OData or UI5. Even in ABAP itself, CDS views are handled in an advanced way compared to classical dictionary objects – automatic client handling is an example. So, with introducing CDS views in the ABAP Dictionary one big step is already taken. Capabilities to create database tables, database functions (available with ABAP 7.50), and data types in ABAP CDS might follow. This would ultimately allow you to create data models in the ABAP Dictionary from scratch using ABAP CDS only.

ABAP CDS vs. HANA CDS

With HANA CDS and ABAP CDS we have two implementations based on the same specification. The implementations are very similar but not 100 % equal.  If you know the DDL of CDS, you should be able to understand definitions of CDS entities in both flavors. But as a rule you will not be able to copy DDL sources from HANA to ABAP and vice versa without modifications.  The implementation of HANA CDS and ABAP CDS is ongoing and with different priorities.That’s why a blog like New Core Data Services Features in SAP HANA 1.0 SPS 10  is mainly interesting for developers working directly on SAP HANA. ABAP developers have to look for blogs like news in ABAP CDS.

While HANA CDS has to function on SAP HANA only, ABAP CDS is open. Consequently there are some restrictions for ABAP CDS that do not exist for HANA CDS (in the same way as Open SQL is more restricted than Native SQL). A good example are built-in functions. A built-in function like CURRENCY_CONVERSION offered in ABAP CDS must be available on any database platform and  – very important – must behave in the same way on all platforms. Same for expressions like arithmetic expressions, aggregates or the CAST expression. Before releasing such a functionality in ABAP CDS, all platforms have to participate. Quiet a task!  And thats why ABAP CDS cannot offer all SQL Functions of SAP HANA yet (but working on it …). On the other hand,it is open! And there are also ABAP specialties like client handling or table buffering that are not available in HANA CDS, but supported in ABAP CDS.

Conclusion

SAP’s Core Data Services provide a single concept for an infrastructure for data modelling that is implemented  in SAP HANA as well as on the ABAP application server. The design principles are the same for both implementations but due to differences in the respective environments, there are naturally some differences between these flavors.

Note

To my knowledge, there is no native implementation of the CDS concept on other database platforms than on SAP HANA up to now. In order to model in CDS for databases other than HANA, you can of course use ABAP CDS in the ABAP Dictionary, and let it push down the model for you.

Assigned Tags

      70 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Abdul Hakim
      Abdul Hakim

      Hi Horst, Another great blog from you. Thanks for sharing it with the community.

       

      Thanks

      Hakim

      Author's profile photo Florian Henninger
      Florian Henninger

      Hi Horst,

      well written and thanks for pointing out the difference again.

      ~Florian

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      Define role: in the documentation we still can read "This functionality is not yet released and must not be used"

       

      Is the CDS authorisation concept really officially released in SP10?

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      The DCL syntax DEFINE ROLE was created and delivered with 7.40, SP08. It allows you to create a role for CDS entity (view). In a first go,only mapping roles are supported (annotation MappingRole must be true),  that binds the CDS entity to classical authorization objects.

       

      But defining roles is not enough. You also need a framework that handles the role. The idea is, that the ABAP programmer does not have to use AUTHORITY-CHECK any more, but that he uses a framework that implictly checks the authorization.

       

      As a first framework, SADL (Service Adaptation Definition Language) started to use CDS roles. From 7.40, SP10 on, the SADL framework implicitly checks the authorization of the current user when a CDS view connected to a CDS role is accessed by a SADL query. That's why I said released in SP10. But usage is restricted to the SADL einvironment. That's why I didn't remove the above restriction from the documentation.

       

      In an upcoming release, it is planned that Open SQL itself will check the authorizations.  The planned concept is (done with 7.50): When a CDS view connected to a CDS role is accessed with Open SQL, there will be implicit filter conditions generated internally and the SELECT statement will return only those data for which the current user is authorized. Then, the restriction can be removed from the documentation.

      Author's profile photo Dorothy Eiserman
      Dorothy Eiserman

       

      Thank you Horst! This comment thread was really insightful.

      Author's profile photo Former Member
      Former Member

      Hi Horst,

       

      1.If we use ABAP on HANA DB, do we need to use ABAP CDS or HANA CDS. which is preferred?

       

      2.also  if we use ABAP on HANA DB, HANA CDS views will not be visible in ABAP Dictionary(SE11) like CDS database view. Am i correct?

       

      Thanks

      Sangeetha

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hi Sangeetha,

       

      1. If you use ABAP on HANA DB of course you can also work directly on the DB and also use HANA CDS there. But then the CDS objects created are not managed by the ABAP Dictionary meaning you cannot access them directly with Open SQL and they are not types in the ABAP type system.

       

      2. See above.

       

      Best

       

      Horst

      Author's profile photo Former Member
      Former Member

      Thanks Horst

      Author's profile photo Rudolf Wiesmayr
      Rudolf Wiesmayr

      Servus Horst, can you please check the links in your blog posting?

      TIA Rudi

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      seems http://help.sap.com/ is currently down

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      http://help.sap.com is back online.

      Author's profile photo Rudolf Wiesmayr
      Rudolf Wiesmayr

      THANKS!

      Author's profile photo Jacques Nomssi
      Jacques Nomssi

      Hello Horst,

       

      SAP NetWeaver 7.5 introduces an ABAP CDS table functions concept that seems HANA only to me. How will this feature work with any other DB ?

       

      best regards,

       

      JNN

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Well, I`m not allowed to speak about 7.50, but so what ...

       

      The new CDS Table Functions are implemented in AMDP classes, and therefore, yes,  HANA only. Details later ....

       

      Horst

       

      (waiting eagerly for the official announcement of 7.50 in order to start my blog series)

      Author's profile photo Peter Inotai
      Peter Inotai

      (waiting eagerly for the official announcement of 7.50 in order to start my blog series)

      Me too

      Author's profile photo Sunil Sankar
      Sunil Sankar

      Hi Herr Keller,

       

      I have built an CDS view with 3 tables - T1, T2, T3. T1 and T2 have 1-1 mapping while T3 has multiple entries. I tried all options to get last(one) row from T3 but couldn't able to achieve it. Getting multiple rows from the query.

      Is there any possible way to exclude duplicates from table 3?

       

      Appreciate if you help me on this.

       

      Edit by moderator for politer greeting.

      Author's profile photo Mohit Chopra
      Mohit Chopra

      Hello Horst,

       

      really great going through your blogs on ABAP CDS concept.I have one query. recently we got request from one of our customers to move all BW operational reports on CDS..They want us to use ABAP CDS but there are some questions why cant they use HANA CDS...i saw some differences between 2 CDS implementations above but not able to get exact answer on what CDS should be preferred...ABAP or HANA??

       

      Thanks,

      Mohit

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hello,

       

      Let me try to give a short answer.

       

      • If you run SAP HANA standalone or in a side-by-side scenario (there is no ABAP stack on top)  you cannot use ABAP CDS. You must use HANA CDS.

      • If you have an ABAP stack on top of a HANA database  (an AS ABAP uses the HANA database as central database):
        • If you want to access the CDS entities in ABAP as data types or in Open SQL or if you want to evaluate the CDS annotations in ABAP, you must use ABAP CDS.
        • If you do not want to access the CDS entities in ABAP, but you want to transport and upgrade them like ABAP repository objects, you can use ABAP CDS.
        • If you do not want to access the CDS entities in ABAP as data types or in Open SQL, you can use HANA CDS, which is better integrated into SAP HANA. An access from ABAP is then possible using Native SQL (ADBC, AMDP) only.

       

      To summarize: It drills down to the question, if you want to handle HANA artifacts by the AS ABAP (the traditional way how ABAP worked with databases), meaning a strong connection between AS ABAP and SAP HANA, or if you want to built your application or parts of your application on HANA alone, meaning a weak connection between AS ABAP (if not abolished at all) and HANA.

       

      Best

       

      Horst

      Author's profile photo Mohit Chopra
      Mohit Chopra

      Thank You very Much Horst...:-)

      Author's profile photo Shady Shen
      Shady Shen

      Hi Horst,

       

      Just one follow-up question, will the ABAP CDS be consumable natively in HANA?

       

      Best Regards,

      Shady

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hi,

       

      For each CDS view a database view (SQL view) is created in the database during activation. You can access that database view natively if you want to. CDS table functions are managed by AMDP. The respective database functions can also be accessed natively.

      Edit: Meanwhile, accessing ABAP managed DB objects natively (not from AS ABAP) is deprecated.

       

      https://blogs.sap.com/2018/04/03/abap-managed-database-objects-and-how-to-access-them/

       

      Best

       

      Horst

      Author's profile photo Marco Dahms
      Marco Dahms

      Hi Horst,

       

      is it also possible to access the database views (generated by having a corresponding ABAP CDS view) in HANA natively and simultaneously consider the authorization logic defined in the corresponding DCL?

       

      Best,

      Marco

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hi,

       

      Theoretically yes. Open SQL checks the authorization implicitly but is of course translated into native SQL code doing that on DB level (implicit conditions). Same for the SADL framework that checks the authorizations itself natively. The problem is that you need to have access to the internal role representation which is not published and subject to change or you have to build a framework yourself that parses the role definition and creates the corresponding conditions.

       

      Best

       

      Horst

      Author's profile photo Ilyas Ahmed
      Ilyas Ahmed

      Thank you Horst,

      This is much needed explanation to clarify between ABAP CDS and HANA CDS.

      Author's profile photo Thorsten Wuelpern
      Thorsten Wuelpern

      Hi Horst,

      this statement you wrote in November 2015:

      "If you do not want to access the CDS entities in ABAP as data types or in Open SQL, you can use HANA CDS, which is better integrated into SAP HANA. An access from ABAP is then possible using Native SQL (ADBC, AMDP) only."

      What about today? Is your statement still valid? Or is there anything new on the ABAP CDS approach, that we can leverage from? Is the integration of HANA CDS Views into HANA in comparison to ABAP CDS into HANA still better?

      Do you know about any performance test comparisons between ABAP CDS, HANA CDS, and HANA Calculation views?

      I've heard, that SAP itself is delivering more and more ABAP CDS views instead of HANA calculation views in the area of S4/Fin, but maybe this was SAP BW related. I'm not sure...

      Best regards,

      Thorsten

       

      Author's profile photo Former Member
      Former Member

      Hi Horst,

       

       

      How to view(identify) standard CDS views delivered by SAP ECC6 or S/4 etc..

       

      Thank you

       

       

      regards,

      Rv

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hi,

       

      From a technical point of view, you find all views in their packages in ADT as you found classical views or database tables in SE11.

       

      From a usage point of view, its the task of the components that deliver reusable views as APIs to document and rollout these views.

       

      Horst

      Author's profile photo Former Member
      Former Member

      Hi Horst,

       

      Thank you, But we couldn't find package ADT in our S/4 Finance system.

       

      regards,

      Rv

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      ADT = ABAP Development Tools (aka ABAP in Eclipse)

      Author's profile photo Former Member
      Former Member

      Hi Horst,

       

      Please bare with me, I am not from developer bg.

      Yes, I am exploring ADT from past one week. I can see all packages and other folders (below snapshot) my issue is to locate/differentiate a CDS view from normal view understand CDS view will be shown as 'DDL SQL View' in SE11

       

      I am actually looking for sap delivered CDS views for Sales and MM modules  

      Capture.JPG

      Thanks in advance

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hi,

       

      I am actually looking for sap delivered CDS views for Sales and MM modules

      I wonder why you want to do this ...


      Ways of finding CDS views independent from reports:


      • Examine table TADIR in SE16; PGMID = R3TR, OBJECT = DDLS; here you find all DDL sources and the package of each source in column DEVCLASS. Knowing the package, you can use ADT to find the DDL sources in ADT.


      • Examine table  DDLDEPENDENCY in SE16; it contains the names of all DDL sources and the names of the CDS entities (value STOB in column OBJECTTYPE) defined therein as well as the names of the generated database views (value VIEW in column OBJECTTYPE); (one row for each -> two rows for each DDL source). => Selecting VIEW for OBJECTTYPE gives you all CDS database views.


       

      Horst






      Author's profile photo Former Member
      Former Member

      Hi Horst,

       

      Thank you, I can see them in ADT now.

      We are working on a POC which includes Hadoop+Vora+HANADB including CDS functionalities, Need to test data.

       

      regards,

      Rv

      Author's profile photo Mohit Chopra
      Mohit Chopra

      Hello Raghuveer,

       

      You can also view all the CDS views present in system using Report VDM_METADATA. You will find all shipped CDS views as well here but i think this report is present only in S/4 HANA systems. You can check.

       

      Thanks and REgards,

      Mohit

      Author's profile photo Former Member
      Former Member

      Hi Mohit,

       

      Checked in our S/4 (Finance) system, couldn't find report VDM_METADATA, Do you have any reference note or doc for this ?

       

      regards,

      Rv

      Author's profile photo Mohit Chopra
      Mohit Chopra

      Hello Raghuveer,

       

      I have couple of S/4 HANA systems and couple of Systems with ABAP 7.5 version and i can see VDM_METADATA in all systems. Not sure why you are not able to find the same. Go to SE38 and try with VDM_*,Do F4 and check if you find reports related to VDM. A

       

      And also as mentioned by Horst in ADT just add the package and check all the CDS views present in that package.

       

      Thanks and REgards,

      Mohit

      Author's profile photo Former Member
      Former Member

      Thanks Mohit.

      Author's profile photo ananthachari enjarapu
      ananthachari enjarapu

      Thanks for your blog

      Author's profile photo Former Member
      Former Member

      Hi Horst,

       

      The 740 documentation of the CDS-SQL Functions(ABAP Keyword Documentation) seems to have a few translation missings. /wp-content/uploads/2016/04/2016_04_14_170657_930168.png

       

      Although they are corrected in 750. Is there any remote chance of translating these texts for 740 documentation?

       

      BR,

      Suhas

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Is there any remote chance of translating these texts for 740 documentation?

       

      I tend to say no, too much effort.

       

      The error is known and should be resolved in the system documentation with an SP.

       

      The portal version is a snapshot of an early SP version and kinda unofficial goody. I regard newer versions (7.50) as replacements of older versions. Therefore, ...

       

      B.t.w., in the SAP GUI version of the documentation, there is a download icon that you can use to create a snapshot of the recent system documentation on your PC anyway .

      Author's profile photo Former Member
      Former Member

      The portal version is a snapshot of an early SP version and kinda unofficial goody.

      Dammit, i always preferred the online documentation over the ABAP Docu But thanks for the tip anyway.

      Btw, i guess i found a famous Userid in the demo DCL - DEMO_CDS_ROLE (pckg. SABAPDEMOS)

      /wp-content/uploads/2016/04/2016_04_15_112919_930812.png

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      preferred the online documentation over the ABAP Docu

       

      ???

       

      What is online documentation,what is ABAP Docu?

       

      Regarding the ABAP Keyword Documentation, there is only one  that can be displayed in three different ways:

       

      • SAP GUI Version (F1 in SE80/SE38/SE37/SE24/..., TAs ABAPDOCU and ABAPHELP)
      • http-Version (F1 in ADT, program ABAP_DOCU_WEB_VERSION)
      • file version (download can be triggered from SAP GUI version, uploaded to help.sap.com)

       

       

      Userid in the demo DCL - DEMO_CDS_ROLE (pckg. SABAPDEMOS)

       

      Well, not too astonishing since SABAPDEMOS is my package ...

      Author's profile photo Former Member
      Former Member

      What is online documentation,what is ABAP Docu?

      My bad, with ABAP Docu i meant the GUI-Version Documentation!

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      And what do you mean with "online documentation"?

      Author's profile photo Former Member
      Former Member
      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      OK, the file version

      Author's profile photo Former Member
      Former Member

      Aha, now i get your point! Smart

      Author's profile photo Mauricio Cubillos
      Mauricio Cubillos

      I don't see any comment about how CDS will help simplify the lifecycle, by keeping together ABAP and HANA artifacts.

      Author's profile photo Paul Abrahamson
      Paul Abrahamson

      Hi Horst,

       

      Since writing this blog, have you had any experience with modeling CDS Views on ABAP 7.40 SP10 or later on a NON-HANA AnyDB scenario?

       

      I ask because I'm wondering about the benefits of developers getting used to CDS ahead of their eventual move to S/4HANA or ERP on HANA.

       

      It may be some time before a customer moves to HANA under their ERP system, but could they start to leverage the benefits of CDS, Annotations and the newer Annotation based UI5 / Fiori Elements which can leverage the semantic metadata and annotations from the CDS View exposed as an OData Business Entity?

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Hi Paul,

       

      with the exception of CDS table functions, that are connected to AMDP, ABAP CDS is open (since 7.50 also views with parameters are supported by all database platforms). With other words, everything that is described in the ABAP CDS reference documentation (including ABAP annotations) can be done independently from the underlying DB (except table functions).

       

      Another point are the SAP Annotations that are not provided as "ABAP Annotations" for the ABAP runtime environment but as "Framework Annotations" by frameworks as BOPF, SADL, BW, Analytics, ... (see also ABAP News for Release 7.50 - Annotations in ABAP CDS). For these, it depends if they are connected to HANA or if they are platform independent too. But as a "ABAP guy" I cannot answer this question. For that you have to turn to the relevant frameworks and their documentation and rollout. From "ABAP", we deliver a landing page for all available framework annotations,  but what lies behind is the framework's turn ...

       

      Best

       

      Horst

       

      PS: In the next version of the ABAP documentation (7.51), the difference between ABAP Annotations and Framework Annotations and its implications will be more clearly pronounced.

      Author's profile photo Bill Jones
      Bill Jones

      Greetings Horst,

      I found your blog a key source of reliable information on CDS.

      Perhaps you can let us know whether any reference materials are planned beyond the online help and keyword documentation? I think there would be strong demand in the market for a book.

      There are 2 specific points I've been struggling to resolve:

      1. A comprehensive description of view types, their purposes and limitations. For example, an API view type was introduced in a teched presentation, but I don't have more detail than the naming standard
      2. Which view type(s) should be protected by DCL? In my tests so far, only the DCL on a consumption view has been effective.

      For context, my background is abap, and my focus is use of CDS views to provide data to external applications & non-SAP platforms

      Thank you,

      Bill

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      https://www.rheinwerk-verlag.de/core-data-services-fur-abap_4487/

      Author's profile photo Amisha parikh
      Amisha parikh

      I am using ABAP CDS view .  We have SAP-ABAP 740 SP9 with MSSQL.

      I want to use   case variable(cost_type)   in group by clause (Below code) .
      At present if gives syntax error to include awtyp and blart in group by clause.(But my requirement is to include derived column in group by )

      define view Zcal_Wip as select from ztab1 as tab1
      association[1] to Zopen_Wbs as Mat
      on tab1.zobjnr = Mat.wbs_objnr
      association[1] to covp on wiph.kokrs = covp.kokrs and wiph.zbelnr = covp.belnr
      and tab1.zbuzei = covp.buzei

      {

      Mat.kunnr,
      Mat.name1 as customer_name,
      Mat.matter_id,
      Mat.matter_name,

      case covp.awtyp
      when 'CATS' then 'Time'
      when 'COBK' then 'Sost'
      when 'BKPF' then 'HCost'
      when 'VBRK' then
      case covp.blart
      when 'RV' then 'Time'
      else
      ' '
      end
      else
      ' '
      end as cost_type ,

      sum(tab1.netvalue) as netwr
      }where covp.stflg = ' ' and covp.stokz = ' '  and Mat.matter_id <> ' '
      group by Mat.kunnr, Mat.matter_id, Mat.name1,Mat.matter_name

      Author's profile photo Ralf Hakspiel
      Ralf Hakspiel

      Hello Horst!

      We are using a lot of Quickviews in our ERP System (Transaction SQ01).

      My idea is now the following: turn quickviews into CDS, turn CDS into ODATA, Turn ODATA into SAPUI5.

      Do you have an idea of how "migrating existing Quickviews into CDS" can be done the easiest way?

      THX
      Ralf
       

      Author's profile photo Kathiravan Periyasamy
      Kathiravan Periyasamy

      Hi Horst,

      I am new to S/4 HANA and my question is very close to that of Mohit Chopra.

      I am working in a development project where we have S/4 HANA 1610 as source and BO as a front end tool. We have NO BW server.

      I assume the following flow needs to be followed: S/4 HANA (Transaction tables) --> CDS Views --> BO (WebI reports).

      However, I am confused which CDS view needs to be used here. Either ABAP or HANA CDS view?

      My requirement is to create some Finance reports like Balance Sheet, P&L and some MIS reports.

      Please could you suggest me what CDS view needs to be used in my data flow so that I can focus on that part more?

      Thanks in advance!!!

      Regards,

      Kathiravan

      kathirkevin@gmail.com

      Author's profile photo Former Member
      Former Member

      S/4 HANA uses embedded analytics, which uses CDS views with annotations for transient providers.  Please check the documents.  It would be better to use BO Design Studio or Lumira then WEBI.

      Author's profile photo Former Member
      Former Member

      It's really great blog but I still have some questions.

      How can CDS view take the SAP Enhancement Framework into consideration?  I’ve always used BAPI so I can include SAP enhancements in my reports or updates to SAP.  Will there be a way to include checking for SAP enhancements in CDS views implementing CRUD in future?  Not only for the enhancements, we were told that we can’t update SAP tables directly.  Is CDS views only for custom developments?

      Currently I’m working on S/4HANA embedded analytic where we use CDS view for the transient provider for BO Design Studio.  So only way right now I can use CDS is through annotation for Trasient Providers.  I would agree that CDS can be used for the custom tables or HDB development.  But for SAP S/4HANA or any SAP modules, CDS view or VDM should have a validation process using BAPI or Business Object.  Could I use AMDP to check within the stored procedure class methods to validate/update using the BAPIs?  Thanks for your help.

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

       

      From a technical perspective, CDS views can be extended using DDL statement EXTEND VIEW. For annotations we have metadata extensions. Switchable extensions are under discussion. Other questions regarding extensibility that go beyond this technical perspective regard the frameworks and applications that use CDS views and must be addressed to those.

      Author's profile photo Former Member
      Former Member

       

      Sorry to confuse you, I was referring to SAP Enhancement Framework like transaction SE18 and SE19.  CDS View CRUD operations have to take into considerations these backend enhancements.  So I believe CDS views are relevant only for custom tables and custom applications without relevance to SAP applications.  Or re-implement these enhancements in the reports or in the CDS view.

      For my case, working on BO Design Studio, CDS View as transient information provider, I have no way to go around in S/4 HANA embedded analytic.  Right now there’s no way to report, other than using these transient provider.  With BW, we used to do extract using the BAPI information to BW so it was OK.

      Author's profile photo Eduardo Antunes da Cunha
      Eduardo Antunes da Cunha

      Hello Horst,

      First of all, congratulations for the very good disambiguation and comparison between ABAP CDS vs. HANA CDS.

      My team is working on searches built on HANA DB and we are currently not using any form of CDS. Can you point me where I can find about some of the advantages/disadvantages of switching to the CDS approach?

      Kind regards,
      Eduardo

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      Annotations for metadata:

      See e.g.  https://blogs.sap.com/2015/11/13/abap-news-for-release-750-annotations-in-abap-cds/ 

      Associations for modelling:

      https://blogs.sap.com/2016/08/12/from-open-sql-joins-to-cds-associations/

      Author's profile photo Sreekanth Surampally
      Sreekanth Surampally

      Hi Horst, With HANA 2.0 We have Graphical interface to create Native CDS artifacts using Web IDE for HANA, any near future plan to get ABAP CDS Views in Graphical editor?

      Author's profile photo Varun Rao
      Varun Rao

      A succinctly written blog. Thanks Horst.

      Author's profile photo krishanu khanra
      krishanu khanra

      Hi Horst,

      One question .

      We are facing one issue with one standard CDS view. Previously it has no parameters and we accessed it in other custom views using it's CDS DB view name (the sql viewname). After one note implementation this view got changed and currently it has a parameter but we can't access it in other custom view using it's  CDS DB view name (it is saying not able to find it in SAPFMS schema). 

      We have also checked it in SE11 to check whether it has a consistent runtime object or not. It shows as consistent.

      We tried to find the CDS DB view using DB02 . It was not able to find any.

      At last we tried to use the cds Entity name in our custom CDS and it's working.

      I have also checked that SAP strongly recommends to use the CDS entity then how it was working previously.

      Thanks
      Krishanu

       

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author

      https://blogs.sap.com/2018/04/03/abap-managed-database-objects-and-how-to-access-them/

      The way in which instances of ABAP-managed database objects are created is an internal affair of the AS ABAP. The actual implementation can change in incompatible ways when the release is upgraded.

      Author's profile photo Thanushka Gunasekara
      Thanushka Gunasekara

      Hi Horst,

       

      Nice article. And I'm new to SAP and ABAP world and trying to learn it, so bear with me if this is a stupid question.

      At the end of the day, is there any difference in terms of the HANA capabilities like in-memory DB, dynamic parallelism, ect, in HANA CDS and ABAP CDS?

      And also will there be any difference in the table creation in HANA Studio vs SE11 table creation in netwaver.

      Thanks

      Author's profile photo Vijay S Krishnan
      Vijay S Krishnan

      Hi Horst,

      I am a complete beginner on the CDS view topic.

      is the ‘DDL SQL VIew’ is the CDS view name?

      What does DDL source represent?

      How to know whether the CDS  view is a HANA CDS or ABAP CDS ? may be for the above example.

       

       

      Best Regards,

      Vijay

       

      Author's profile photo Sergiy Levchenko
      Sergiy Levchenko

      Hi Vijay.

       

      @AbapCatalog means ABAP CDS.

      @Catalog means HANA CDS.

       

      Regards

      Sergii

      Author's profile photo Pavel Astashonok
      Pavel Astashonok

      Hello, Horst,

      If you do not want to access the CDS entities in ABAP as data types or in Open SQL, you can use HANA CDS, which is better integrated into SAP HANA. An access from ABAP is then possible using Native SQL (ADBC, AMDP) only.

       

      and what is the use-case for such HANA-only CDS use? You mean using them on standalone HANA servers where there is no AS ABAP? Are there such companies?

      Author's profile photo Kiran Kodre
      Kiran Kodre

      Horst: 

                In a very complex implementation, I think debugging issues related to CDS modeling is going to be a nightmare. 

      Can you explain business scenarios where modeling a solution using CDS models will make more sense than using conventional ABAP data dictionary models (apart from security) 

      My development team just spent time developing a complex application that involved developing objects right from data dictionary all the way to Web Screens and workflows batch jobs etc etc. The hardest most time consuming part for the whole experience was modeling the data dictionary and making changes to it as and when the application build was evolving. If you want us to improve database modeling quality or productivity we would like to have a high level entity modeling SDK that works right on top of SAP’s Data dictionary where we could simulate real world relational database scenarios that we can immediately reflect it to the data dictionary when desired. If there is already a tool that can do that appreciate if you can share it..

      Author's profile photo Mohammed Muzammil
      Mohammed Muzammil

      Beautiful Blog - loved it!