{"id":1708,"date":"2021-08-19T12:03:50","date_gmt":"2021-08-19T11:03:50","guid":{"rendered":"https:\/\/oprsteny.cz\/?p=1708"},"modified":"2025-04-25T17:05:51","modified_gmt":"2025-04-25T16:05:51","slug":"abap-get-fixed-values-of-a-domain","status":"publish","type":"post","link":"https:\/\/oprsteny.cz\/?p=1708","title":{"rendered":"ABAP &#8211; Get fixed values of a DDIC domain"},"content":{"rendered":"\n<p>There are several ways how to get the fixed values of a domain. In this post I present several way including an Object Oriented approach<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2>Functional approach using DD_DOMVALUES_GET<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: abap; title: ; notranslate\" title=\"\">\nDATA(it_dd07v_tab) = VALUE dd07v_tab( ).\nDATA(lv_rc) = VALUE sy-subrc( ).\n \nCALL FUNCTION &#039;DD_DOMVALUES_GET&#039;\n  EXPORTING\n    domname        = &#039;CCCATEGORY&#039;\n    text           = abap_true\n*   LANGU          = &#039; &#039;\n*   BYPASS_BUFFER  = &#039; &#039;\n  IMPORTING\n    rc             = lv_rc\n  TABLES\n    dd07v_tab      = it_dd07v_tab\n  EXCEPTIONS\n    wrong_textflag = 1\n    OTHERS         = 2.\n \nIF sy-subrc = 0.\n  IF lv_rc = 0.\n    cl_demo_output=&gt;display( it_dd07v_tab ).\n  ENDIF.\nENDIF.\n<\/pre><\/div>\n\n\n<h2>Direct SQL approach<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: abap; title: ; notranslate\" title=\"\">\n* Name of the domain\nDATA(lv_domain) = &#039;CCCATEGORY&#039;.\n* logon laguage\nDATA(lv_lang) = cl_abap_syst=&gt;get_logon_language( ).\n \nSELECT l~domvalue_l, t~ddtext\n  INTO TABLE @DATA(it_dom)\n  FROM dd07l AS l\n  INNER JOIN dd07t AS t ON l~domname = t~domname AND \n                           l~valpos = t~valpos AND \n                           l~domvalue_l = t~domvalue_l\n  WHERE l~domname    = @lv_domain\n    AND t~ddlanguage = @lv_lang.\n \ncl_demo_output=&gt;display( it_dom ).\n<\/pre><\/div>\n\n\n<h2>OO Approach #1<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: abap; title: ; notranslate\" title=\"\">\nDATA(it_rsdomaval) = VALUE re_t_rsdomaval( ).\n \n* DDIC-Objekt: Domain\ncl_reca_ddic_doma=&gt;get_values( EXPORTING id_name   = &#039;CCCATEGORY&#039;\n                               IMPORTING et_values = it_rsdomaval ).\n \ncl_demo_output=&gt;display( it_rsdomaval ).\n<\/pre><\/div>\n\n\n<h2>OO Approach #2<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: abap; title: ; notranslate\" title=\"\">\nDATA(lv_dd01v) = VALUE dd01v( ).\nDATA(it_rsdomaval) = VALUE re_t_rsdomaval( ).\n \n* DDIC-Objekt: Domain\ncl_reca_ddic_doma=&gt;get_complete( EXPORTING id_name      = &#039;CCCATEGORY&#039;\n                                 IMPORTING es_header    = lv_dd01v\n                                           et_rsdomaval = it_rsdomaval ).\n \ncl_demo_output=&gt;write_data( lv_dd01v ).\ncl_demo_output=&gt;write_data( it_rsdomaval ).\ncl_demo_output=&gt;display( ).\n<\/pre><\/div>\n\n\n<h2>OO Approach #3<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: abap; title: ; notranslate\" title=\"\">\nCLASS lcl_domvalues DEFINITION.\n  PUBLIC SECTION.\n    CLASS-METHODS: get_by_type\n      IMPORTING\n                iv_data               TYPE any\n      RETURNING VALUE(rt_ddfixvalues) TYPE ddfixvalues.\n    CLASS-METHODS: get_by_name\n      IMPORTING\n                iv_name               TYPE domname\n      RETURNING VALUE(rt_ddfixvalues) TYPE ddfixvalues.\nENDCLASS.\n \nCLASS lcl_domvalues IMPLEMENTATION.\n \n  METHOD get_by_type.\n    TRY.\n        rt_ddfixvalues = CAST cl_abap_elemdescr( cl_abap_typedescr=&gt;describe_by_data( iv_data ) )-&gt;get_ddic_fixed_values( ).\n      CATCH cx_root.\n    ENDTRY.\n  ENDMETHOD.\n \n  METHOD get_by_name.\n    TRY.\n\n        rt_ddfixvalues = CAST cl_abap_elemdescr( cl_abap_typedescr=&gt;describe_by_name( iv_name ) )-&gt;get_ddic_fixed_values( ).\n      CATCH cx_root.\n    ENDTRY.\n  ENDMETHOD.\n \nENDCLASS.\n \nSTART-OF-SELECTION.\n \n* Domain by type of a variable\n  DATA(lv_cat) = VALUE cccategory( ).\n  DATA(it_by_type) = lcl_domvalues=&gt;get_by_type( lv_cat ).\n \n* Domain by its name\n  DATA(it_by_name) = lcl_domvalues=&gt;get_by_name( &#039;CCCATEGORY&#039; ).\n \n  cl_demo_output=&gt;write_data( it_by_type ).\n  cl_demo_output=&gt;write_data( it_by_name ).\n \n  cl_demo_output=&gt;display( ).\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>There are several ways how to get the fixed values of a domain. In this post I present several way including an Object Oriented approach<\/p>\n","protected":false},"author":1,"featured_media":358,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16,9,389],"tags":[315,516,514,515,517],"class_list":["post-1708","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-abap","category-development","category-sap","tag-cl_abap_elemdescr","tag-cl_abap_typedescr","tag-dd07t","tag-dd_domvalues_get","tag-get_ddic_fixed_values"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/oprsteny.cz\/wp-content\/uploads\/SAP.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3nYbe-ry","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1708","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1708"}],"version-history":[{"count":6,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1708\/revisions"}],"predecessor-version":[{"id":0,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1708\/revisions\/0"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/media\/358"}],"wp:attachment":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}