0% found this document useful (0 votes)
6 views17 pages

6.create Update Delete Get Functionimport Odata

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views17 pages

6.create Update Delete Get Functionimport Odata

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

6.

CREATE_UPDATE_DELETE_GET_FUNCTIONIMPORT_ODATA

Scenario 2

READ SINGLE RECORDS

method ZFIORIPRACSET_GET_ENTITY.

DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,


ls_PRODUCTNAME type ZFIORIPRAC-PRODUCTNAME,
ls_headerdata TYPE ZFIORIPRAC.

DATA: lr_mr_api TYPE REF TO if_mr_api.

1
LOOP AT it_key_tab INTO ls_key_tab.
IF ls_key_tab-name EQ 'PRODUCTNAME'.
ls_PRODUCTNAME = ls_key_tab-value.
ENDIF.
ENDLOOP.

SELECT SINGLE PRODUCTNAME QUANTITY EXTENDEDPRICE SHIPPERNAME SHIPPERDATE STA


TUS FROM ZFIORIPRAC INTO CORRESPONDING FIELDS OF LS_HEADERDATA WHERE PRODUCTNA
ME = ls_PRODUCTNAME.

er_entity-PRODUCTNAME = ls_headerdata-PRODUCTNAME.
er_entity-QUANTITY = ls_headerdata-QUANTITY.
er_entity-EXTENDEDPRICE = ls_headerdata-EXTENDEDPRICE.
er_entity-SHIPPERNAME = ls_headerdata-SHIPPERNAME.
er_entity-SHIPPERDATE = ls_headerdata-SHIPPERDATE.
er_entity-STATUS = ls_headerdata-STATUS.

endmethod.

READ MULTIPLE RECORD

method ZFIORIPRACSET_GET_ENTITYSET.

data:it_ZFIORIPRAC type TABLE OF ZFIORIPRAC,


wa_ZFIORIPRAC type ZFIORIPRAC.

data:wa_ent like LINE OF ET_ENTITYSET.

select * from ZFIORIPRAC into TABLE it_ZFIORIPRAC .

loop at it_ZFIORIPRAC into wa_ZFIORIPRAC.


wa_ent-PRODUCTNAME = wa_ZFIORIPRAC-PRODUCTNAME.
wa_ent-QUANTITY = wa_ZFIORIPRAC-QUANTITY.
wa_ent-EXTENDEDPRICE = wa_ZFIORIPRAC-EXTENDEDPRICE.
wa_ent-SHIPPERNAME = wa_ZFIORIPRAC-SHIPPERNAME.
wa_ent-SHIPPERDATE = wa_ZFIORIPRAC-SHIPPERDATE.
wa_ent-STATUS = wa_ZFIORIPRAC-STATUS.

2
append wa_ent to ET_ENTITYSET.

ENDLOOP.

endmethod.

CREATE

method ZFIORIPRACSET_CREATE_ENTITY.

types:BEGIN OF it_PRODUCTNAME,
PRODUCTNAME type ZFIORIPRAC-PRODUCTNAME,
END OF it_PRODUCTNAME.

DATA:WA_PRODUCTNAME TYPE it_PRODUCTNAME,


WA_PRODUCTNAME2 TYPE it_PRODUCTNAME,
ZPROD TYPE STRING,
ZPROD2 TYPE STRING,
IT_ZPRODUCTDETAILS TYPE TABLE OF IT_PRODUCTNAME,
ZPRODUCT TYPE N LENGTH 3,
IT_PRODUCTNAME TYPE it_PRODUCTNAME,
lv_PRODUCTNAME type ZFIORIPRAC-PRODUCTNAME.

DATA: ls_headerdata TYPE ZFIORIPRAC ,


lt_item type TABLE OF ZFIORIPRAC,
lv_productid type ZFIORIPRAC-PRODUCTNAME,
ls_product LIKE er_entity.

3
io_data_provider->read_entry_data( IMPORTING es_data = ls_product ).

select single PRODUCTNAME from ZFIORIPRAC into lv_PRODUCTNAME WHERE PRODUCTNAM


E = ls_product-PRODUCTNAME.
if sy-subrc ne 0.

