class ZCL_ZNOV_ODATA_DPC_EXT definition
public
inheriting from ZCL_ZNOV_ODATA_DPC
create public .
public section.
protected section.
methods ORDERITEMSSET_GET_ENTITYSET
redefinition .
methods PRODUCTSET_CREATE_ENTITY
redefinition .
methods PRODUCTSET_GET_ENTITY
redefinition .
methods PRODUCTSET_GET_ENTITYSET
redefinition .
methods PRODUCTSET_UPDATE_ENTITY
redefinition .
methods SALESORDERSET_GET_ENTITY
redefinition .
methods SALESORDERSET_GET_ENTITYSET
redefinition .
methods SUPPLIERSET_GET_ENTITY
redefinition .
methods SUPPLIERSET_GET_ENTITYSET
redefinition .
methods PRODUCTSET_DELETE_ENTITY
redefinition .
private section.
ENDCLASS.
CLASS ZCL_ZNOV_ODATA_DPC_EXT IMPLEMENTATION.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->ORDERITEMSSET_GET_ENTITYSET
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_FILTER_SELECT_OPTIONS TYPE /IWBEP/T_MGW_SELECT_OPTION
* | [--->] IS_PAGING TYPE /IWBEP/S_MGW_PAGING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [--->] IT_ORDER TYPE /IWBEP/T_MGW_SORTING_ORDER
* | [--->] IV_FILTER_STRING TYPE STRING
* | [--->] IV_SEARCH_STRING TYPE STRING
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITYSET(optional)
* | [<---] ET_ENTITYSET TYPE
ZCL_ZNOV_ODATA_MPC=>TT_ORDERITEMS
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_CONTEXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
METHOD orderitemsset_get_entityset.
DATA : lv_ord_id TYPE bapi_epm_so_id,
ls_header TYPE bapi_epm_so_header,
lt_items_data TYPE TABLE OF bapi_epm_so_item.
READ TABLE it_key_tab INTO DATA(ls_key) INDEX 1.
lv_ord_id = ls_key-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_ord_id " C field
IMPORTING
output = lv_ord_id. " Internal display of INPUT, any
category
CALL FUNCTION 'BAPI_EPM_SO_GET_DETAIL'
EXPORTING
so_id = lv_ord_id
IMPORTING
headerdata = ls_header
TABLES
itemdata = lt_items_data
* RETURN =
.
MOVE-CORRESPONDING lt_items_data TO et_entityset.
ENDMETHOD.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->PRODUCTSET_CREATE_ENTITY
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY_C(optional)
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [--->] IO_DATA_PROVIDER TYPE REF TO
/IWBEP/IF_MGW_ENTRY_PROVIDER(optional)
* | [<---] ER_ENTITY TYPE
ZCL_ZNOV_ODATA_MPC=>TS_PRODUCT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method PRODUCTSET_CREATE_ENTITY.
data: ls_entity type zcl_znov_odata_mpc=>ts_product,
ls_product type bapi_epm_product_header,
lt_return type table of bapiret2.
"Step 1: Read all the data incoming
io_data_provider->read_entry_data(
IMPORTING
es_data = ls_entity
).
"Step 2: Pre-checks if needed
IF ls_entity-name is INITIAL.
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_unlimited = |Please provide a valid Name of product|
.
ENDIF.
MOVE-CORRESPONDING ls_entity to ls_product.
"Step 3: Call BAPI/Class/ABAP Code to insert data
CALL FUNCTION 'BAPI_EPM_PRODUCT_CREATE'
EXPORTING
headerdata = ls_product
TABLES
RETURN = lt_return
.
"Step 4: Error Handling
IF lt_return is NOT INITIAL.
me->mo_context->get_message_container( )->add_messages_from_bapi(
EXPORTING
it_bapi_messages = lt_return
).
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_container = me->mo_context->get_message_container( )
.
ENDIF.
"Step 5: Map the response back
MOVE-CORRESPONDING ls_entity to er_entity.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->PRODUCTSET_DELETE_ENTITY
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY_D(optional)
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method PRODUCTSET_DELETE_ENTITY.
data: lv_prodid TYPE bapi_epm_product_id.
READ TABLE it_key_tab INTO data(ls_key) INDEX 1.
lv_prodid = ls_key-value.
CALL FUNCTION 'BAPI_EPM_PRODUCT_DELETE'
EXPORTING
product_id = lv_prodid
* PERSIST_TO_DB = ABAP_TRUE
* TABLES
* RETURN =
.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->PRODUCTSET_GET_ENTITY
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IO_REQUEST_OBJECT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY(optional)
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY(optional)
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [<---] ER_ENTITY TYPE
ZCL_ZNOV_ODATA_MPC=>TS_PRODUCT
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_ENTITY_CNTXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method PRODUCTSET_GET_ENTITY.
"Step 1: Declare variables
data: lv_prod_id TYPE bapi_epm_product_id,
ls_header type bapi_epm_product_header,
lt_return type table of bapiret2.
"Step 2: Whatever value of the key was passed, receive it here in a structure
READ TABLE IT_KEY_TAB INTO data(ls_key) INDEX 1.
"Step 3: take key in a variable
lv_prod_id = ls_key-value.
IF lv_prod_id is INITIAL.
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_unlimited = |Hey Amigo! please pass a valid id|
.
ENDIF.
"Step 4: BAPI/FM/Select to prepare data
call FUNCTION 'BAPI_EPM_PRODUCT_GET_DETAIL'
EXPORTING
product_id = lv_prod_id " EPM: Product header data
of BOR object SEPM002
IMPORTING
headerdata = ls_header " EPM: Product header data
of BOR object SEPM002
TABLES
* conversion_factors = " EPM: Product conversion factor
data of BOR object SEPM002
return = lt_return " Return Parameter
.
"something gone wrong inside BAPI
IF lt_return IS NOT INITIAL.
me->mo_context->get_message_container( )->add_messages_from_bapi(
EXPORTING
it_bapi_messages = lt_return " Return parameter
table
).
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_container = me->mo_context->get_message_container( )
.
ENDIF.
"Step 5: Map data to output = Response
MOVE-CORRESPONDING ls_header to ER_ENTITY.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->PRODUCTSET_GET_ENTITYSET
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_FILTER_SELECT_OPTIONS TYPE /IWBEP/T_MGW_SELECT_OPTION
* | [--->] IS_PAGING TYPE /IWBEP/S_MGW_PAGING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [--->] IT_ORDER TYPE /IWBEP/T_MGW_SORTING_ORDER
* | [--->] IV_FILTER_STRING TYPE STRING
* | [--->] IV_SEARCH_STRING TYPE STRING
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITYSET(optional)
* | [<---] ET_ENTITYSET TYPE
ZCL_ZNOV_ODATA_MPC=>TT_PRODUCT
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_CONTEXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method PRODUCTSET_GET_ENTITYSET.
"Step 1: Declare data types
data : lt_bapi_products type table of bapi_epm_product_header,
lv_top type i,
lv_skip type i,
lv_total type i,
ls_row type BAPI_EPM_MAX_ROWS,
lt_cat_range type TABLE OF BAPI_EPM_PRODUCT_CATEG_RANGE,
ls_cat_range type BAPI_EPM_PRODUCT_CATEG_RANGE,
ls_entity type zcl_znov_odata_mpc=>ts_product.
lv_top = IS_PAGING-top.
lv_skip = IS_PAGING-skip.
lv_total = lv_top + lv_skip.
ls_row-bapimaxrow = lv_total.
read TABLE IT_FILTER_SELECT_OPTIONS into data(ls_filter_sel) with key property
= 'CATEGORY'.
IF sy-subrc = 0.
MOVE-CORRESPONDING ls_filter_sel-select_options to lt_cat_range.
ENDIF.
"Step 2: Calling the class/ Function Module / Select to prepare data
call FUNCTION 'BAPI_EPM_PRODUCT_GET_LIST'
EXPORTING
max_rows = ls_row " Maximum number of lines of
hits
TABLES
headerdata = lt_bapi_products " EPM: Product
header data of BOR object SEPM002
* selparamproductid = " EPM: BAPI range table for
product ids
* selparamsuppliernames = " EPM: BAPI range table for
company names
selparamcategories = lt_cat_range " EPM: Range table
for product categories
* return = " Return Parameter
.
IF lv_total is NOT INITIAL.
LOOP AT lt_bapi_products INTO DATA(wa) from lv_skip + 1 to lv_total.
MOVE-CORRESPONDING wa to ls_entity.
append ls_entity to et_entityset.
ENDLOOP.
else.
"Step 3: Map our data to output of odata
MOVE-CORRESPONDING lt_bapi_products to ET_ENTITYSET.
ENDIF.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->PRODUCTSET_UPDATE_ENTITY
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY_U(optional)
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [--->] IO_DATA_PROVIDER TYPE REF TO
/IWBEP/IF_MGW_ENTRY_PROVIDER(optional)
* | [<---] ER_ENTITY TYPE
ZCL_ZNOV_ODATA_MPC=>TS_PRODUCT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method PRODUCTSET_UPDATE_ENTITY.
data: ls_product type bapi_epm_product_header,
ls_prod_x type bapi_epm_product_headerx,
ls_entity type zcl_znov_odata_mpc=>ts_product,
lv_prodid TYPE bapi_epm_product_id.
READ TABLE it_key_tab INTO data(ls_key) INDEX 1.
lv_prodid = ls_key-value.
io_data_provider->read_entry_data(
IMPORTING
es_data = ls_entity
).
MOVE-CORRESPONDING ls_entity to ls_product.
ls_prod_x-product_id = lv_prodid.
ls_prod_x-price = abap_true.
ls_prod_x-description = abap_true.
CALL FUNCTION 'BAPI_EPM_PRODUCT_CHANGE'
EXPORTING
product_id = lv_prodid
HEADERDATA = ls_product
HEADERDATAX = ls_prod_x
* PERSIST_TO_DB = ABAP_TRUE
* TABLES
* CONVERSION_FACTORS =
* CONVERSION_FACTORSX =
* RETURN =
.
MOVE-CORRESPONDING ls_entity to er_entity.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->SALESORDERSET_GET_ENTITY
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IO_REQUEST_OBJECT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY(optional)
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY(optional)
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [<---] ER_ENTITY TYPE
ZCL_ZNOV_ODATA_MPC=>TS_SALESORDER
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_ENTITY_CNTXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method SALESORDERSET_GET_ENTITY.
data : lv_ord_id type bapi_epm_so_id,
ls_header type bapi_epm_so_header.
READ TABLE it_key_tab INTO data(ls_key) INDEX 1.
lv_ord_id = ls_key-value.
call FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_ord_id " C field
IMPORTING
output = lv_ord_id " Internal display of INPUT, any
category
.
CALL FUNCTION 'BAPI_EPM_SO_GET_DETAIL'
EXPORTING
so_id = lv_ord_id
IMPORTING
HEADERDATA = ls_header
* TABLES
* ITEMDATA =
* RETURN =
.
MOVE-CORRESPONDING ls_header to er_entity.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->SALESORDERSET_GET_ENTITYSET
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_FILTER_SELECT_OPTIONS TYPE /IWBEP/T_MGW_SELECT_OPTION
* | [--->] IS_PAGING TYPE /IWBEP/S_MGW_PAGING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [--->] IT_ORDER TYPE /IWBEP/T_MGW_SORTING_ORDER
* | [--->] IV_FILTER_STRING TYPE STRING
* | [--->] IV_SEARCH_STRING TYPE STRING
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITYSET(optional)
* | [<---] ET_ENTITYSET TYPE
ZCL_ZNOV_ODATA_MPC=>TT_SALESORDER
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_CONTEXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method SALESORDERSET_GET_ENTITYSET.
data ls_entity type zcl_znov_odata_mpc=>ts_salesorder.
select * UP TO 20 ROWS from snwd_so into table @data(lt_orders).
LOOP AT lt_orders INTO data(ls_orders).
MOVE-CORRESPONDING ls_orders to ls_entity.
SELECT SINGLE bp_id, company_name from snwd_bpa into
(@ls_entity-buyer_id, @ls_entity-buyer_name)
WHERE node_key = @ls_orders-buyer_guid.
append ls_entity to et_entityset.
ENDLOOP.
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->SUPPLIERSET_GET_ENTITY
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IO_REQUEST_OBJECT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY(optional)
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITY(optional)
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [<---] ER_ENTITY TYPE
ZCL_ZNOV_ODATA_MPC=>TS_SUPPLIER
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_ENTITY_CNTXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
METHOD supplierset_get_entity.
"Step 1: Declare variables
DATA: lv_bp_id TYPE bapi_epm_bp_id,
lv_prod_id TYPE bapi_epm_product_id,
ls_product TYPE bapi_epm_product_header,
ls_header TYPE bapi_epm_bp_header,
lt_return TYPE TABLE OF bapiret2.
"Step 2: Whatever value of the key was passed, receive it here in a structure
READ TABLE it_key_tab INTO DATA(ls_key) WITH KEY name = 'BP_ID'.
IF sy-subrc = 0.
"Step 3: take key in a variable
lv_bp_id = ls_key-value.
ELSE.
READ TABLE it_key_tab INTO ls_key WITH KEY name = 'PRODUCT_ID'.
IF sy-subrc = 0.
lv_prod_id = ls_key-value.
CALL FUNCTION 'BAPI_EPM_PRODUCT_GET_DETAIL'
EXPORTING
product_id = lv_prod_id " EPM: Product header data of
BOR object SEPM002
IMPORTING
headerdata = ls_product. " EPM: Product header data of
BOR object SEPM002
lv_bp_id = ls_product-supplier_id.
ENDIF.
ENDIF.
IF lv_bp_id IS INITIAL.
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_unlimited = |Hey Amigo! please pass a valid id|.
ENDIF.
"Step 4: BAPI/FM/Select to prepare data
CALL FUNCTION 'BAPI_EPM_BP_GET_DETAIL'
EXPORTING
bp_id = lv_bp_id " EPM: Business Partner ID to be used
in BAPIs
IMPORTING
headerdata = ls_header " EPM: Business Partner header data
( BOR SEPM004 )
TABLES
* contactdata = " EPM: Business Partner contact data ( BOR
SEPM004 )
return = lt_return. " Return Parameter
"something gone wrong inside BAPI
IF lt_return IS NOT INITIAL.
me->mo_context->get_message_container( )->add_messages_from_bapi(
EXPORTING
it_bapi_messages = lt_return " Return parameter
table
).
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_container = me->mo_context->get_message_container( ).
ENDIF.
"Step 5: Map data to output = Response
MOVE-CORRESPONDING ls_header TO er_entity.
ENDMETHOD.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZNOV_ODATA_DPC_EXT->SUPPLIERSET_GET_ENTITYSET
*
+----------------------------------------------------------------------------------
---------------+
* | [--->] IV_ENTITY_NAME TYPE STRING
* | [--->] IV_ENTITY_SET_NAME TYPE STRING
* | [--->] IV_SOURCE_NAME TYPE STRING
* | [--->] IT_FILTER_SELECT_OPTIONS TYPE /IWBEP/T_MGW_SELECT_OPTION
* | [--->] IS_PAGING TYPE /IWBEP/S_MGW_PAGING
* | [--->] IT_KEY_TAB TYPE /IWBEP/T_MGW_NAME_VALUE_PAIR
* | [--->] IT_NAVIGATION_PATH TYPE /IWBEP/T_MGW_NAVIGATION_PATH
* | [--->] IT_ORDER TYPE /IWBEP/T_MGW_SORTING_ORDER
* | [--->] IV_FILTER_STRING TYPE STRING
* | [--->] IV_SEARCH_STRING TYPE STRING
* | [--->] IO_TECH_REQUEST_CONTEXT TYPE REF TO
/IWBEP/IF_MGW_REQ_ENTITYSET(optional)
* | [<---] ET_ENTITYSET TYPE
ZCL_ZNOV_ODATA_MPC=>TT_SUPPLIER
* | [<---] ES_RESPONSE_CONTEXT TYPE
/IWBEP/IF_MGW_APPL_SRV_RUNTIME=>TY_S_MGW_RESPONSE_CONTEXT
* | [!CX!] /IWBEP/CX_MGW_BUSI_EXCEPTION
* | [!CX!] /IWBEP/CX_MGW_TECH_EXCEPTION
*
+----------------------------------------------------------------------------------
----</SIGNATURE>
method SUPPLIERSET_GET_ENTITYSET.
"Step 1: Declare data types
data : lt_bapi_bps type table of bapi_epm_bp_header,
lv_top type i,
lv_skip type i,
lv_total type i,
ls_row type BAPI_EPM_MAX_ROWS,
ls_entity type zcl_znov_odata_mpc=>ts_supplier.
lv_top = IS_PAGING-top.
lv_skip = IS_PAGING-skip.
lv_total = lv_top + lv_skip.
ls_row-bapimaxrow = lv_total.
"Step 2: Calling the class/ Function Module / Select to prepare data
call FUNCTION 'BAPI_EPM_BP_GET_LIST'
EXPORTING
max_rows = ls_row " EPM: Max row specifictation
TABLES
bpheaderdata = lt_bapi_bps " EPM: Business Partner
header data ( BOR SEPM004 )
.
IF lv_total is NOT INITIAL.
LOOP AT lt_bapi_bps INTO DATA(wa) from lv_skip + 1 to lv_total.
MOVE-CORRESPONDING wa to ls_entity.
append ls_entity to et_entityset.
ENDLOOP.
else.
"Step 3: Map our data to output of odata
MOVE-CORRESPONDING lt_bapi_bps to ET_ENTITYSET.
ENDIF.
endmethod.
ENDCLASS.