SAP OData Code for implementing get expanded entityset $expand

ABAP code for Get expanded Entity set 



/sap/opu/odata/sap/ZKODATA1_SRV/SOHEADERSet('000000002')?$expand=SOHEADERTOITEM&$format=json


ABAP Code

 method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_EXPANDED_ENTITYSET.

"deep structure
  data begin of tp_expand.
           INCLUDE TYPE ZCL_ZKODATA1_MPC_EXT=>ts_soheader.
  data :  SOHEADERTOITEM TYPE ZCL_ZKODATA1_MPC_EXT=>TT_SOITEM.
  data end of tp_expand.

 data gt_expand like STANDARD TABLE OF tp_expand,
        gs_expand like tp_expand,

        gt_header type ZCL_ZKODATA1_MPC_EXT=>tt_soheader,
        gs_header type ZCL_ZKODATA1_MPC_EXT=>ts_soheader,

        gt_item type ZCL_ZKODATA1_MPC_EXT=>tt_soitem,
        gs_item type ZCL_ZKODATA1_MPC_EXT=>ts_soitem.

  CONSTANTS LC_EXPANDED_TECH_CLAUSES TYPE STRING value 'SOHEADERTOITEM'.

  case IV_ENTITY_SET_NAME.

   when 'SOHEADERSet'.

   select from zovbak into CORRESPONDING FIELDS OF TABLE gt_header.
   if sy-subrc 0.

   select from zovbap into CORRESPONDING FIELDS OF TABLE gt_item
   FOR ALL ENTRIES IN gt_header WHERE vbeln gt_header-vbeln.
   endif.


   loop at gt_header into gs_header.
   clear gs_expand.

    MOVE-CORRESPONDING gs_header to gs_expand.

    loop at gt_item into gs_item WHERE vbeln gs_header-vbeln.
    append gs_item to gs_expand-SOHEADERTOITEM.
    clear gs_item.
    endloop.

    append gs_expand to gt_expand.

   clear gs_header.
   endloop.

   append LC_EXPANDED_TECH_CLAUSES to et_expanded_tech_clauses.

   copy_data_to_ref(
     EXPORTING
       is_data gt_expand
     CHANGING
       cr_data ER_ENTITYSET
   ).



   endcase.


  endmethod.




Post a Comment

0 Comments

Total Pageviews