ls_headerdata-PRODUCTNAME = ls_product-PRODUCTNAME.
ls_headerdata-QUANTITY = ls_product-QUANTITY.
ls_headerdata-EXTENDEDPRICE = ls_product-EXTENDEDPRICE.
ls_headerdata-SHIPPERNAME = ls_product-SHIPPERNAME.
ls_headerdata-SHIPPERDATE = ls_product-SHIPPERDATE.
ls_headerdata-STATUS = ls_product-STATUS.

INSERT ZFIORIPRAC from ls_headerdata.

IF SY-SUBRC NE 0.

RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception


EXPORTING
textid = /iwbep/cx_mgw_busi_exception=>business_error
message_container = mo_context->get_message_container( ).
ENDIF.

er_entity = ls_product.
endif.

endmethod.

A)Enter the below url and select GET and execute

4
B)Once the values come on right side and click on ‘Use as Request’ button

C)And you will be seeing the value on the left side

NOTE:

Please remove the URI from


/sap/opu/odata/sap/Z_PRAC_FIORI_SRV/ZFIORIPRACSet('MILK') and make it as

/sap/opu/odata/sap/Z_PRAC_FIORI_SRV/ZFIORIPRACSet

5
D)Now Select the POST and click on Execute button

E)you will be seeing the below status

6
DELETE

method ZFIORIPRACSET_DELETE_ENTITY.

DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,


ls_PRODUCTNAME type ZFIORIPRAC-PRODUCTNAME,
lt_return TYPE STANDARD TABLE OF bapiret2,
ls_headerdata TYPE ZFIORIPRAC.

LOOP AT it_key_tab INTO ls_key_tab.


IF ls_key_tab-name EQ 'PRODUCTNAME'.
ls_PRODUCTNAME = ls_key_tab-value.
ENDIF.
ENDLOOP.

SELECT SINGLE * FROM ZFIORIPRAC INTO CORRESPONDING FIELDS OF LS_HEADERDATA


WHERE PRODUCTNAME = ls_PRODUCTNAME.

if sy-subrc ne 0.

mo_context->get_message_container( )->add_messages_from_bapi(
it_bapi_messages = lt_return
iv_determine_leading_msg = /iwbep/if_message_container=>gcs_leading_msg_
search_option-first ).
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
textid = /iwbep/cx_mgw_busi_exception=>business_error
message_container = mo_context->get_message_container( ).
else.
delete ZFIORIPRAC from ls_headerdata.
ENDIF.
endmethod.

7
1)Select the Get Method and execute

2)Select the DELETE method and execute

3)output as below

8
UPDATE

method ZFIORIPRACSET_UPDATE_ENTITY.

types:BEGIN OF it_PRODUCTNAME,
PRODUCTNAME type ZFIORIPRAC-PRODUCTNAME,
END OF it_PRODUCTNAME.

DATA:WA_PRODUCTNAME TYPE it_PRODUCTNAME,


WA_PRODUCTNAME2 TYPE it_PRODUCTNAME,
ZPROD TYPE STRING,
ZPROD2 TYPE STRING,
IT_ZPRODUCTDETAILS TYPE TABLE OF IT_PRODUCTNAME,
ZPRODUCT TYPE N LENGTH 3,
IT_PRODUCTNAME TYPE it_PRODUCTNAME,
lv_PRODUCTNAME type ZFIORIPRAC-PRODUCTNAME.

DATA: ls_headerdata TYPE ZFIORIPRAC ,


lt_item type TABLE OF ZFIORIPRAC,
lv_productid type ZFIORIPRAC-PRODUCTNAME,
ls_product LIKE er_entity.

io_data_provider->read_entry_data( IMPORTING es_data = ls_product ).

select single * from ZFIORIPRAC into CORRESPONDING FIELDS OF ls_headerdata


WHERE PRODUCTNAME = ls_product-PRODUCTNAME.
if sy-subrc eq 0.

ls_headerdata-PRODUCTNAME = ls_product-PRODUCTNAME.
ls_headerdata-QUANTITY = ls_product-QUANTITY.
ls_headerdata-EXTENDEDPRICE = ls_product-EXTENDEDPRICE.
ls_headerdata-SHIPPERNAME = ls_product-SHIPPERNAME.
ls_headerdata-SHIPPERDATE = ls_product-SHIPPERDATE.

