Hi Ekansh,
Hope you are doing good.
I tried the data expand framework, and implemented the Expanded_entity_set method. However I am not getting the Item (depdenet Entities) data.. through debug I found that data from header and the 2 depedent entities (ITEM, and ACCOUNT) data is moved properly to er_entityset.. but in the browser.. only header data is visible...
I checked my data declartion for the deep entity and it looks Ok.. Could you please help me further..
Please find the Expanded_entitySet Code Snippet below:
*-------------------------------------------------------------------------*
* Deep Structure
*-------------------------------------------------------------------------*
DATA: BEGIN OF ls_vendor_details.
INCLUDE TYPE zcl_z_fi_vendor_inv_01_mpc=>ts_invlist.
DATA: vendoritemdetails TYPE zcl_z_fi_vendor_inv_01_mpc=>tt_itemdata. " WITH DEFAULT KEY.
DATA: vendoraccountdetails TYPE zcl_z_fi_vendor_inv_01_mpc=>tt_account_data, " WITH DEFAULT KEY,
END OF ls_vendor_details.
DATA: ls_item1 TYPE zcl_z_fi_vendor_inv_01_mpc=>ts_itemdata,
ls_account1 TYPE zcl_z_fi_vendor_inv_01_mpc=>ts_account_data.
DATA ls_keys TYPE /iwbep/s_mgw_name_value_pair.
DATA: lv_invoicedocnumber TYPE bapi_incinv_fld-inv_doc_no.
DATA: lt_itemdata TYPE TABLE OF bapi_incinv_detail_item,
ls_itemdata TYPE bapi_incinv_detail_item,
lt_return TYPE STANDARD TABLE OF bapiret2,
lv_docno TYPE bapi_incinv_fld-inv_doc_no.
*-------------------------------------------------------------------------*
* Data Declarations
*-------------------------------------------------------------------------*
DATA : ls_item TYPE zcl_z_fi_vendor_inv_01_mpc=>ts_itemdata,
lt_item TYPE TABLE OF zcl_z_fi_vendor_inv_01_mpc=>ts_itemdata,
ls_account2 TYPE zcl_z_fi_vendor_inv_01_mpc=>ts_account_data,
lt_account2 TYPE TABLE OF zcl_z_fi_vendor_inv_01_mpc=>ts_account_data,
ls_header TYPE zcl_z_fi_vendor_inv_01_mpc=>ts_invlist,
lv_filter_str TYPE string,
lt_filter_select_options TYPE /iwbep/t_mgw_select_option,
ls_filter TYPE /iwbep/s_mgw_select_option,
ls_filter_range TYPE /iwbep/s_cod_select_option,
ls_expanded_clause1 LIKE LINE OF et_expanded_tech_clauses,
ls_expanded_clause2 LIKE LINE OF et_expanded_tech_clauses,
lv_ebeln TYPE ebeln,
lt_vendor_details LIKE TABLE OF ls_vendor_details.
* ltaccount TYPE STANDARD TABLE OF bapieket,
* lssch TYPE bapieket.
DATA: lt_account TYPE STANDARD TABLE OF bapi_incinv_detail_account,
lt_gl_account TYPE STANDARD TABLE OF bapi_incinv_detail_gl_account,
lt_material TYPE STANDARD TABLE OF bapi_incinv_detail_material,
lt_tax TYPE STANDARD TABLE OF bapi_incinv_detail_tax,
ls_account TYPE bapi_incinv_detail_account,
ls_gl_account TYPE bapi_incinv_detail_gl_account,
ls_material TYPE bapi_incinv_detail_material,
ls_tax TYPE bapi_incinv_detail_tax.
*Get the key property values
READ TABLE it_key_tab WITH KEY name = 'InvDocNo' INTO ls_keys.
* if sy-subrc eq 0.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_keys-value
IMPORTING
output = lv_docno.
DATA: ls_year TYPE bapi_incinv_fld-fisc_year.
CLEAR: ls_keys.
READ TABLE it_key_tab WITH KEY name = 'FiscYear' INTO ls_keys.
IF sy-subrc EQ 0.
ls_year = ls_keys-value.
ELSE.
ls_year = '2004'.
ENDIF.
DATA: ls_header_detail TYPE bapi_incinv_detail_header.
IF NOT lv_docno IS INITIAL AND ls_year IS NOT INITIAL.
*Call the BAPI to get the Vendor invoice details..
CALL FUNCTION 'BAPI_INCOMINGINVOICE_GETDETAIL'
EXPORTING
invoicedocnumber = lv_docno
fiscalyear = ls_year
IMPORTING
headerdata = ls_header_detail
* ADDRESSDATA =
TABLES
itemdata = lt_itemdata
accountingdata = lt_account
glaccountdata = lt_gl_account
materialdata = lt_material
taxdata = lt_tax
* WITHTAXDATA =
* VENDORITEMSPLITDATA =
return = lt_return .
* EXTENSIONOUT =
* TMDATA = .
IF sy-subrc EQ 0.
* move the details to result set...
*-------------------------------------------------------------------------*
* Fill Header Values to Deep Structure
*-------------------------------------------------------------------------*
MOVE-CORRESPONDING ls_header_detail TO ls_vendor_details.
*-------------------------------------------------------------------------*
* Fill Item values to Deep Structure
*-------------------------------------------------------------------------*
LOOP AT lt_itemdata INTO ls_itemdata.
CLEAR ls_item1.
ls_item1-invoicedocnumber = ls_header_detail-inv_doc_no.
MOVE-CORRESPONDING ls_itemdata TO ls_item1.
APPEND ls_item1 TO ls_vendor_details-vendoritemdetails.
ENDLOOP.
LOOP AT lt_account INTO ls_account.
CLEAR ls_account1.
MOVE-CORRESPONDING ls_account TO ls_account1.
APPEND ls_account1 TO ls_vendor_details-vendoraccountdetails.
ENDLOOP.
*-------------------------------------------------------------------------*
* Assign the Navigation Proprties name to Expanded Tech clauses
*-------------------------------------------------------------------------*
ls_expanded_clause1 = 'VENDORITEMDETAILS'.
ls_expanded_clause2 = 'VENDORACCOUNTDETAILS'.
APPEND ls_expanded_clause1 TO et_expanded_tech_clauses.
APPEND ls_expanded_clause2 TO et_expanded_tech_clauses.
*-------------------------------------------------------------------------*
* Append Deep Strcture Values to Final Internal Table
*-------------------------------------------------------------------------*
APPEND ls_vendor_details TO lt_vendor_details.
*-------------------------------------------------------------------------*
* Send back Response to Consumer
*-------------------------------------------------------------------------*
copy_data_to_ref(
EXPORTING
is_data = lt_vendor_details
CHANGING
cr_data = er_entityset ).
ENDIF.
ENDIF.