Skip to Content
Technical Articles
Author's profile photo Abhishek Sharma

How to Read Domain values using ABAP CDS Entity view


In this blog post we are going to see how we can read Domain values using CDS Views.

Scenario :  When we have limited number of values which are not going to change (not dynamic), in that case we can use SAP Standard CDS View which will return all the values available in Domain.



Below is step by step guide :


Step 1 Create Domain

Create Domain which will have multiple values available  in this example we are maintaining Fixed values for gender :



Step 2 Create Entity View

Create new Entity View to get all values available in Domain we created in previous step 1…

To read Domain values there are 2 standard CDS Views available.




In our case since we have multiple values available in Domain (for Gender) we will be using Entity View DDCDS_CUSTOMER_DOMAIN_VALUE_T.


@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Domain Read'
@Metadata.ignorePropagatedAnnotations: true
    serviceQuality: #X,
    sizeCategory: #S,
    dataClass: #MIXED
define view entity ZI_READ_DOMAIN 
       as select from DDCDS_CUSTOMER_DOMAIN_VALUE_T( p_domain_name: 'ZDOM_GENDER') {
    key domain_name,
    key value_position,
    @Semantics.language: true
    key language,
    @Semantics.text: true


Step 3 Validate Domain Read

Once CDS View Entity is ready, we can test Entity View following below path. Right click on Entity View and follow below shown path.




Step 4 View Result

Output Domain values from Entity View







Step 5 Add Value Help / F4 Help

If we need to get/access domain values on Fiori application front end. Changes are needed in Metadata Extension file (If created). Metadata Extension file is responsible to generate Fiori UI.


To add Domain values available on F4 for a field, we use @Consumption annotation which takes Entity Name (Entity View Name) and Element (Field which have the selection value).


  @Consumption.valueHelpDefinition: [{ entity:
  {name: 'ZI_READ_DOMAIN' , element: 'value_low' },
  distinctValues: true


Step 6 Output, F4 help with Domain values


Once Value help is added to field in Metadata Extension file. Final output looks like below when user click on F4 on field.







Field with F4






Assigned Tags

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

      Hi Abhishek,


      Thanks for sharing! I think there are a couple fundamentals here that should be corrected though:

      1. DDCDS_CUSTOMER_DOMAIN_VALUE : Return single row (structure)
      2. DDCDS_CUSTOMER_DOMAIN_VALUE_T : Return records in Table format multiple values

      DDCDS_CUSTOMER_DOMAIN_VALUE actually returns all fixed values associated with the domain provided via the parameter value.

      The _T prefix of the other view entity means 'Text', not 'Table'. This provides all the language dependent translations of the fixed values. If you were to maintain another translation for your fixed value descriptions, then you would end up having issues in your value help.

      Since both view entities require a parameter to be passed and since it's a little complicated to deal with that, we wrapped these two views with this:

      define view entity XXXXXXXXXXX
      with parameters
        p_domain_name : sxco_ad_object_name --abap.char(30)
      as select from DDCDS_CUSTOMER_DOMAIN_VALUE( p_domain_name : $parameters.p_domain_name ) as Value
      association [0..1] to DDCDS_CUSTOMER_DOMAIN_VALUE_T as _text on 
         Value.domain_name = _text.domain_name and 
         Value.value_position = _text.value_position and 
         _text.language = $session.system_language  
        key Value.domain_name as Name,
        key Value.value_position as ValuePosition,
            Value.value_low as Value,
            _text( p_domain_name : $parameters.p_domain_name ).text as Description

      This approach ensures that the values are returned, even if a description in the user's logon language has not been maintained.

      We then use this view in a similar manner as you did above to build domain specific value helps (although typically we decide on text only dropdowns).

      Hope this helps!

      Author's profile photo Abhishek Sharma
      Abhishek Sharma
      Blog Post Author

      Hi Matt,

      Thanks much for valuable comments, I have done a quick update to post..



      Author's profile photo Anil Dasari
      Anil Dasari

      Hi Matt and Abhishek,

      Are these Objects (DDCDS_CUSTOMER_DOMAIN_VALUE and DDCDS_CUSTOMER_DOMAIN_VALUE_T) still relevant for S/4HANA 2021 FPS 002? I have tried created CDS entities but I don't see it is pulling fixed values maintained under Domain.





      Data Preview