#1 – OData CRUD Crash Course – Delete
You should have done the following steps:
– Building Delete operation
1. In SAP transaction SEGW, expand a project folder and open TravelAgencySet. Click on Delete and choose Go to ABAP Workbench. As the first implementation, you’ll see the popup.
2. Click on the *_DPC_EXT folder. The right pane should show the Class Interface shown in the next step.You’ll see the list of the methods. Scroll down – click and focus on the “…_DELETE_ENTITY” and press the Redefine icon.
3. Delete the commented out lines of code. You have an empty implementation.
4. If you click “Signature” text, you’ll see the in & out parameters of this method.
Naming convention: l - local scope t - table s - structure v - variable 01 method TRAVELAGENCYSET_DELETE_ENTITY. 02 03 DATA: ls_entityset TYPE stravelag, 04 ls_key_tab TYPE /iwbep/s_mgw_name_value_pair, 05 lv_error_entity TYPE string. 06 07 * key is TravelAgencySet(agency#) 08 READ TABLE it_key_tab INTO ls_key_tab INDEX 1. 09 10 DELETE FROM stravelag WHERE agencynum = ls_key_tab-value. 11 12 IF ( sy-subrc = 0 ). 13 * delete completed 14 ELSE. 15 * entity not found 16 CONCATENATE iv_entity_name 17 '(''' 18 ls_key_tab-value 19 ''')' 20 INTO lv_error_entity. 21 RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception 22 EXPORTING 23 textid = /iwbep/cx_mgw_busi_exception=>resource_not_found 24 entity_type = lv_error_entity. 25 ENDIF. 26 27 endmethod.
#05 declares a variable which can have the error message if the Delete operation failed. #08 picks up the key value of the deleting entity – such as ../TravelAgencySet(‘12345678‘). #10 does a simple delete command. If the command goes successful, the sy-subrc value should be 0. #16 – #24 sets the user-friendly error message saying the entity doesn’t exist in the TravelAgency table.
– Testing Delete operation
1. Do the Query operation. In the query step, set the two HTTP Header parameters – these are required to do any data modification (either Create/Update/Delete) against OData services in SAP Gateway.
X-CSRF-Token = Fetch
Content-Type = application/atom+xml; charset=UTF-8
2. In a response header, you’ll find the token value in X-CSRF-Token. Copy it. (Note: the token will keep valid until the browser gets closed)
3. Replace the copied value with “Fetch” string. Now your REST client is ready for Create operation via HTTP POST.
4. Choose one of the entities you want to delete in <id> tag.
5. Run the Delete operation.
6. You should receive HTTP 204 No Content. The Delete operation executed successfully!
What’s next? You can choose either of: