34 GET Single and Multiple
34 GET Single and Multiple
public
inheriting from ZCL_ZJAN_2021_DPC
create public .
public section.
protected section.
methods PRODUCTSET_GET_ENTITYSET
redefinition .
methods PRODUCTSET_GET_ENTITY
redefinition .
private section.
ENDCLASS.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZJAN_2021_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_ZJAN_2021_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.
"Request
read TABLE IT_KEY_TAB INTO data(ls_key) INDEX 1.
lv_prod_id = ls_key-value.
IF lv_prod_id is INITIAL.
""Blast
raise EXCEPTION type /iwbep/cx_mgw_busi_exception
EXPORTING
* textid =
* previous =
* message_container =
* http_status_code =
* http_header_parameters =
* sap_note_id =
* msg_code =
* exception_category =
* entity_type =
* message =
message_unlimited = |Dude you passed me a wrong product id |
* filter_param =
* operation_no =
.
ENDIF.
"Processing
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
.
data(lo_msg_obj) = me->mo_context->get_message_container( ).
lo_msg_obj->add_messages_from_bapi(
EXPORTING
it_bapi_messages = lt_return " Return parameter
table
).
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZJAN_2021_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_ZJAN_2021_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.
"how do we know here that what was the value of $top user passed?
lv_top = is_paging-top.
lv_skip = is_paging-skip.
lv_total = lv_top + lv_skip.
ls_bapi_max-bapimaxrow = lv_total.
"Step 2: Map this data from the BAPI to my EntitySet output table
IF lv_total > 0.
LOOP AT lt_bapi_products INTO data(ls_bapi_product) FROM lv_skip + 1 to
lv_total.
MOVE-CORRESPONDING ls_bapi_product to ls_entity.
append ls_entity to ET_ENTITYSET.
ENDLOOP.
else.
ET_ENTITYSET = CORRESPONDING #( lt_bapi_products ).
ENDIF.
endmethod.
ENDCLASS.