Technical Articles
Renovating the ABAP Dictionary: Component-Based Dependency Analysis
If you are an ABAP developer or ABAP key-user, you have probably activated a table or a CDS View Entity before. I assume you have also spent quite a bit of time waiting for the activation to finish. We in the development of the ABAP Platform work continuously on improving your experience as developers and recently released a feature called “Component-Based Dependency Analysis”, or CBDA, to reduce runtime of the activation of dictionary objects. To give you an insight on how this works, we prepared a short video:
The Past
In the past, when you activated a dictionary object, all other objects that used this object were activated as well. In cases of big stacks of CDS views, this takes a long time and isn’t necessary most of the time. This is called “Object-Based Dependency Analysis”.
To provide an example: If you activate “Data Element 1” after changing the type from a character of length 5 to a character of length 10, the database table and both CDS views and all objects using them were activated.
Object-Based Dependency Analysis
The Present
Now, or to be more specific, as of ABAP Release 7.93, SAP BTP ABAP Environment 2308, CBDA is available for everyone. This means that the dependency analysis is done in a more precise way. Looking at the same example, we get a vastly different result now: CBDA notices that the data element only affects one field of the database table and therefore only follows the dependencies of this field, greatly reducing the number of activated objects.
Component-Based Dependency Analysis
Some performance measurements indicate huge improvements:
In common cases in development, like adding cast statements to certain fields of widely used CDS views, CBDA reduced the number of objects to be activated from over 5000 to 6, resulting in a runtime reduction of about 85%.
In extension cases, like adding extension fields at CDS view I_SalesOrder, CBDA reduced the activation time by almost 75%.
The Future
We will continue this journey of improving the dictionary activation, making it faster, easier to understand and more stable. And with CBDA, we merely completed the first step in the renovation of the ABAP Dictionary activation by reducing the number of objects to be activated. In the future, we will go ahead and speed up the activation of the objects themselves, making your work faster and more productive.
Hi Michael Sauter , that sounds like a great improvement. Kudos for working that out!
Is CBDA procedure also used in S/4HANA 2023 on-prem release? 🙏
Cheers,
Alej
Hi Alejandro,
thank you 🙂
Yes, it's also available on-premise, with everything ABAP-based from 2308/2023 on.
Best regards,
Michael
Cheers,
Hi Chad,
thanks a lot. It's available in every ABAP-based software with an ABAP-platform (fka SAP_BASIS) release starting from 2308/2023. So it's there in Steampunk, S/4HANA Private and Public Cloud, IBP, ...
Best regards,
Michael
Hi SAP - What a relief!! Thank you so much!!