{"id":1607,"date":"2017-01-20T17:56:42","date_gmt":"2017-01-20T16:56:42","guid":{"rendered":"http:\/\/oprsteny.cz\/?p=1607"},"modified":"2022-04-08T10:06:20","modified_gmt":"2022-04-08T09:06:20","slug":"abap-alv-with-custom-f4-field","status":"publish","type":"post","link":"https:\/\/oprsteny.cz\/?p=1607","title":{"rendered":"ABAP &#8211; ALV with custom F4 field"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"358\" data-permalink=\"https:\/\/oprsteny.cz\/?attachment_id=358\" data-orig-file=\"https:\/\/oprsteny.cz\/wp-content\/uploads\/SAP.jpg\" data-orig-size=\"44,50\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Picasa&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1365690880&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"SAP\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/oprsteny.cz\/wp-content\/uploads\/SAP.jpg\" class=\"alignleft size-full wp-image-358\" src=\"http:\/\/oprsteny.cz\/wp-content\/uploads\/SAP.jpg\" alt=\"\" width=\"44\" height=\"50\" \/>Here you can find a code snippet about\u00a0how to enable specific fields of your ALV to be F4 responsive with a custom programmed search help.<!--more--><\/p>\n<p>The most important are the following methods:<\/p>\n<ul>\n<li>GET_ALV_F4_FIELDS (here we define which fields will respond to F4 and how&#8230;at which moments)<\/li>\n<li>GET_FCAT_4_ITAB (here we define which fields of the ALV will show the F4 icon)<\/li>\n<li>ALV_ON_F4 (event handler which pops up a dialog with\u00a0the search help values)<\/li>\n<li>DISPLAY_ALV (here we register the event handler and set the grid be responsive to F4 for specific fields\u00a0by calling standard method REGISTER_F4_FOR_FIELDS &#8230;where we use the result of our method GET_ALV_F4_FIELDS as an input parameter)<\/li>\n<\/ul>\n<pre lang=\"abap\">REPORT z_mvoy.\nCLASS lcl_application DEFINITION CREATE PRIVATE.\n  PUBLIC SECTION.\n    TYPES:\n      BEGIN OF ty_s_alv_line,\n        matnr TYPE mara-matnr,\n        werks TYPE marc-werks,\n        kdmat TYPE knmt-kdmat,\n      END OF ty_s_alv_line,\n\n      ty_t_alv_lines TYPE STANDARD TABLE OF ty_s_alv_line WITH DEFAULT KEY.\n\n    CLASS-DATA:\n      BEGIN OF gs_screen,\n        okcode TYPE sy-ucomm,\n      END OF gs_screen.\n\n\n    CLASS-METHODS:\n      pai,\n      pbo.\n\n  PRIVATE SECTION.\n    DATA:\n      mt_alv_data  TYPE ty_t_alv_lines,\n\n      mo_container TYPE REF TO cl_gui_docking_container,\n      mo_grid      TYPE REF TO cl_gui_alv_grid.\n\n    METHODS:\n      constructor,\n      get_data,\n      display_alv,\n      get_alv_f4_fields RETURNING VALUE(rt_f4) TYPE lvc_t_f4,\n      get_fcat_4_itab IMPORTING it_table       TYPE ANY TABLE\n                      RETURNING VALUE(rt_fcat) TYPE lvc_t_fcat,\n      get_alv_excl_funcs RETURNING VALUE(rt_excludes) TYPE ui_functions,\n\n*      alv_hotspot      FOR EVENT hotspot_click OF cl_gui_alv_grid\n*        IMPORTING\n*            e_row_id  \"Type LVC_S_ROW\n*            e_column_id  \"Type LVC_S_COL\n*            es_row_no,  \"Type LVC_S_ROID,\n*\n*      alv_data_changed FOR EVENT data_changed  OF cl_gui_alv_grid\n*        IMPORTING\n*            er_data_changed \"Type Ref To  CL_ALV_CHANGED_DATA_PROTOCOL\n*            e_onf4  \"Type CHAR01\n*            e_onf4_before  \"Type CHAR01\n*            e_onf4_after  \"Type CHAR01\n*            e_ucomm,  \"Type sy-uCOMM.\n      alv_on_f4 FOR EVENT onf4 OF cl_gui_alv_grid\n        IMPORTING e_fieldname\n                    es_row_no\n                    er_event_data\n                    et_bad_cells\n                    e_display.\n\n    CLASS-METHODS:\n      get_instance RETURNING VALUE(ro_instance) TYPE REF TO lcl_application.\n\n    CLASS-DATA:\n      mo_instance TYPE REF TO lcl_application.\nENDCLASS.\n\n*----------------------------------------------------------------------*\n***INCLUDE LYVVA_PRICINGP01.\n*----------------------------------------------------------------------*\n*&amp;---------------------------------------------------------------------*\n*&amp;       Class (Implementation)  WF_DETAILS_HELPER\n*&amp;---------------------------------------------------------------------*\n*        Text\n*----------------------------------------------------------------------*\n\nCLASS lcl_application IMPLEMENTATION.\n  METHOD constructor.\n    me-&gt;get_data( ).\n  ENDMETHOD.\n\n  METHOD get_instance.\n    IF mo_instance IS INITIAL.\n      CREATE OBJECT mo_instance.\n    ENDIF.\n    ro_instance = mo_instance.\n  ENDMETHOD.\n\n  METHOD get_data.\n    CLEAR mt_alv_data[].\n\n    SELECT matnr\n      INTO CORRESPONDING FIELDS OF TABLE mt_alv_data\n      FROM mara UP TO 50 ROWS.\n  ENDMETHOD.\n\n  METHOD pai.\n    DATA:\n      lv_answer   TYPE c.\n\n    CASE lcl_application=&gt;gs_screen-okcode.\n      WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.\n        CALL FUNCTION 'POPUP_TO_CONFIRM'\n          EXPORTING\n            text_question         = |{ 'Do you really want to cancel saving changes?'(q01) }|\n            display_cancel_button = ' '\n          IMPORTING\n            answer                = lv_answer.\n        IF lv_answer = 1.\n          LEAVE TO SCREEN 0.\n        ENDIF.\n    ENDCASE.\n  ENDMETHOD.\n\n  METHOD pbo.\n    SET PF-STATUS 'STATUS0100'.\n    SET TITLEBAR  'TITLE0100'.\n\n    DATA(lo_instance) = get_instance( ).\n\n    lo_instance-&gt;display_alv( ).\n\n  ENDMETHOD.\n\n  METHOD get_alv_excl_funcs.\n    \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n    \" hide these all the time                       \"\n    \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_delete_row TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_append_row TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_graph TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_sum TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_subtot TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_info TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_check TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_detail TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_average TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_insert_row TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_move_row TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_paste TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_paste_new_row TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_undo TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_copy TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_copy_row TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_loc_cut TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_refresh TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_views TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_print TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_word_processor TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_to_office TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_send TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_html TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_expmdb TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_to_rep_tree TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_view_excel TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_maximum TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_minimum TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_expcrdata TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_pc_file TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_abc TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_master_data TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_more TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_xint TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_report TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_xml_export TO rt_excludes.\n    APPEND cl_gui_alv_grid=&gt;mc_fc_call_xxl TO rt_excludes.\n  ENDMETHOD.\n\n  METHOD get_alv_f4_fields.\n    DATA:\n      ls_f4 LIKE LINE OF rt_f4.\n*  Register the field for which the custom F4 has to be displayed\n*    (note: chngeafter set to 'X' only if any other field value has to be set based\n*    on the selected f4 value)\n    ls_f4-fieldname  = 'WERKS'.\n    ls_f4-register   = 'X'.\n    ls_f4-getbefore  = space.\n    ls_f4-chngeafter = space.\n    APPEND ls_f4 TO rt_f4.\n  ENDMETHOD.\n\n  METHOD get_fcat_4_itab.\n    DATA:\n      lo_columns      TYPE REF TO cl_salv_columns_table,\n      lo_aggregations TYPE REF TO cl_salv_aggregations,\n      lo_salv_table   TYPE REF TO cl_salv_table,\n      lr_table        TYPE REF TO data.\n    FIELD-SYMBOLS:\n      &lt;table&gt;         TYPE STANDARD TABLE.\n* create unprotected table from import data\n    CREATE DATA lr_table LIKE it_table.\n    ASSIGN lr_table-&gt;* TO &lt;table&gt;.\n*...New ALV Instance ...............................................\n    TRY.\n        cl_salv_table=&gt;factory(\n          EXPORTING\n            list_display = abap_false\n          IMPORTING\n            r_salv_table = lo_salv_table\n          CHANGING\n            t_table      = &lt;table&gt; ).\n      CATCH cx_salv_msg.                                \"#EC NO_HANDLER\n    ENDTRY.\n    lo_columns  = lo_salv_table-&gt;get_columns( ).\n    lo_aggregations = lo_salv_table-&gt;get_aggregations( ).\n    rt_fcat =\n      cl_salv_controller_metadata=&gt;get_lvc_fieldcatalog(\n        r_columns             = lo_columns\n        r_aggregations        = lo_aggregations ).\n\n    LOOP AT rt_fcat ASSIGNING FIELD-SYMBOL(&lt;ls_fcat&gt;).\n      CASE &lt;ls_fcat&gt;-fieldname.\n        WHEN 'WERKS'.\n          &lt;ls_fcat&gt;-edit       = 'X'.\n          &lt;ls_fcat&gt;-f4availabl = 'X'.\n\n        WHEN OTHERS.\n*          ?\n      ENDCASE.\n    ENDLOOP.\n  ENDMETHOD.\n\n  METHOD alv_on_f4.\n    TYPES:\n      BEGIN OF ty_s_marc,\n        werks TYPE marc-werks,\n        pstat TYPE marc-pstat,\n      END OF ty_s_marc,\n\n      ty_t_marc TYPE TABLE OF ty_s_marc.\n\n\n    DATA:\n      lt_marc TYPE ty_t_marc,\n      ls_modi TYPE lvc_s_modi,\n      lt_ret  TYPE TABLE OF ddshretval.\n    FIELD-SYMBOLS:\n      &lt;lt_itab&gt; TYPE lvc_t_modi.\n\n    CHECK e_fieldname = 'WERKS'.\n\n    DATA(ls_line) = mt_alv_data[ es_row_no-row_id ].\n\n    SELECT *\n      INTO CORRESPONDING FIELDS OF TABLE lt_marc\n      FROM marc\n      WHERE matnr = ls_line-matnr.\n\n    CHECK lt_marc IS NOT INITIAL.\n\n*Call the function module to display the custom F4 values\n    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'\n      EXPORTING\n        retfield        = 'WERKS'\n        window_title    = 'Avaliable plants for material'\n        value_org       = 'S'\n      TABLES\n        value_tab       = lt_marc[]\n        return_tab      = lt_ret[]\n      EXCEPTIONS\n        parameter_error = 1\n        no_values_found = 2\n        OTHERS          = 3.\n* (note: gt_ret[] contains the row id selected by the user from the list of f4 values)\n    IF sy-subrc = 0 AND lt_ret IS NOT INITIAL.\n      READ TABLE lt_ret ASSIGNING FIELD-SYMBOL(&lt;ls_ret&gt;) INDEX 1.\n\n      ASSIGN er_event_data-&gt;m_data-&gt;* TO &lt;lt_itab&gt;.\n\n      ls_modi-row_id   = es_row_no-row_id.\n      ls_modi-fieldname = 'WERKS'.\n      ls_modi-value     = &lt;ls_ret&gt;-fieldval.\n      APPEND ls_modi TO &lt;lt_itab&gt;.\n\n      er_event_data-&gt;m_event_handled = 'X'. \"(to inform grid that f4 was handled manually)\n    ENDIF.\n  ENDMETHOD.\n\n  METHOD display_alv.\n    DATA:\n      ls_layout  TYPE lvc_s_layo,\n      ls_variant TYPE disvariant,\n      ls_stable  TYPE lvc_s_stbl.\n\n    IF me-&gt;mo_container IS INITIAL.\n      CREATE OBJECT mo_container\n        EXPORTING\n          extension = 10000\n          parent    = cl_gui_container=&gt;screen0\n          side      = cl_gui_docking_container=&gt;dock_at_left.\n\n\n      CREATE OBJECT mo_grid\n        EXPORTING\n          i_parent = mo_container.\n\n      ls_layout-sel_mode   = 'A'.\n      ls_layout-no_merging = 'X'.   \"No merging of cells\n      ls_layout-no_rowmark = 'X'.\n\n*      ALV title\n      ls_layout-grid_title = 'Material details'.\n\n      \" style field name\n*      ls_layout-stylefname = 'STYLE'.\n*      ls_layout-ctab_fname = 'CELL_COLORS'.\n\n*     ALV Variant\n      ls_variant-report   = sy-repid.\n      ls_variant-username = sy-uname.\n\n      DATA(lt_fcat) = me-&gt;get_fcat_4_itab( me-&gt;mt_alv_data ).\n\n      \" get excluded buttons\n      DATA(lt_excl_funcs) = me-&gt;get_alv_excl_funcs( ).\n\n*      SET HANDLER me-&gt;alv_toolbar FOR me-&gt;mo_grid.\n*      SET HANDLER me-&gt;alv_button_click FOR me-&gt;mo_grid.\n*      SET HANDLER me-&gt;alv_user_command FOR me-&gt;mo_grid.\n*      SET HANDLER me-&gt;alv_data_changed FOR me-&gt;mo_grid.\n*      SET HANDLER me-&gt;alv_hotspot      FOR me-&gt;mo_grid.\n      SET HANDLER me-&gt;alv_on_f4        FOR me-&gt;mo_grid.\n\n      \" be enter reactive\n      me-&gt;mo_grid-&gt;register_edit_event( i_event_id = cl_gui_alv_grid=&gt;mc_evt_enter ).\n      \" register modified event for toolbar buttons\n      me-&gt;mo_grid-&gt;register_edit_event( i_event_id = cl_gui_alv_grid=&gt;mc_evt_modified ).\n      me-&gt;mo_grid-&gt;register_f4_for_fields(\n        it_f4 = me-&gt;get_alv_f4_fields( )\n      ).\n\n      CALL METHOD me-&gt;mo_grid-&gt;set_table_for_first_display\n        EXPORTING\n          is_variant           = ls_variant\n          i_save               = 'A'          \" U,X,\n          i_default            = 'X'          \" Layout can be pre-set\n          is_layout            = ls_layout    \" Default layout\n          it_toolbar_excluding = lt_excl_funcs\n        CHANGING\n          it_outtab            = mt_alv_data[]\n          it_fieldcatalog      = lt_fcat.\n\n    ELSE.\n\n*     Keep cursor position by refresh\n      ls_stable-row        = 'X'.\n      ls_stable-col        = 'X'.\n\n      CALL METHOD mo_grid-&gt;refresh_table_display\n        EXPORTING\n          is_stable = ls_stable\n        EXCEPTIONS\n          finished  = 1\n          OTHERS    = 2.\n    ENDIF.\n  ENDMETHOD.\n\nENDCLASS.               \"WF_DETAILS_HELPER\n\n\nEND-OF-SELECTION.\n\n  CALL SCREEN 100.\n*&amp;---------------------------------------------------------------------*\n*&amp;      Module  0100_PBO  OUTPUT\n*&amp;---------------------------------------------------------------------*\n*       text\n*----------------------------------------------------------------------*\nMODULE 0100_pbo OUTPUT.\n  lcl_application=&gt;pbo( ).\nENDMODULE.\n*&amp;---------------------------------------------------------------------*\n*&amp;      Module  0100_PAI  INPUT\n*&amp;---------------------------------------------------------------------*\n*       text\n*----------------------------------------------------------------------*\nMODULE 0100_pai INPUT.\n  lcl_application=&gt;pai( ).\nENDMODULE.<\/pre>\n<p>Output:<\/p>\n<p><a href=\"http:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1608\" data-permalink=\"https:\/\/oprsteny.cz\/?attachment_id=1608\" data-orig-file=\"https:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01.png\" data-orig-size=\"543,357\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ALV with F4 enabled for a field with custom search help\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01.png\" class=\"size-medium wp-image-1608 alignnone\" src=\"http:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01-300x197.png\" alt=\"\" width=\"300\" height=\"197\" srcset=\"https:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01-300x197.png 300w, https:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01-456x300.png 456w, https:\/\/oprsteny.cz\/wp-content\/uploads\/CUSTOM_F4_ALV_01.png 543w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here you can find a code snippet about\u00a0how to enable specific fields of your ALV to be F4 responsive with a custom programmed search help.<\/p>\n","protected":false},"author":1,"featured_media":0,"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":"ABAP - ALV with custom F4 field","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,86,136,9,222],"tags":[446,447,502,19],"class_list":["post-1607","post","type-post","status-publish","format-standard","hentry","category-abap","category-alv","category-alv-tutorial","category-development","category-dynpro","tag-abap","tag-alv","tag-f4","tag-f4if_int_table_value_request"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3nYbe-pV","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1607","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=1607"}],"version-history":[{"count":2,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1607\/revisions"}],"predecessor-version":[{"id":1748,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1607\/revisions\/1748"}],"wp:attachment":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}