SAPUI5 Development

how to do OData delete operation from SAPUI5 Application?

The delete operation comes into play whenever an existing entry resource needs to be deleted.The function for deletion is remove.The remove function triggers a DELETE request to an OData service which was specified at creation of the OData model.
                  In this tutorial we will use our flight service and perform delete operation in flightset.

Pre-requisites

  1. FLIGHTSET_DELETE_ENTITY method implemented in sap backend flight service.
  2. SAPUI5 Application created.
  3. OData service (I am using flight service created in earlier tutorials)added to the created application and odata model is set.


Steps
  1. Our SCARR table before 'delete operation' is like below.We will delete the entry with carrid AI.
  2. First put below code in our view.Here we will hardcode the flight details in a simple form and place a button below it.On press of the button we will delete the entry through OData.
  3. 
    <mvc:View controllerName="odataaaa.controller.View1"
     xmlns:html="http://www.w3.org/1999/xhtml"
     xmlns:f="sap.ui.layout.form"
     xmlns:mvc="sap.ui.core.mvc"
     xmlns="sap.m">
     <App>
      <pages>
       <Page title="{i18n>title}">
        <content>
         <f:SimpleForm id="simpleFormChange" title="Carrier Details" editable="true" class="editableForm sapUiSmallMarginTopBottom">
          <f:content>
           <Label text="Carrier id"/>
           <Input id="carrid" value="AI"/>
           <Label text="Carrier name"/>
           <Input id="carrname" value="Air India"/>
           <Label text="Currency code"/>
           <Input id="currcode" value="INR"/>
           <Label text="Carrier Url"/>
           <Input id="url" value="http://airindia.com"/>
          </f:content>
         </f:SimpleForm>
         <Button text="delete" press="onDelete"></Button>
        </content>
       </Page>
      </pages>
     </App>
    </mvc:View>
    
  4. Now our view will look like this.
  5. Add delete logic inside onDelete method of the view's controller.Copy paste below logic.Here we access the key field carrid  and pass it to oModel.remove function.

  6.   onDelete: function() {
       /*delete operation*/
       var oModel = this.getView().getModel();
       
    
       var Carrid = this.getView().byId("carrid").getValue();
    
       oModel.remove("/FlightSet('"+Carrid+"')", {
        method: "DELETE",
        success: function(data) {
         alert("success");
        },
        error: function(e) {
         alert("error");
        }
       });
      }
    
    
    

  7. Run the application and Press update button.You will get a success alert if deletion was successful.Go to sap backend and check the table SCARR.Now you can see the carrier details of AI carrier is deleted.
If you enjoyed this post, Please Share!!

11 comments :

  1. Hi Rajeesh,
    thanks for the example. How can I achive the following behaviour using your oModel bound to OData v2: the oModel.remove method should be called but the DELETE request to backend server should not be sent automatically. Instead, the row should be deleted in the client and later on posted to backend if oModel.submitChanges is executed in a button press event handler for instance? Is this possible?

    Yours
    Stephan

    ReplyDelete
    Replies
    1. Hi Stephan ,
      I think you are talking about batch operation. This tutorial may help you Batch operation SAPUI5

      Delete
  2. BE9E53A681Brandon0F5D0C77B922 November 2024 at 01:37

    This comment has been removed by a blog administrator.

    ReplyDelete
  3. 3DAFCAAA33Axel86D500E24522 November 2024 at 13:16

    This comment has been removed by a blog administrator.

    ReplyDelete
  4. EE906B2694PhilipF6CD34083D23 November 2024 at 09:45

    This comment has been removed by a blog administrator.

    ReplyDelete
  5. 496146458DJada4F3043B71925 November 2024 at 07:47

    This comment has been removed by a blog administrator.

    ReplyDelete
  6. 4DDA79B376Dalia60AB2DD21925 November 2024 at 12:47

    This comment has been removed by a blog administrator.

    ReplyDelete
  7. 3CB826D2EBDanielaCA75A7367527 November 2024 at 05:10

    This comment has been removed by a blog administrator.

    ReplyDelete
  8. 61700F5E97ChelseaC7500760F227 November 2024 at 23:32

    This comment has been removed by a blog administrator.

    ReplyDelete
  9. This comment has been removed by a blog administrator.

    ReplyDelete
  10. This comment has been removed by a blog administrator.

    ReplyDelete

Powered by Blogger.