9
ls_headerdata-STATUS = ls_product-STATUS.

update ZFIORIPRAC from ls_headerdata.


er_entity = ls_product.

else.
RAISE EXCEPTION TYPE /IWBEP/CX_MGW_BUSI_EXCEPTION
EXPORTING
TEXTID =
/IWBEP/CX_MGW_BUSI_EXCEPTION=>BUSINESS_ERROR_UNLIMITED
MESSAGE_UNLIMITED = 'Record Does Not Exist'.

ENDIF.

endmethod.

A)First as per the below screen shot get the data

B)click on Use as Request button

10
c)Remove the &format=json

D)Select the method PUT and change the data and click on execute

11
E)output as expected as below

FUNCTION IMPORT

)Expand Data Model->Create->Function Import

2) Enter the Name and Press Enter

12
3)Please find the below screen shot

4) Create a Function Import Parameter as per the below screen shot

Save and Generate it

5)Expand Runtime Artifacts-> ZCL_Z_PRAC_FIORI_DPC_EXT->RIghtClick->Go to ABAP Workbench

6)Click on Change and select the Method ‘/IWBEP/IF_MGW_APPL_SRV_RUNTIME~EXECUTE_ACTION’


click on Redefine Method button

13
7)

Past the Code

method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~EXECUTE_ACTION.

DATA:LDF_PRODUCTNAME TYPE ZFIORIPRAC-PRODUCTNAME,


LDF_QUANTITY TYPE ZFIORIPRAC-QUANTITY,
LDF_EXTENDEDPRICE TYPE ZFIORIPRAC-EXTENDEDPRICE,
LDF_SHIPPERNAME TYPE ZFIORIPRAC-SHIPPERNAME,
LDF_SHIPPERDATE TYPE ZFIORIPRAC-SHIPPERDATE,
LDF_STATUS TYPE ZFIORIPRAC-STATUS,

ZSTATUS TYPE ZFIORIPRAC-STATUS.

DATA: LS_PARAMETER TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR,


LS_ENTITY TYPE ZFIORIPRAC,
IT_ZFIORIPRAC TYPE TABLE OF ZFIORIPRAC,
LT_ENTITYSET TYPE TABLE OF ZFIORIPRAC.

IF IV_ACTION_NAME = 'ZACCOUNTINGCLERK'. " Check what action is being


requested
IF IT_PARAMETER IS NOT INITIAL.

CLEAR:LS_PARAMETER.
* Read Function import parameter value
READ TABLE IT_PARAMETER INTO LS_PARAMETER WITH KEY NAME = 'STATUS'.
IF SY-SUBRC = 0.
ZSTATUS = LS_PARAMETER-VALUE.
ENDIF.

.
IF ZSTATUS IS NOT INITIAL.

14
SELECT SINGLE PRODUCTNAME QUANTITY EXTENDEDPRICE SHIPPERNAME
SHIPPERDATE STATUS FROM ZFIORIPRAC INTO
( LDF_PRODUCTNAME, LDF_QUANTITY, LDF_EXTENDEDPRICE, LDF_SHIPPERNAME,
LDF_SHIPPERDATE, LDF_STATUS ) WHERE STATUS = ZSTATUS.

IF SY-SUBRC EQ 0.

LS_ENTITY-PRODUCTNAME = LDF_PRODUCTNAME.
LS_ENTITY-QUANTITY = LDF_PRODUCTNAME.
LS_ENTITY-EXTENDEDPRICE = LDF_EXTENDEDPRICE.
LS_ENTITY-SHIPPERNAME = LDF_SHIPPERNAME.
LS_ENTITY-SHIPPERDATE = LDF_SHIPPERDATE.
LS_ENTITY-STATUS = LDF_STATUS.

COPY_DATA_TO_REF( EXPORTING IS_DATA = LS_ENTITY


CHANGING CR_DATA = ER_DATA ).

ENDIF.

ENDIF.
ENDIF.
ENDIF.

endmethod.

Save and Activate

8) Before Execute the below url and please try to execute the tcode:
/IWFND/CACHE_CLEANUP

9)Past the url and Execute

/sap/opu/odata/sap/Z_PRAC_FIORI_SRV/ZACCOUNTINGCLERK?STATUS='A'

15
16
17

You might also like