Quantcast
Channel: SCN: Message List - SAP Gateway
Viewing all articles
Browse latest Browse all 6105

Re: Regarding ODATA and RFC calls

$
0
0

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

*-------------------------------------------------------------------------*

   DATABEGIN 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.


Viewing all articles
Browse latest Browse all 6105

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>