Professional Documents
Culture Documents
35 Associations
35 Associations
public
inheriting from ZCL_ZJAN_2021_DPC
create public .
public section.
protected section.
methods PRODUCTSET_GET_ENTITY
redefinition .
methods PRODUCTSET_GET_ENTITYSET
redefinition .
methods SUPPLIERSET_GET_ENTITY
redefinition .
methods SUPPLIERSET_GET_ENTITYSET
redefinition .
methods ORDERITEMSET_GET_ENTITYSET
redefinition .
private section.
ENDCLASS.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZJAN_2021_DPC_EXT->ORDERITEMSET_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_ORDERITEM
* | [<---] 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 ORDERITEMSET_GET_ENTITYSET.
endmethod.
*
<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
).
endmethod.
*
<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.
READ TABLE it_filter_select_options INTO data(ls_filter_sel) with key
property = 'CATEGORY'.
IF sy-subrc = 0.
lt_category = CORRESPONDING #( ls_filter_sel-select_options ).
ENDIF.
"Step 1: Call the BAPI where all the product data is available
* call FUNCTION 'BAPI_EPM_PRODUCT_GET_LIST'
* EXPORTING
* max_rows = ls_bapi_max " 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_category " EPM: Range table
for product categories
** return = " Return Parameter
* .
"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.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZJAN_2021_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_ZJAN_2021_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.
"Request
read TABLE IT_KEY_TAB INTO data(ls_key) INDEX 1.
IF ls_key-name = 'PRODUCT_ID'.
SELECT SINGLE BP_ID INTO @lv_bp_id from snwD_bpa as bpa INNER JOIN snwd_pd as
pda
on bpa~node_key = pda~SUPPLIER_GUID.
else.
lv_bp_id = ls_key-value.
ENDIF.
IF lv_bp_id is INITIAL.
""Blast
raise EXCEPTION type /iwbep/cx_mgw_busi_exception
EXPORTING
message_unlimited = |Dude you passed me a wrong partner id |
.
ENDIF.
"Processing
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
.
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
).
endmethod.
*
<SIGNATURE>------------------------------------------------------------------------
---------------+
* | Instance Protected Method ZCL_ZJAN_2021_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_ZJAN_2021_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.
lv_top = is_paging-top.
lv_skip = is_paging-skip.
lv_total = lv_top + lv_skip.
ls_bapi_max-bapimaxrow = lv_total.
IF lt_category is INITIAL.
select BP_ID, company_name, STREET, CITY, COUNTRY, BP_ROLE, CURRENCY_CODE,
EMAIL_ADDRESS FROM snwD_bpa as bpa INNER JOIN snwd_ad as desc on
bpa~address_guid = desc~node_key
into table @data(lt_bps) .
else.
select BP_ID, company_name, STREET, CITY, COUNTRY, BP_ROLE, CURRENCY_CODE,
EMAIL_ADDRESS FROM snwD_bpa as bpa INNER JOIN snwd_ad as desc on
bpa~address_guid = desc~node_key
into table @lt_bps WHERE bpa~company_name in @lt_category.
ENDIF.
"Step 2: Map this data from the BAPI to my EntitySet output table
IF lv_total > 0.
LOOP AT lt_bps INTO data(ls_bps) FROM lv_skip + 1 to lv_total.
MOVE-CORRESPONDING ls_bps to ls_entity.
append ls_entity to ET_ENTITYSET.
ENDLOOP.
else.
ET_ENTITYSET = CORRESPONDING #( lt_bps ).
ENDIF.
endmethod.
ENDCLASS.
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.