title: HANA Express XSODATA update operation error
body: <p>I have a SAP HANA Express Server with XSA, I create a MTA Application with a DB and NodeJS modules, in the NodeJS module I create a .xsodata connected to the DB module.</p>
  
  <p>XSOdata definition:</p>
  
  <pre><code>service {
      //Definición de servicios
      "SISGASTOS"."CATEGORIA" as "Categoria"
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_categoria");
      "SISGASTOS"."ESTADO" as "Estado"
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_estado");
      "SISGASTOS"."PROYECTO" as "Proyecto"
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_proyecto");
      "SISGASTOS"."TIPO_DOCUMENTO" as "TipoDoc"
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_tipo_documento");
      "SISGASTOS"."INFORME" as "Informe" 
          navigates ("Informe_Comentario" as "Comentarios", "Informe_Proyecto" as "Proyecto", "Informe_Estado" as "Estado","Informe_Gasto" as "Gastos", "Informe_Hist" as "Info_Historial")
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_informe");
      "SISGASTOS"."HIST_INFORME" as "Hist_Informe"
          navigates ("Hist_Informe_Estado" as "Estado")
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_hist_informe");
      "SISGASTOS"."COMENTARIO_INFORME" as "ComentarioInforme";
  //      create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_comentario_informe");
      "SISGASTOS"."GASTO" as "Gasto" 
          navigates ("Gasto_Categoria" as "Categoria", "Gasto_TipoDoc" as "TipoDoc", "Gasto_Estado" as "Estado", "Gasto_Comentario" as "Comentarios", "Gasto_Anexo" as "Anexos", "Gasto_Hist" as "Gasto_Historial")  
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_gasto");
      "SISGASTOS"."HIST_GASTO" as "Hist_Gasto"
          navigates ("Hist_Gasto_Estado" as "Estado")
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_hist_gasto");
      "SISGASTOS"."COMENTARIO" as "Comentario"
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_comentario");
      "SISGASTOS"."ANEXO" as "Anexo"
          create events ( before "movilidad.rindegastos:Informe.xsjslib::crear_anexo");
  
      //Asociacion Historiales
      association "Hist_Gasto_Estado"
          principal "Hist_Gasto"("ID_ESTADO") multiplicity "1"
          dependent "Estado"("ID_ESTADO") multiplicity "1";
      association "Hist_Informe_Estado"
          principal "Hist_Informe"("ID_ESTADO") multiplicity "1"
          dependent "Estado"("ID_ESTADO") multiplicity "1";
  
      //Asociacion Informe    
      association "Informe_Comentario"
          principal "Informe"("ID_INFORME") multiplicity "1"
          dependent "ComentarioInforme"("ID_INFORME") multiplicity "*";
      association "Informe_Proyecto" 
          principal "Informe"("ID_PROYECTO") multiplicity "1" 
          dependent "Proyecto"("ID_PROYECTO") multiplicity "1";
      association "Informe_Estado" 
          principal "Informe"("ID_ESTADO") multiplicity "1" 
          dependent "Estado"("ID_ESTADO") multiplicity "1";
      association "Informe_Gasto" 
          principal "Informe"("ID_INFORME") multiplicity "1" 
          dependent "Gasto"("ID_INFORME") multiplicity "*";
      association "Informe_Hist"
          principal "Informe"("ID_INFORME") multiplicity "1" 
          dependent "Hist_Informe"("ID_INFORME") multiplicity "*";
  
      //Asociación Gasto
      association "Gasto_Categoria" 
          principal "Gasto"("ID_CATEGORIA") multiplicity "1" 
          dependent "Categoria"("ID_CATEGORIA") multiplicity "1";
      association "Gasto_TipoDoc" 
          principal "Gasto"("ID_TIPO_DOCUMENTO") multiplicity "1" 
          dependent "TipoDoc"("ID_TIPO_DOCUMENTO") multiplicity "1";
      association "Gasto_Estado" 
          principal "Gasto"("ID_ESTADO") multiplicity "1" 
          dependent "Estado"("ID_ESTADO") multiplicity "1";   
      association "Gasto_Comentario" 
          principal "Gasto"("ID_GASTO") multiplicity "1" 
          dependent "Comentario"("ID_GASTO") multiplicity "*"; 
      association "Gasto_Anexo" 
          principal "Gasto"("ID_GASTO") multiplicity "1" 
          dependent "Anexo"("ID_GASTO") multiplicity "*";
      association "Gasto_Hist"
          principal "Gasto"("ID_GASTO") multiplicity "1" 
          dependent "Hist_Gasto"("ID_GASTO") multiplicity "*";
  }
  </code></pre>
  
  <p>We call the service from a SAPUI5 application using an update operation.</p>
  
  <pre><code>        submitChanges: function() {
          this.getView().getModel("oModelDialogo").setProperty("/busy", true);
          this.getView().getModel().submitChanges({
              success: function(oResult) {
                  this.getView().getModel("oModelDialogo").setProperty("/busy", false);
                  console.log(oResult);
              }.bind(this),
              error: function(oError) {
                  this.getView().getModel("oModelDialogo").setProperty("/busy", false);
                  console.log(oError);
              }.bind(this)
          });
      },
  </code></pre>
  
  <p>But the response is Not Implemented 501:</p>
  
  <pre><code>--batch_1523471867867_0
  Content-Type: application/http
  Content-Transfer-Encoding: binary
  
  HTTP/1.1 501 Not Implemented
  Content-Type: application/json;charset=utf-8
  
  {"error":{"code":501,"message":{"lang":"en-US","value":"Not implemented"}}}
  </code></pre>
  
  <p>The read, create and delete operations works fine, only the update operation have problems.</p>
  
  <p>Edit:</p>
  
  <p>As 0x17 recomend I change the defaultUpdateMethod in manifest file as follow:</p>
  
  <pre><code>    "models": {
          "i18n": {
              "type": "sap.ui.model.resource.ResourceModel",
              "settings": {
                  "bundleName": "Adjuntos.i18n.i18n"
              }
          },
          "": {
              "dataSource": "mainService",
              "preload": true,
              "settings": {
                  "defaultBindingMode": "TwoWay",
                  "defaultUpdateMethod": "sap.ui.model.odata.UpdateMethod.Put"
              }
          }
      },
  </code></pre>
  
  <p>With that the update request works! Thanks.</p>