2017-02-27 9 views
0

私は以下のように見えるカスタマイジングテーブルがあります:あなたはフッターに見ることができるように enter image description here使用バッチ

を、テーブルに項目を追加、削除して保存することも可能です。

ユーザが2つの新しい項目を追加すると仮定して、1つの項目を削除して[保存]ボタンをクリックします。

私の質問は、サーバーへの投稿要求をどのように処理すればよいですか?

テーブルにあるすべてのアイテムをサーバーに送信し、アイテムをテーブルに挿入した後、すべてのアイテムを最初に削除する必要があります。

答えて

2

こんにちは、これは、バッチリクエストを作成して送信する方法について説明します。 )

また、あなたは私がODataModel v2を使用しているということを覚えておいてください。 あなたはbatchIdがを非推奨された後に、このスニペットは、SAPUI5のv1.28.xのために作られていることを心に留めておく必要があります。

  • create
  • update
  • remove

    sendBatchRequest: function (itemsToBeRemoved, itemsToBeUpdated, itemsToBeCreated) { 
        var controller = this; 
        var batchGroupId = "myBatchGroupId"; 
        var oModel = this.getView().getModel(); 
        var sKey = null; 
    
        oModel.setUseBatch(true); 
    
        //Batch request to create objects 
        for(sKey in itemsToBeCreated) { 
         oModel.create(
          itemsToBeUpdated[sKey].getPath(), 
          itemsToBeUpdated[sKey].getData(), { 
          batchGroupId: batchGroupId 
         }); 
        } 
    
        //Batch request to update objects 
        //Merge will allow you to partially update object with deltas 
        for(sKey in itemsToBeUpdated) { 
         oModel.update(
          itemsToBeUpdated[sKey].getPath(), 
          itemsToBeUpdated[sKey].getData(), { 
          merge: true, 
          batchGroupId: batchGroupId 
         }); 
        } 
    
        //Batch request to delete objects 
        for(sKey in itemsToBeRemoved) { 
         oModel.remove(itemsToBeRemoved[sKey].getPath(), { 
          batchGroupId: batchGroupId 
         }); 
        } 
    
        oModel.setDeferredBatchGroups([batchGroupId]); 
        oModel.submitChanges({ 
         batchGroupId: batchGroupId, 
         success: function() { 
          console.log("Everything is awesome!"); 
         }, 
         error: function() { 
          console.log("Houston we have a problem!"); 
         } 
        }); 
    } 
    
: これらは私がこれらの呼び出しを作成するために使用したすべての方法があります
関連する問題