During ABAP coding in many occasion we need to create dynamic table. Similar situation can be handled during creation of custom entity by using annotation @ObjectModel.dynamic

Use case:

In SAP S/4HANA create a custom entity that selects data from a dynamic table based on a parameter using the ABAP CDS framework

Steps:

  • Define a data type for the dynamic table using the ABAP CDS TABLE OF statement.
  • Use the @ObjectModel.dynamic annotation to specify that the table is dynamic.
  • Define the necessary fields for the dynamic table using the ABAP CDS LIKE statement.
  • In the custom entity data model, define a parameter that specifies the name of the dynamic table.
  • In the custom entity data model, define a field using the data type for the dynamic table, and use the @ObjectModel.readOnly annotation to indicate that the field is read-only.

Below Coding technique can be followed ,

@EndUserText.label: 'Test Custom Entity'

define root view entity ZCustomEntity

with parameters p_dynamic_table : abap.dynpalpha

as select from (p_dynamic_table)

{

key  key_field : abap.int,

dynamic_table : @ObjectModel.dynamic TABLE OF ZDynamicType

@ObjectModel.readOnly

}

define type ZDynamicType {

field1 : abap.string,

field2 : abap.int,

}

Summary :

In the example above, the p_dynamic_table parameter specifies the name of the dynamic table to select data from. The custom entity data model includes a field named dynamic_table, which is defined as a dynamic internal table of ZDynamicType. The @ObjectModel.readOnly annotation indicates that the field is read-only, meaning that it cannot be modified through the custom entity.

 

Hopefully this blog post will help you. I look forward to your comments and feedback.

Sara Sampaio

Sara Sampaio

Author Since: March 10, 2022

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x